Travis CI 现在引入了工作日志可用性的变化

Travis CI
分享此
分享此

Travis CI 工作日志提供有关在构建中执行特定作业的重要信息。此外,构建作业日志包含补充信息,例如环境变量名称和值,以及用户定义的自定义调试输出。这些调试输出和未加密的变量可能包含易受攻击的秘密(凭据、令牌)。因此,在公共存储库中运行构建可能会导致无意中或被忽视地暴露易受攻击的信息。为了最大限度地降低风险,Travis CI 对工作日志的可用时间和对象进行了限制。这些限制是可配置的。

工作日志

虽然 Travis CI 可以安全地处理秘密,但这些秘密可能以未加密或不安全的形式提供并在工作日志中暴露出来。Travis CI 的工作日志过滤器屏蔽了大多数看起来像秘密的文本,但某些情况可能会绕过现有的审查机制。随着每天大量构建的进行,以及只在报告问题时才审查日志的趋势,我们如何才能确定日志中是否意外泄露了秘密?

为了支持用户并帮助防止恶意行为者通过扫描旧的 Travis CI 工作日志(特别是针对公共存储库)来查找暴露的秘密,我们正在引入附加功能:启用/禁用对旧构建作业日志的访问。将对构建作业日志的访问限制为具有写入权限的一组存储库协作者。

这些新功能将为存储库所有者和管理员提供一定程度的控制权,让他们可以控制可见的 Travis CI 构建作业日志的可用性。此外,这些新选项将有助于防止潜在的安全或机密细节从旧版/历史数据中泄露。

它是如何工作的?

在 Travis CI 中,构建作业日志遵循存储库的可用性。公共存储库具有公共构建作业日志,可通过 Travis CI Web 用户界面和 API 获得。如果日志中泄露了机密信息,例如用户未加密其秘密,则日志将保持公开状态,并且可能被任何人解析。潜在的后果可能对 Travis CI 用户来说非常严重。Travis CI 想要通过遵循将安全功能的控制权交给受影响团队的政策来解决此威胁,因为生产环境中存在多种工作流和协作模式。

目前,这意味着

所有具有读取权限的用户都可以看到构建作业日志;这是一个可供存储库管理员使用的设置。超过 365 天的构建作业日志(构建作业日志日期决定)不可用;这是一个可供存储库管理员使用的设置。通过 Travis CI API 访问工作日志现在始终需要 API 身份验证,无论存储库是公开的还是私有的。

现在,在 Travis CI 存储库设置中,存储库管理员和所有者具有以下选项

启用对旧构建作业日志的访问,如果此选项为 OFF(默认设置),则确保超过 365 天的作业日志对任何人不可用。如果设置为 ON,则允许根据下面描述的访问设置访问超过 365 天的构建作业日志 - 限制对构建作业日志的访问。

如果您想更改日志可用性的 365 天阈值,请联系支持,指出您的版本控制系统 (VCS)、相应的 VCS 处理程序和存储库名称。

限制对构建作业日志的访问(只有具有写入/推送权限的用户)。当此选项为 OFF(默认设置)时,对工作日志的访问与现在非常相似,即所有具有读取权限的用户都可以访问。这意味着公共存储库的工作日志可以被所有人访问。但是,当您将其切换为 ON 时,只有具有写入/推送权限的用户才能看到构建作业日志。Travis CI 根据与您的相应 VCS 同步帐户时接收的信息确定写入/推送权限。同步每天自动进行一次,每个用户都可以通过您帐户设置中的“同步帐户”按钮手动触发它。

API 中的额外更改

为了提高安全性,无论存储库是公开的还是私有的,在 API 请求中未提供 API 身份验证令牌的情况下,工作日志都不可用。通过 API 请求的工作日志现在仅通过 API 提供,不会重定向到存储。

如何访问工作日志可用性选项?

在 Travis CI 用户界面中选择一个存储库。按下位于右上角的“更多选项”下拉菜单

接下来,选择设置

在安全设置下,您将找到两个额外的选项

  • 启用对旧构建作业日志的访问
  • 限制对构建作业日志的访问

好的,这 365 天的工作日志期限仍然可用吗?

是的,过去 365 天的工作日志仍然可用。可能会发生错误,并且调试输出中可能泄露了太多信息。Travis CI 继续致力于改进工作日志审查机制,以帮助您保护您的秘密。尽管如此,我们强烈建议:将您的环境变量隐藏在工作日志中。加密构建定义中使用的敏感数据。

找到有关新的工作日志可用性选项的更多文档。

当启用对旧构建作业日志的访问被禁用(默认情况下)时,构建作业的工作日志(其创建时间早于当前时间 365 天)将不会显示在 Travis CI Web UI 中,并且将无法通过 Travis CI API 调用获得,这些调用确实会获取工作日志内容。

当切换为启用时,它必须与更改之前一样:所有构建作业日志都可用于存储库状态。

  • 公共存储库具有公共工作日志(对所有人可用)。
  • 私有存储库具有私有工作日志,仅对存储库的协作者可用。

当限制对构建作业日志的访问被禁用(默认情况下)时,系统行为与现有状态完全相同:具有读取权限的用户可以访问构建作业日志(API 仍然可能需要身份验证令牌)。

当切换为启用时,系统将仅允许被识别为存储库的写入/推送用户的用户访问构建作业日志。

Travis CI 有信心这些新功能会提高安全性。但是,请确保人们没有必要以不安全的方式使用秘密,这将防止秘密泄漏到日志中。

祝您构建愉快!

© 版权所有 2024,保留所有权利
© 版权所有 2024,保留所有权利
© 版权所有 2024,保留所有权利