利用 GitHub Actions 在 GitHub 上进行加密挖矿?
GitHub Actions,自 2019 年微软推出以来,一直广受开发者好评。
GitHub Actions 是 GitHub Universe 开发者大会上发布的一款被 Github 系统主管 Sam Lambert 称为“再次改变软件开发”的重磅功能,支持 CI/CD 并对开源项目免费,让开发者能在 GitHub 服务器上直接执行和测试代码,帮助开发者和企业实现所有软件工作流程的自动化。
然而,这项功能刚问世不到两年,就被恶意滥用:攻击者利用此功能在 GitHub 服务器上植入挖矿软件,从而借助 GitHub 资源进行非法加密采矿!
仅提交 Pull Request 就会触发攻击
据悉,自 2020 年 11 月开始,攻击者就发现了 GitHub Actions 的一个 Bug:提交含有恶意代码的 Pull Request 时,无需项目原作者同意即可运行恶意代码。
荷兰安全工程师 Justin Perdok 对此解释道,攻击者会事先给一个合法的存储库创建分支,在分支中注入恶意代码,然后提交 Pull Request 以将该分支合并进原始存储库。
按理说,既然是要改变原始代码的 Pull Request,那自然要征得项目原作者的同意,那么这种包含恶意代码的分支肯定会被拒绝合并。
但意外的是,攻击者是有选择地针对那些具有自动化工作流程、尤其是使用了 GitHub Actions 的 GitHub 项目,因为这些项目会通过自动化作业来测试 Pull Request。
也就是说,攻击者仅仅是提交 Pull Request 就足以触发攻击。一旦这些恶意 Pull Request 被提交,GitHub 系统就会读取这些代码并启动一个虚拟机,而该虚拟机就会在 GitHub 的基础架构上下载并运行加密货币挖掘软件。
GitHub:已开始调查
据外媒 BleepingComputer 报道,运行的恶意代码会指示 GitHub 服务器去下载托管在 GitLab 上的一个恶意程序,名为 npm.exe。虽然名为 npm.exe,但它与 Node.js 组件管理器 Npm 没有一点关系,本质上就是一个挖矿程序。
攻击者会通过启动 npm.exe 程序,然后用攻击者的钱包地址运行它,下面 wallet 信息即是钱包地址。
npm.exe --algorithm argon2id_chukwa2
--pool turtlecoin.herominers.com:10380
--wallet TRTLv3ZvhUDDzXp9RGSVKXcMvrPyV5yCpHxkDN2JRErv43xyNe5bHBaFHUogYVc58H1Td7vodta2fa43Au59Bp9qMNVrfaNwjWP
--password xo
而在报道该新闻后,其他的攻击者也迅速如法炮制,出现了另一个名为 XMRig 的挖矿程序,该攻击者的钱包地址为:
49eqpX3Sn2d5cfJTevgZLGZGQmcdE37QE4TMJDmDcJeCG8DUgkbS5znSsU35Pk2HC1Lt99EnSiP9g74XpUHzTgxw23n5CkB
更令人警惕的是,Justin Perdok 在推特上表示,目前他至少已经确定有一个账号创建了几百个包含恶意代码的 Pull Request,仅一次攻击就能运行多达 100 个挖矿程序。
虽然到目前为止,这些攻击者还未以任何方式损害用户的存储库或利益,仅仅利用了存储库的 GitHub Actions 功能在 GitHub 服务器上植入挖矿程序。但潜在的隐患不容忽视,GitHub 官方表示已经开始展开调查。
不过这些攻击者也不依不饶,一旦账户被封,他们就迅速注册新账户,防不胜防。
GitHub 应该警惕
这种情况在去年就已经零星的出现了,第一个案例是由一名法国软件工程师报告的,当时他就反应,有 Pull Request 通过他的 GitHub 项目进行加密挖矿攻击。
而当时 GitHub 在给回复时与这次如出一辙:“我们已经意识到这一现象,并正在积极调查。”
可几个月后的如今,这种攻击还在发生,并且愈发猖狂。有人认为这种零星的攻击不会导致严重的后果,但这种未经项目作者同意就自动执行 Pull Request 的现象或许真的应该警惕了。
参考链接:
https://www.bleepingcomputer.com/news/security/github-actions-being-actively-abused-to-mine-cryptocurrency-on-github-servers/
https://twitter.com/JustinPerdok/status/1377970380086902794/photo/1
https://therecord.media/github-investigating-crypto-mining-campaign-abusing-its-server-infrastructure/