GitHub 供应链漏洞,Coinbase 遭恶意攻击致 218 仓库 CI/CD 机密曝光

阅读量25914

发布时间 : 2025-03-24 15:46:23

x
译文声明

本文是翻译文章,文章原作者 Ravie Lakshmanan,文章来源:TheHackersNews

原文地址:https://thehackernews.com/2025/03/github-supply-chain-breach-coinbase.html

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

涉及 GitHub Action“tj-actions/changed-files” 的供应链攻击起初是针对 Coinbase 的一个开源项目的高度定向攻击,之后演变成了波及范围更广的事件。

Palo Alto Networks的 Unit 42 在一份报告中称:“攻击有效载荷聚焦于利用 Coinbase 其中一个开源项目 agentkit 的公共持续集成 / 持续交付(CI/CD)流程,其目的可能是以此为突破口进行进一步破坏。然而,攻击者未能使用 Coinbase 的密钥或发布软件包。”

这一事件于 2025 年 3 月 14 日曝光,当时发现 “tj-actions/changed-files” 被入侵,用于注入代码,从运行该工作流程的代码仓库中泄露敏感密钥。该事件被分配的通用漏洞披露(CVE)标识符为 CVE-2025-30066(通用漏洞评分系统(CVSS)评分:8.6)。

据 Endor Labs 估计,由于此次供应链攻击,有 218 个 GitHub 代码仓库暴露了它们的密钥,泄露的信息主要包括几十个 DockerHub、npm 和Amazon Web Services(AWS)的凭证,以及 GitHub 安装访问令牌。

安全研究员Henrik Plate表示:“考虑到数以万计的代码仓库依赖这个 GitHub Action,此次供应链攻击最初的规模听起来令人担忧。然而,深入研究工作流程、运行情况和泄露的密钥后发现,实际影响比预期要小:‘仅有’218 个代码仓库泄露了密钥,而且其中大多数是短效的 GITHUB_TOKEN,一旦工作流程运行完成就会过期。”

从那时起,有情况表明,另一个名为 “reviewdog/action-setup” 的 GitHub Action 的 v1 标签也遭到了入侵,“tj-actions/changed-files” 通过 “tj-actions/eslint-changed-files” 依赖于它。在 tj-actions 事件发生之前,“reviewdog/action-setup” 就被植入了类似的攻击有效载荷。对 “reviewdog/action-setup” 的入侵被追踪为 CVE-2025-30154(CVSS 评分:8.6)。

据说,对 CVE-2025-30154 的利用使得身份不明的威胁行为者获得了与 “tj-actions/changed-files” 相关的个人访问令牌(PAT),从而使他们能够修改代码仓库并推送恶意代码,进而影响每一个依赖该 Action 的 GitHub 代码仓库。

Unit 42 的研究人员Omer Gil、Aviad Hahami、Asi Greenholts和Yaron Avital表示:“当 tj-actions/eslint-changed-files Action 执行时,tj-actions/changed-files CI 运行器的密钥被泄露,攻击者得以窃取运行器中使用的凭证,包括属于 tj-bot-actions GitHub 用户账户的个人访问令牌(PAT)。”

目前怀疑攻击者设法获得了对 reviewdog 组织具有写入权限的令牌,以便进行恶意修改。不过,在现阶段,该令牌的获取方式仍不得而知。

此外,对 “reviewdog/action-setup” 的恶意提交据说首先是通过分叉相应的代码仓库,对其进行修改,然后向原始代码仓库创建分叉拉取请求,最终引入任意提交 —— 这种情况被称为悬空提交。

Palo Alto Networks的高级研究经理Gil在接受The Hacker News采访时表示:“攻击者采取了多种手段来隐藏踪迹,比如利用悬空提交、创建多个临时 GitHub 用户账户,以及在工作流程日志中混淆他们的活动(特别是在最初针对 Coinbase 的攻击中)。这些发现表明攻击者技术娴熟,对 CI/CD 安全威胁和攻击策略有深刻的理解。”

Unit 42 推测,分叉拉取请求背后的用户账户 “iLrmKCu86tjwp8” 可能在攻击者违反 GitHub 政策,将注册时提供的合法电子邮件地址切换为一次性(或匿名)电子邮件后,从公众视野中消失了。这可能导致该用户执行的所有交互和操作都被隐藏起来。然而,当The Hacker News就此联系 GitHub 征求评论时,GitHub 既未证实也未否认这一假设,但表示正在积极审查情况并在必要时采取行动。

GitHub 的一位发言人告诉The Hacker News:“目前没有证据表明 GitHub 或其系统遭到入侵。所提及的项目是用户维护的开源项目。GitHub 将继续根据 GitHub 的可接受使用政策审查并处理与代码仓库内容相关的用户报告,包括恶意软件和其他恶意攻击。用户在更新到新版本之前,应该始终审查他们在代码中使用的 GitHub Actions 或任何其他软件包。在使用第三方代码的所有其他情况下也是如此。”

对 tj-actions/changed-files 的 GitHub 分叉进行更深入的搜索后,发现了另外两个账户 “2ft2dKo28UazTZ” 和 “mmvojwip”,这两个账户此后都已从该平台删除。还发现这两个账户都对与 Coinbase 相关的代码仓库进行了分叉,比如 onchainkit、agentkit 和 x402。进一步检查发现,这些账户通过分叉拉取请求修改了 agentkit 代码仓库中的 “changelog.yml” 文件,使其指向之前使用 PAT 发布的恶意版本的 “tj-actions/changed-files”。

据信攻击者获得了对 agentkit 代码仓库具有写入权限的 GitHub 令牌 —— 这反过来又是由 tj-actions/changed-files GitHub Actions 的执行促成的 —— 以便进行未经授权的更改。

另一个值得强调的重要方面是,在这两种情况下使用的攻击有效载荷有所不同,这表明攻击者试图躲避监测。

Gil说:“攻击者在攻击的不同阶段使用了不同的有效载荷。例如,在大规模攻击中,攻击者转储了运行器的内存,并将作为环境变量存储的密钥打印到工作流程日志中,而不管正在运行的是哪个工作流程。然而,在针对 Coinbase 时,攻击者专门获取了 GITHUB_TOKEN,并确保只有当代码仓库属于 Coinbase 时,有效载荷才会执行。”

Gil指出,目前尚不清楚此次攻击活动的最终目标是什么,但 “强烈” 怀疑其意图是获取经济利益,考虑到对 Coinbase 的针对性极强,很可能试图进行加密货币盗窃。截至 2025 年 3 月 19 日,该加密货币交易所已对此次攻击进行了补救。

同样不清楚是什么促使攻击者改变策略,将最初的定向攻击转变为大规模且隐蔽性较低的活动。

Gil说:“一种假设是,在意识到他们无法利用令牌污染 Coinbase 的代码仓库,并且得知 Coinbase 已经检测到并缓解了攻击后,攻击者担心失去对 tj-actions/changed-files Action 的访问权限。由于入侵这个 Action 可以访问许多其他项目,他们可能决定迅速行动。这可以解释为什么在 Coinbase 缓解了自身的风险暴露后仅 20 分钟,他们就发动了大规模攻击,尽管这样做被检测到的风险更高。”

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

发表评论

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