google wifi 翻墙
给PC植入挖矿木马,已经无法满足黑客日益增长的算力需求,如果能用上GitHub的服务器,还不花钱,那当然是极好的。
而且整个过程可能比侵入PC还容易,甚至都不需要程序员上当受骗。只需提交Pull Request(PR),即使项目管理者没有批准,恶意挖矿代码依然能够执行。
原理也很简单,利用GitHub Action的自动执行工作流功能,轻松将挖矿程序运行在GitHub的服务器上。
早在去年11月,就已经有人发现黑客这种行为。更可怕的是,半年过去了,这种现象依然没得到有效制止。
GitHub心里苦啊,虽然可以封禁违规账号,但黑客们玩起了“游击战术”,不断更换马甲号逃避“追捕”,让官方疲于奔命。
去年11月,Tib发现,自己在一个没有参加的repo上收到了PR请求。而且在14个小时内就收到了7个,全是来自一个“y4ndexhater1”的用户,没有任何描述内容。
打开项目主页发现,内容是Perl项目的github action、circle ci、travis-ci示例代码集合,整个README文档一团糟,根本不像一个正经的开源项目。
经过那位可疑用户的操作,Tib所有的action都被删除,在工作流里被加入了一个ci.yml文件,内容如下:
当Tib看到eval “$(echo “YXB0IHVwZGF0ZSAt这一行内容后,立刻从沙发上跳了起来,他意识到事情的严重性:有人在入侵他的GitHub个人资料!
要执行这一大胆而又作死的任务google wifi 翻墙,防止“试试就逝世”,Tib首先断开了电脑的网络链接,并选择在Docker容器中运行。
当时XMRig的最新版恰好是6.8.1,和上面的版本参数符合。不过用SHA256检测后发现,这个prog并不完全是XMRig,Tib预测它可能是一个修改版。
在这个攻击过程中,会派生一个合法的repo,负责将恶意的GitHub Action添加到原始代码。然后,黑客再向原始repo提交一个PR,将代码合并回原始repo。
下载的挖矿程序会伪装成prog或者gcc编译器,通过提交PR在项目执行自动化工作流。此时服务器将运行伪装后的挖矿程序。
这些攻击者仅一次攻击就可以运行多达100个挖矿程序,从而给GitHub的服务器带来了巨大的计算量。
据Aqua估计,仅在三天的时间里,挖矿黑客就在GitHub上有超过2.33万次commit、在Docker Hub上5.8万次build,转化了大约3万个挖矿任务。
需要用到这个功能的话,可以设置成只允许本地Action或只允许Github官方及特定作者创建的Action。
将情况反馈给客服后,GitHub会对恶意账号进行封号和关闭相关Pull Request的操作。
这一次黑客挖的是乌龟币*(TurtleCoin)*,可使用CPU计算。按当前价格挖出四千多个币才值1美元。
大致估算单台运行一天只能获利几美分,而且黑客的挖矿程序通常只能在被发现之前运行几个小时。比如Docker Hub就把自动build的运行时间限制在2个小时。
不过蚊子再小也是肉,黑客通过寻找更多接受公开Action的仓库以及反复打开关闭Pull Request就能执行更多的挖矿程序。
正如Twitter用户Dave Walker所说的,如果你提供免费的计算资源,就要做好会被攻击和滥用的觉悟。挖矿有利可图的情况下这是不可避免的。
这一乱象不知何时才能结束,唯一的好消息可能就是,挖矿的黑客似乎只是针对GitHub提供的服务器资源,而不会破坏你的代码。
但是GitHub Action的漏洞不止这一个。还有方法能使黑客读写开发者的仓库,甚至可以读取加密的机密文件。