社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub供应链攻击升级:Coinbase超218代码库暴露,CI/CD密钥泄露

FreeBuf • 3 月前 • 107 次点击  


涉及 GitHub Actions 工具 "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的研究人员表示:“当执行tj-actions/eslint-changed-files Action时,tj-actions/changed-files CI运行器的密钥被泄露,攻击者得以窃取运行器中使用的凭证,包括属于tj-bot-actions GitHub用户账户的个人访问令牌(PAT)。”


目前怀疑攻击者设法获得了对reviewdog组织具有写权限的令牌,以进行恶意修改。然而,该令牌的获取方式目前仍不清楚。


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


Palo Alto Networks的高级研究经理Gil说:“攻击者采取了多种技术手段来掩盖其踪迹,例如利用悬空提交、创建多个临时GitHub用户账户,以及在工作流日志中混淆其活动(尤其是在最初的Coinbase攻击中)。这些发现表明,攻击者技术高超,对CI/CD安全威胁和攻击策略有深刻理解。”


Unit 42推测,分叉拉取请求背后的用户账户"iLrmKCu86tjwp8"可能在攻击者从注册时提供的合法电子邮件地址切换到一次性(或匿名)电子邮件后从公众视野中隐藏,这可能导致该用户的所有交互和操作被隐藏。然而,GitHub在回应时既未确认也未否认这一假设,但表示正在积极审查情况并采取必要措施。


GitHub发言人表示:“目前没有证据表明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分钟就发起了大规模攻击,尽管检测风险增加。”


FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复「加群」,申请加入群聊】

图片

图片





图片

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/180368
 
107 次点击