tj-actions/changed-files 被篡改,运行凭证窃取内存刮取器
超过23,000个组织(包括部分大型企业)使用的开源软件,在攻击者未经授权访问维护者账户后,植入了凭证窃取代码。这是最新一次引发互联网波动的开源供应链攻击事件。
被篡改的软件包 tj-actions/changed-files 是 tj-actions 的一部分,tj-actions 是一个被超过23,000个组织使用的文件集合。Tj-actions 是众多 GitHub Actions 之一,这是一种在开源开发者平台上用于简化软件流程的平台。Actions 是实现持续集成与持续部署(CI/CD,持续集成和持续部署或持续交付)的核心手段。
大规模内存刮取
在周五或更早之前,tj-actions/changed-files 的所有版本源代码接收到未经授权的更新,修改了开发者用来引用特定代码版本的“标签”。这些标签指向一个公开可用的文件,该文件会复制运行它的服务器的内部内存,搜索凭证,并将其写入日志。事后,许多运行 tj-actions 的公开可访问的仓库在日志中显示了它们最敏感的凭证,任何人都可以查看这些日志。
“Actions 可怕的一点在于,它们常常可以修改使用它们的仓库的源代码,并访问与工作流相关的任何秘密变量,”runZero 的创始人兼首席执行官、开源安全专家 HD Moore 在一次采访中说道。“最谨慎的做法是审计所有源代码,然后在工作流中固定特定的提交哈希值,而不是标签,但这样做很麻烦。”
正如此次供应链攻击所显示的,许多 GitHub 用户并未遵循这些最佳实践。使用 tj-actions 且信任标签而非经过验证版本哈希的仓库最终运行了内存刮取器/日志记录器。该攻击对任何此类仓库构成潜在威胁,因为凭证绝不应以可读形式出现。对于公开可见的仓库,风险尤为严重,因为凭证可被任何人查看。
攻击细节
一个 tj-actions 的维护者在周六表示,攻击者通过某种方式获取了 @tj-actions-bot 所使用的凭证,以获得对受感染仓库的特权访问。维护者称,目前尚不清楚该凭证是如何被攻破的。该机器人的密码已经被更改,为了增加安全性,账户现在受通行密钥(passkey)的保护,这是一种符合 FIDO 联盟规定的凭证,默认需要双因素认证。
GitHub 官方回应
GitHub 官员在一份声明中表示,他们没有证据表明公司或其平台已被攻破。
“出于谨慎考虑,我们根据 GitHub 的《可接受使用政策》暂停了相关用户账户并移除了相关内容,”官员们写道。“在确认所有恶意更改已撤销且漏洞源已被封堵后,我们恢复了账户和内容。”他们进一步提醒用户,在更新新版本之前,应“始终审查他们在代码中使用的 GitHub Actions 或任何其他包。”
事件发现与影响
此次供应链攻击最初由安全公司 StepSecurity 发现,该公司表示通过“在网络流量中出现意外端点的异常检测”注意到了该事件。事发似乎始于太平洋时间周六上午9点左右。
在另一份报告中,安全公司 Wiz 的研究人员表示,初步分析已经确认数十名 tj-actions 用户在此次供应链攻击中遭受了实际损害。研究人员写道:
在与此次恶意活动相关的威胁狩猎中,Wiz 威胁研究团队多次观察到部署了旨在泄露秘密的脚本,作为恶意负载执行的一部分。此外,Wiz 威胁研究团队目前已识别出数十个受恶意 GitHub Actions 影响的仓库,包括由大型企业运营的仓库。在这些仓库中,恶意负载成功执行并导致凭证泄露到工作流日志中。目前已识别的泄露凭证包括有效的 AWS 访问密钥、GitHub 个人访问令牌(PATs)、npm 令牌、私有 RSA 密钥等。
历史案例与防范建议
tj-actions 事件是针对广泛使用的开源包的最新一次供应链攻击案例。去年,一名为微软工作的独立开发者发现了一个被故意植入的后门,该后门存在于 xz Utils 中,这是一个被数百万组织(其中许多是《财富》500强公司)使用的开源数据压缩工具。幸运的是,这个允许攻击者以特权身份登录任何服务器的后门程序,在计划部署到 Linux 生产版本前几周便被发现。其他近期的供应链攻击案例可以参考此处和此处。
任何负责使用 tj-actions 的系统负责人应仔细检查其系统,检查是否有被攻击的迹象。此次供应链攻击应促使管理员审查他们使用的任何 GitHub Actions,确保使用指向已验证代码的加密哈希值,而非标签。StepSecurity 和 Wiz 的相关博文(以及 Semgrep 的这篇文章)提供了有用的指导。
关注【黑客联盟】带你走进神秘的黑客世界
原文始发于微信公众号(黑客联盟l):近期全球很多大型企业因供应链攻击泄露机密而陷入混乱
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论