CI/CD (持续集成与部署) 工具已成为软件开发行业中广泛采用的自动化交付流程的一部分。像 Travis CI 这样的工具用于自动构建、测试和部署软件。它们也已成为威胁行为者公认的攻击面,来自这些自动化构建的日志对于搜索暴露的机密信息特别有趣。保护构建过程输出,尤其是在公共存储库的情况下,是每个开发人员或团队在设置其 CI/CD 配置时应考虑的因素。CI/CD 工具的作用是支持构建管道输出的安全性。
与自动化 CI/CD 过程相关的安全实践应根据开发团队的具体安全策略进行考虑或遵守,以确保安全的软件供应链。但是,可能不足以防止机密信息在 CI/CD 构建作业日志中暴露,无论是由于人为错误还是恶意提交绕过代码审查。因此,我们很高兴地宣布,Travis CI 已添加了更多方法来更好地应对此类事件。
Travis CI 已经对构建作业动态审查了为构建作业配置的机密信息,以防止它们在构建作业日志中以明文形式暴露。但是,仍然有可能绕过该动态过滤器,如果构建作业本身没有错误,则构建作业日志在构建管道稳定后可能不会被详细检查。如果威胁行为者获得对构建作业日志的访问权限,则可以审查这些日志以搜索特定机密格式,例如令牌、密码、密钥等。
通过新的额外日志扫描,每个构建作业日志将在构建作业完成后不久进行扫描。扫描使用两个独立的开源扫描程序执行。如果作业后扫描过程在作业日志中发现未屏蔽的类似机密的条目,Travis CI 将作为预防措施对作业日志中的整行进行审查,并生成日志扫描报告。扫描报告可供存储库管理员使用 7 天。作业日志扫描报告包含有关发现的潜在机密信息的详细信息,引用原始作业日志文件中的行号,旨在帮助审查并找到潜在泄漏的来源,如果这被证明是机密的实际暴露,扫描会修复它。
每当额外的作业后扫描过程在构建作业日志中发现类似机密的条目时,Travis CI Web UI 中的图形状态将显示日志扫描结果。您可以在我们的 文档中找到更多详细信息。
扫描程序并不完美,我们预计在此过程中会出现误报。请查看报告和构建作业流程以评估情况,并在需要时采取后续措施。
不。扫描在现有的动态过滤器之上极大地提高了保护作业日志内容的有效性,但绝非完美。组织应制定自己的策略,以确保其作业日志符合其自身的安全措施。
我们正在审查 2022 年的作业日志,以根据这些新策略进行调整。此活动将在下一个日历季度内执行。存储库管理员可能会看到针对旧版构建作业弹出的更多日志扫描报告。
对于公共存储库或一般而言,对于可以访问构建作业日志的广泛群体来说,这是一个需要考虑的问题。至于初始版本,我们决定,向可以访问存储库的访问者标记构建作业日志中发现的内容,同时限制访问扫描报告,这在信号和访问详细信息之间取得了平衡。话虽如此,我们将密切审查反馈并相应调整。请注意,存储库管理员始终可以限制对 仅限写权限用户的实际构建作业日志的访问权限。
在这种情况下,电子邮件通知的数量可能适得其反,并且可能会导致阻止这些电子邮件,具体取决于您的邮件服务垃圾邮件算法。正如今年早些时候的一项研究表明,许多类似机密的模式存在于旧版构建作业日志中,通常是无意中暴露的。我们将密切监控扫描过程发出的警告数量,并决定是否启用进一步的通知选项。
不。尽管我们理解这可能不太方便,但过去构建作业日志中存在大量意外泄露的机密信息,并且始终存在威胁行为者试图在将来暴露这些机密信息的风险。