写点什么

加密货币挖矿正在杀死 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:134091

评论

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

DevSecOps安全检查清单

啸天

安全 DevSecOps 应用安全

即构小程序直播组件集成教程

ZEGO即构

解读容器的 2020:寻找云原生的下一站

阿里巴巴云原生

Docker 云计算 Serverless 容器 云原生

矿机挖矿APP系统模式开发平台

v16629866266

特斯拉自建ERP的背后

明道云

Soul 网关源码阅读(四)Dubbo请求概览

Java 源码阅读 网关

自动量化搬砖套利交易机器人系统软件APP开发

系统开发

“反垄断”来袭,对产业区块链有什么启发

CECBC

市场垄断

Soul 网关源码阅读(一) 概览

Java 源码阅读 网关

Soul 网关源码阅读(二)代码初步运行

Java 源码阅读 网关

从CPU到XPU进化,英特尔对业界放了什么大招?

E科讯

生产者与消费者模式,数组阻塞队列(ArrayBlockingQueue)

李尚智

Java 学习 架构 并发编程

敏捷里为何倡导固定迭代周期?

万事ONES

敏捷开发 研发管理 迭代

物流快递公司APP架构设计

jorden wang

iOS性能优化 — 五、App启动优化

iOSer

ios 性能优化 性能分析

面试阿里Java岗,技术总监真正关心的核心能力是什么?

Java架构追梦

Java 编程 架构

一文带你探究Sentinel的独特初始化

华为云开发者联盟

redis sentinel 框架

Volcano架构设计与原理介绍

华为云原生团队

大数据 AI 云原生 高性能 批量计算

架构师训练营W13作业

Geek_f06ede

为什么我认为 Deno 是一个迈向错误方向的 JavaScript 运行时?

hylerrix

typescript rust nodejs deno V8

初识ClickHouse——安装与入门

Simon

Clickhouse

在数据分析、挖掘方面,有哪些ETL工具值得推荐?

敏捷调度TASKCTL

大数据 kettle 海豚调度 批量任务 ETL

智能量化对冲搬砖套利交易软件APP系统开发

系统开发

一文解析DDD中台和微服务设计

欧创新

中台 微服务 领域驱动设计 DDD

当音乐学博士搞起编程...

程序猿DD

Spring Frame

用AI「驯服」人类幼崽,手头有娃的可以试试

博文视点Broadview

人工智能 联邦学习 强化学习 集成学习 技术宅

区块链十年与传统金融的变化

CECBC

区块链 金融

不同公司产品经理岗位对比

LouisN

区块链科普系列:区块链是什么?

CECBC

区块链

「产品经理训练营」第一章作业

Sòrγy_じò ぴé

产品经理训练营

Soul 网关源码阅读(三)请求处理概览

Java 源码阅读 网关

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