推特用户 @Stephen Lacy 发现 GitHub 上存在大规模的混淆恶意攻击,目前 GitHub 上有超过 35,000 个恶意文件 / 克隆仓库,包括 crypto、golang、python、js、bash、docker、k8s 等知名项目。
这些恶意文件 / 克隆仓库会附带一行恶意代码:
hxxp://ovz1.j19544519.pr46m.vps.myjino[.]ru
它不仅泄露了用户的环境变量 ,而且还包含一个单行后门,会将脚本、应用程序、笔记本电脑(电子应用程序)等整个 ENV 发送到攻击者的服务器,ENV 包括受害者的安全密钥、AWS 访问密钥、加密密钥等帐户凭证。
在 GiuHub 搜索这行恶意代码会出现 35788 个代码结果,其中约 13000 个搜索结果来自一个名为 “redhat-operator-ecosystem” 的仓库,这个库现在已从 GitHub 中删除。
这些恶意攻击伪装得非常好,看起来像人畜无害的提交,比如带着 “bump version to 0.3.11” 之类的消息:
其中一些被混淆成合法的 PR,但其实仓库没有收到任何 PR,反而仓库中的每个 go 文件都被感染了:
其中一些克隆仓库的历史提交记录包括来自原作者的提交,但这些提交未经 GPG 验证,意味着这是攻击者通过克隆仓库伪装的。除了原作者,恶意软件也可能伪装成其他开发者,但点进去就会发现用户不存在。
这部分恶意攻击与 GiuHub 本身的漏洞相关,比如之前我们报道过的 Linus 利用 GitHub 漏洞发布恶作剧 README,用户可以 “通过 git 电子邮件地址冒充用户” ,然后利用 https://github.com/my/project/blob/<faked_commit> 这种 URL 发布任意提交。
目前大部分恶意文件都已被清理,但仍有新的在产生,建议大家使用官方项目存储库中的软件,注意那些恶意仿冒域名的仓库或分支 / 克隆,并使用 GPG 签署每个提交。