【问题标题】:How to secure Ant builds?如何保护 Ant 构建?
【发布时间】:2014-01-03 22:19:26
【问题描述】:

我们公司使用 ANT 来自动化构建脚本。

现在有人提出了如何保护此类构建脚本免受(意外或有意)威胁的问题?

示例 1:有人签入了一个构建脚本,该脚本删除了 Windows 驱动器 T:\ 下的所有内容,因为这是为特定开发机器安装 Apache 部署目录的位置。几个月后,其他人可能会运行构建脚本并擦除 T:\ 上的所有内容,这是这台机器上的共享驱动器。

示例 2:入侵者修改单个项目中的默认构建目标以扫描整个本地硬盘。持续集成机器(例如 Jenkins)被配置为执行默认构建目标,因此会将其整个本地目录结构发送给入侵者,即使对于入侵者不应访问的项目也是如此。

关于如何防止此类情况的任何建议(除了“开发政策”或“不要挂载共享驱动器”)?

我唯一的想法是使用 chroot 环境进行构建?!

【问题讨论】:

    标签: security ant build jenkins continuous-integration


    【解决方案1】:

    您描述的问题对于您在构建机器上执行的任何代码都是相同的 - 您可以使用单元测试来做同样的事情。

    在这种情况下,最好的解决方案可能是将您的构建脚本置于源代码控制之下,并在签入之前进行代码审查。

    【讨论】:

      【解决方案2】:

      在我的公司,构建脚本(通常是构建文件夹)是另一个仅由构建/发布工程师控制的 subversion 存储库的 svn:external。开发人员可以控制变量,例如它可以部署到的服务器,但不能控制这些函数的作用。相同的代码在多个运行中的项目中重复使用,只有少数开发人员可以更改它,而不是整个开发人员。

      补充:当访问共享资源时,我们使用的系统帐户只能读取这些资源。进一步:詹金斯,开发项目和构建/部署代码被编写来处理詹金斯项目工作区和部署环境的完全损失。这是导致基础架构自动化的基本构建自动化/部署自动化。

      基本规则:墨菲定律即将发生。您应该编写健壮的脚本并处理冷启动场景,而不必担心野蛮的入侵者理论。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-29
        • 1970-01-01
        • 1970-01-01
        • 2010-11-30
        • 2012-09-04
        • 2020-04-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多