GitHub Actions 现新一轮供应链攻击

阅读量20365

发布时间 : 2025-03-19 10:08:20

x
译文声明

本文是翻译文章,文章原作者 Mathew J. Schwartz,文章来源:govinfosecurity

原文地址:https://www.govinfosecurity.com/second-github-actions-supply-chain-attack-discovered-a-27751

译文仅供参考,具体内容表达以及含义原文为准。

Second GitHub Actions Supply Chain Attack Discovered

安全研究人员警告称,在发现一起黑客攻击事件(该攻击破坏了软件开发环境中一款广泛使用的工具)仅仅数天之后,GitHub 上很可能又正在发生一起供应链攻击。这一最新威胁使得数千个代码存储库面临其凭据和软件开发管道被破坏的风险。

最新的这次攻击似乎与此前发现的攻击有关,其核心是将恶意代码注入了一个名为 reviewdog/actions-setup@v1 的 GitHub Actions 自动代码审查工具中。

云安全公司 Wiz 的首席安全研究员Rami McCarthy在周一发布的一篇博客文章中表示:“我们认为这是一系列供应链攻击,最终会指向某个特定的高价值目标。” 目前尚不清楚这个目标究竟是什么。

McCarthy警告称,被植入后门的 GitHub Actions 是组织可能使用的更广泛的一系列操作的一部分,此次攻击可能已经泄露了代码开发管道中的机密信息,包括应用程序编程接口(API)密钥和凭据。

基于 Git 版本控制系统的 GitHub,被开发人员用于存储、管理和共享代码,并且是众多软件开发和协作环境的基础。该平台提供了 GitHub Actions 工作流这一可选功能,其设计目的是在 GitHub 中实现持续集成和持续交付(即 CI/CD)的自动化。

在这起关于被植入后门操作的警报发出之前,软件公司 StepSecurity 在周五曾发出警告,称其在 changed-files(一组流行的 GitHub Actions 工具)中发现了注入的恶意代码。StepSecurity 维护着一个针对 GitHub Actions 的软件供应链安全平台。

研究人员随后通过一次恶意提交发现了被植入后门的情况。周六,GitHub 移除了受感染的内容,然后在当天晚些时候在清除了所有恶意代码后恢复了该内容,此前已阻止了攻击者的访问。

研究人员表示,那次攻击可能已经泄露了使用 tj-actions 的 23000 多个代码存储库的机密信息,包括 API 密钥和身份验证令牌。他们建议确定在攻击发生的时间段内是否使用了该操作的恶意版本,如果是,建议检查它是否被执行,研究日志以查看是否有任何机密信息可能已被泄露,并更换这些机密信息。

针对 tj-actions 和 reviewdog 的攻击似乎大致相似。Wiz 公司的McCarthy表示:“正如我们在 tj-actions 事件中看到的那样,受感染的操作将恶意代码注入了任何使用它的持续集成(CI)工作流中,转储了包含工作流机密信息的 CI 运行器内存。”“虽然这与 tj-actions 事件的结果相同,但有效载荷是不同的,并且没有使用 curl 来检索有效载荷。相反,有效载荷是经过 Base64 编码并直接插入到工作流使用的文件中。”

tj-actions 的维护者在周六报告称,这次攻击似乎可追溯到一个 “与 @tj-actions-bot 账户相关联” 的个人访问令牌(PAT),并且 “GitHub 无法确定这个 PAT 是如何被泄露的”。维护者表示,GitHub 已撤销了被泄露的 PAT,他们已经更改了机器人的密码,升级了身份验证方式以要求使用密钥进行访问,并锁定了机器人的权限以阻止再次发生或模仿的攻击。

周一,独立安全研究员Adnan Khan分享了证据,表明获取 tj-actions/changed-file 的 CodeCommit 访问凭据的人是通过首先对 reviewdog 操作植入后门来实现的,导致其中一些操作提供恶意代码。

在审查了Khan的发现后,Wiz 表示 “我们认为很可能是 reviewdog/action-setup@v1 的被破坏导致了 @tj-actions-bot 的 PAT 被泄露的根本原因”,部分原因是 “tj-actions/eslint-changed-files 使用了 reviewdog/action-setup@v1,并且该存储库使用个人访问令牌运行此操作” 。

攻击的时间点也相互吻合。McCarthy说:“我们认为,reviewdog 操作的 v1 标签在世界协调时(UTC)3 月 11 日 18 点 42 分至 20 点 31 分之间指向了一次恶意提交”,在此之后,该操作又恢复到了一个较早的提交,攻击者可能是通过强制推送来掩盖他们的行为。仅仅几个小时后,针对 tj-actions 的攻击似乎就开始了。

对于任何在公共存储库中使用了被植入后门的 reviewdog 操作的组织,Wiz 警告称,其工作流日志中的机密信息将会已经泄露,“我们强烈建议尽快更换这些机密信息”。对于设置为私有的存储库,“这意味着机密信息没有被公开泄露,但你仍然应该考虑更换它们”。

攻击者是如何对 reviewdog 植入后门的尚不清楚,这意味着攻击者可能能够再次注入恶意代码。StepSecurity 首席执行官Varun Sharma在周二发布的一篇博客文章中表示:“由于没有公开的恢复证据,可以合理地假设这些操作可能会再次受到破坏。如果可能的话,在事件的影响明确之前,停止使用所有这些操作。”

鉴于恶意代码被添加到受信任操作中所带来的风险,GitHub 建议 GitHub Actions 用户采取多项措施来保护自己免受此类攻击。它警告称:“工作流中单个操作被破坏可能会产生非常严重的后果,因为受破坏的操作将能够访问在你的存储库上配置的所有机密信息,并且可能能够使用 GITHUB_TOKEN 写入该存储库。”

防止攻击者成功在 GitHub Actions 中注入恶意代码的一个关键防御措施包括将操作固定到一个 Git 提交哈希值(即使用安全哈希算法生成的哈希值,它可作为一段受信任代码的唯一标识符)。

GitHub 表示:“固定到特定的安全哈希算法(SHA)有助于降低恶意行为者在操作的存储库中添加后门的风险,因为他们需要为有效的 Git 对象有效载荷生成一个 SHA-1 冲突。在选择 SHA 时,你应该验证它来自操作的存储库,而不是存储库的派生版本。”

 

本文翻译自govinfosecurity 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66