当前位置: 首页 > article >正文

GitHub供应链攻击事件:Coinbase遭袭,218个仓库暴露,CI/CD密钥泄露

image

此次供应链攻击涉及GitHub Action "tj-actions/changed-files",最初是针对Coinbase的一个开源项目的高度定向攻击,随后演变为范围更广的威胁。

攻击过程与影响

Palo Alto Networks Unit 42在一份报告中指出:“攻击载荷主要针对其开源项目agentkit的公共CI/CD流程,可能是为了利用它进行进一步的攻击。然而,攻击者未能使用Coinbase的密钥或发布软件包。”

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

根据Endor Labs的估计,218个GitHub仓库因这次供应链攻击暴露了其密钥,泄露的信息主要包括DockerHub、npm和亚马逊云服务(AWS)的“几十个”凭证,以及GitHub安装访问令牌。

安全研究员Henrik Plate表示:“考虑到成千上万的仓库依赖于这个GitHub Action,供应链攻击的初始规模听起来很可怕。然而,深入分析工作流、运行情况和泄露的密钥后,发现实际影响比预期的要小:‘仅’218个仓库泄露了密钥,其中大多数是短期的GITHUB_TOKEN,一旦工作流运行完成就会过期。”

攻击手段与后续发展

此后,另一个名为"reviewdog/action-setup"的GitHub Action的v1标签也被入侵,该标签通过"tj-actions/eslint-changed-files"作为依赖项被"tj-actions/changed-files"使用,其攻击载荷与tj-actions事件类似。"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在回应时既未确认也未否认这一假设,但表示正在积极审查情况并采取必要措施。

GitHub发言人告诉The Hacker News:“目前没有证据表明GitHub或其系统遭到入侵。所提及的项目是用户维护的开源项目。”

image

“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分钟就发起了大规模攻击,尽管检测风险增加。”


http://www.kler.cn/a/599478.html

相关文章:

  • PostgreSQL结构
  • v-chart 显示BUG (图表显示不全)
  • 【Android】VehiclePropertyAccess引起CarService崩溃
  • 网络故障排查
  • spring和maven
  • 18,C++——哈希
  • 第3章 Internet主机与网络枚举(网络安全评估)
  • Log4j2 的核心实现和源码分析
  • day 6 中断
  • 求二叉搜索树中的众数的三种方法
  • [Android] NFC卡模拟 9.05 模拟NFC门禁卡 电梯卡等 手机代替卡片
  • <项目> 高并发服务器的HTTP协议支持
  • QML指示控件:ScrollBar与ScrollIndicator
  • 复杂任务需要多agent协同处理,对其进行逻辑编排和参数调用
  • 鸿蒙特效教程10-卡片展开/收起效果
  • 数据结构篇:空间复杂度和时间复杂度
  • netplan是如何操控NetworkManager的? 笔记250324
  • 车载以太网网络测试 -23【TCPUDP通信示例】
  • 蓝桥杯——嵌入式学习日记
  • 借助AI Agent实现数据分析