作者 | 琰琰
编辑 | 青暮
在比特币的带动下,加密货币市值一路高涨,在本月初甚至突破了2万美元,以太坊相比去年也涨了190%。然而伴随着虚拟货币的持续走高,黑客们的挖矿手段也更加猖獗。
昨天,一篇题为“Crypto miners are killing free CI”的博文在Reddit上火了,网友评论超过了500多条,这篇文章主要讲述黑客为了挖矿采取的新型攻击手段。其中一位网友愤怒的说,挖矿简直是我们社会的毒瘤!
还是一位网友说,“我在两个小时前刚禁止一个正在挖xmrig的矿工。要知道在足够的算力下开采1美元的Monero,需要花费我们50美元!”
那么,这种新的攻击方式是什么呢?
原来黑客们盯上了被广泛应用于Github平台的CI产品。
CI,也就是持续集成(Continuous integration),每一位开发人员都需要通过集成服务来自动化建构和测试他们的代码。Travis CI 是目前最主流的持续集成产品,它主要绑定在Github项目上,只要有新代码被编写,Travis CI 就能自动抓取并提供运行环境,完成建构后还能部署到服务器。
然而,这些开发者必备的CI产品却成了黑客们用来挖WebDollars的利器。Layer的联合创始人兼首席执行官Colin在博文中说,通过Github平台和Headless browser ,这些黑客们已经制造了大量成功的案例。
受此影响,去年9月,Github已将CI 产品的免费试用时长降低到了400min;TravisCI、Shippable等CI提供商也针对免费版增加了更多限制。
1
CI 集成平台攻击
“testronan”是一个热门项目,几乎每小时都会有人向GitHub存储库“testronan/MyFirstRepository”提交代码。通常情况下,为了确保提交的贡献能获得较好的测试结果,该存储库会包含五种不同的CI 配置:TravisCI、CircleCI、GitHub Actions、Wercker和LayerCI。
那么,矿工程序是如何被植入到这些CI产品中的呢?
以运行shell脚本为例,在收到执行命令后,CI会将复杂的NodeJS脚本与一些看似随机的数字结合起来,如图:
其中,MyFirstRepository Flask与Flask或Web服务器无关,它主要负责托管加密货币的挖掘脚本,这些脚本会将Web Dollars发送到匿名地址。这些数字对应于WebDollar的NodeJS的安装选项。
也就是说,存储库不会直接攻击GitHub,而是利用了GitHub操作的“cron”特性,每小时创建一个新的提交,并在其他四个CI 上挖掘Web Dollars。
对于黑客而言,网页挖矿代码更简单,可在几分钟内生成交易钱包,而且相比于比特币和和以太坊,它支持离线解决方案,允许用户完全匿名。交易速度在每个区块内可40秒内建成,完美地避免了网络拥塞。
此外,WebDollar 的价格已经达到了0.0005美元,如果按存储库每月77美元的收入来算,这是一笔可观的收入,重点是它的成本只需要一个可联网的笔记本电脑。
2
Headless Browser 攻击
除此之外,作者还发现了黑客一种更为隐秘的挖矿方式。例如“vippro99”项目,它对以上操作并不敏感。但在数十个存储库中,它的浏览器自动化遭到了攻击。
Nodejs Monney存储库就是其中之一。它包含了各种脚本,可以通过Google开发的Puppeter项目来启动Chrome实例。简单来说,Puppeteer是一个Node库,它使用了 DevTools协议,提供了强大的API来控制 headless 的Chrome或者Chromium。当然,也可以设置为控制完整的(非headless模式)的Chrome或者Chromium。开发者们通常用它来爬虫、创建自动化测试环境、测试浏览器的Extensions等。
对于黑客来说,直接在CI中挖掘加密货币可能容易被发现,比如使用可执行内容分析进行检测,但是浏览器自动化是CI中常见的工作负载,因此更难以察觉。
以下是在GitHub平台发现的一个简单的基于浏览器的Monero矿工。它正在攻击JFrog开发的Shippable CI。
“vippro99”项目在越南,按照Monero当前的价格,以及Shippable上一个实例每月2.5美元的价格来算,黑客们维护60个并发实例就可以获得一份相当于该国全职员工的薪水。
3
能否彻底根除?
市值仅次于比特币的第二大加密货币以太坊提出了一种新的应对方案。
前段时间,以太坊创始人Vitalik Buterin宣布将禁止基于计算机挖矿赚取以太坊的方式。也就是说,以太坊将从原来的工作量证明(PoW)机制转向股权证明(PoS)。
工作量证明是一个挖矿的过程,黑客们通过强大的计算机或者挖矿设备来解决复杂的数学难题,一旦成功地对各种交易进行了计算,已验证的交易将被存储到分布式账本或者新区块中,并产生奖励。
与它不同的是,股权证明要求用户拥有一定数量的加密货币。新区块的创造者是由一种伪随机的方式选择的,取决于用户拥有的财富,也被成为“股权”。在股权证明机制中,区块的产生被成为“伪造”或者“创造”,而不是通过挖矿。
不过,我们知道仅通过“工作证明”一项还远不能杜绝这一现象,除了这种常规因素外,还有许多其他领域的外部因素产,比如全球GPU短缺,对CI等计算平台免费层的攻击等。此外,只要是虚拟货币有利可图且无法追踪攻击路径,黑客们的攻击就会持续存在且变得更加复杂。
原文链接:
https://layerci.com/blog/crypto-miners-are-killing-free-ci/