情况介绍
网络安全研究人员的发现,GitHub Actions目前正被攻击者滥用,黑客正在通过一种自动化的攻击方式在GitHub的服务器上进行加密货币挖矿活动。
GitHub Actions是一个CI/CD解决方案,它可以轻松地设置周期性任务以自动化软件工作流。
这里所描述的特定攻击,指的是将恶意GitHub Actions代码添加到那些从合法存储库派生的存储库中,并进一步创建一个Pull请求,以便原始存储库维护人员将代码合并回来。
但是,这种攻击活动并不需要合法项目的维护人员进行任何的操作,攻击同样可以成功。
研究人员还发现,恶意代码会从GitLab加载一个错误命名的加密货币挖矿软件npm.exe,然后使用攻击者的加密货币钱包地址来执行挖矿活动。
在报告了相关事件之后,研究人员还发现了很多以同样形式模仿进行的针对GitHub项目的攻击活动。
Fork合法代码,添加恶意代码,然后将代码合并回来
就在这周,据一位名叫Justin Perdok的荷兰安全工程师称,攻击者已经选定好了使用GitHub Actions进行挖矿的GitHub项目库了。
这些代码库会使用GitHub Actions来优化和实现CI/CD自动化和调度任务。
这种特殊的攻击利用的是GitHub自己的基础设施,并在GitHub的服务器上传播恶意软件和加密货币挖矿软件。这种攻击方式还会涉及攻击者Fork的启用了GitHub Actions的合法代码库。然后,攻击者会在Fork的代码库版本中注入恶意代码,并向原始代码库的维护人员提交一个Pull请求以将代码合并回来。
根据Perdok分享的一个屏幕截图显示,目前至少有95个代码库将成为攻击者的目标:
但令人意外的是,整个攻击过程并不需要原始项目的维护人员去批准攻击者发起的恶意Pull请求。
Perdok表示,攻击者只需要提交Pull请求就足以触发攻击了。
对于GitHub项目来说尤其如此,这些项目具有自动化的工作流设置,可以通过GitHub Actions验证传入的Pull请求。
一旦为原始项目创建了Pull请求,GitHub的系统就会执行攻击者的代码,而恶意代码将指示GitHub服务器检索并运行加密货币挖掘程序。
从GitLab下载的加密货币挖矿软件npm.exe
恶意Pull请求会调用自动化代码并指示GiHub服务器下载一个托管在GitLab上的加密货币挖掘程序,而这个文件就是被错误标记的npm.exe。
但是这个npm.exe文件与官方NodeJS安装程序或节点包管理器(npm)无关,因为它是一个著名的加密货币挖掘程序。
根据研究人员的分析,攻击者启动npm.exe文件之后,会将他们的钱包地址以参数的形式传递进去:
- npm.exe --algorithm argon2id_chukwa2
- --pool turtlecoin.herominers.com:10380
- --wallet TRTLv3ZvhUDDzXp9RGSVKXcMvrPyV5yCpHxkDN2JRErv43xyNe5bHBaFHUogYVc58H1Td7vodta2fa43Au59Bp9qMNVrfaNwjWP
- --password xo
在研究人员运行的测试中,加密货币挖掘程序会连接到turtlecoin.herominers.com矿池并开始加密货币挖矿:
还有使用XMRig的模仿攻击活动
在发布了相关研究报告之后,研究人员又发现了大量模仿此形式的攻击活动。在这些攻击活动中,攻击者同样会使用恶意Pull请求并利用GitHub Actions完成加密货币挖矿攻击。
研究人员还发现,有的攻击活动还会从XMRig的官方GitHub代码库中引入了开源XMRig 加密货币挖矿程序。
模仿攻击中发现的钱包地址如下:
- 49eqpX3Sn2d5cfJTevgZLGZGQmcdE37QE4TMJDmDcJeCG8DUgkbS5znSsU35Pk2HC1Lt99EnSiP9g74XpUHzTgxw23n5CkB
下面给出的是攻击者的ci.yml文件中定义的矿池服务器列表:
后话
GitHub方面也表示,他们已经了解到了事件的详情,并且正在着手调查和解决这一问题。
利用GitHub基础设施的攻击已经不是第一次出现了,而且利用GitHub Actions的攻击活动也日趋频繁。
就在去年,研究人员专门报告称有攻击者利用GitHub的基础设施来托管蠕虫僵尸网络Gitpaste-12。但是,跟Gitpaste-12或Octopus Scanner恶意软件(针对的是存在漏洞的项目或设备)不同的是,这种特定的攻击似乎只会利用GitHub的服务器进行加密货币挖矿任务。