使用TFS构建系统的巨大安全风险

时间:2014-04-30 03:06:48

标签: tfs msbuild build-server

事实证明,tfs构建系统始终使用相同的构建帐户来获取最新的源代码并执行构建作业。此帐户拥有访问所有源代码的最高权限。

因此,只有一个团队项目构建权限的任何人都可以通过创建构建定义来实际获取所有团队项目的源代码,并设置“源设置”'到TeamProjectCollection的根,然后在MSBuild post事件中,做' XCopy'将源代码移动到任何远程服务器。

3 个答案:

答案 0 :(得分:0)

构建服务器基于团队项目关联。允许多个项目使用相同的构建服务器是一个实现决策而不是固有的安全漏洞,如果安全隔离很重要,则使用具有不同帐户的多个构建服务器。对于团队构建帐户,团队项目设置详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms253062(v=vs.90).aspx

答案 1 :(得分:0)

这是设计的。这很糟糕:(

从微软的文档中,他们告诉您,开发人员被视为可信实体。这是他们的理由:

Installing Team Foundation Build Service increases the attack surface of the computer. Because developers are treated as trusted entities in the build system, a malicious user could, for example, construct a build definition to run arbitrary code that is designed to take control of the server and steal data from Team Foundation Server. Customers are encouraged to follow security best practices as well as deploy defense in-depth measures to ensure that their build environment is secure. This includes developer workstations. For more information regarding security best practices, see the TechNet Article Security Guidance.

这是original article

因此,在使用构建服务器时,您总是处于危险之中! 正如我在评论中提到的那样。我写了很多服务器端插件等等来保护大公司的tfs环境。为安全的tfs构建环境做了很多工作。

答案 2 :(得分:0)

解决方案是撤销创建和编辑构建定义的权限,以便您可以严格控制在哪里构建构建。