安全報告:黑客正在利用GitHub Actions挖礦
情況介紹
網絡安全研究人員的發現,GitHub Actions目前正被攻擊者濫用,黑客正在通過一種自動化的攻擊方式在GitHub的服務器上進行加密貨幣挖礦活動。
GitHub Actions是一個CI/CD解決方案,它可以輕松地設置周期性任務以自動化軟件工作流。
這里所描述的特定攻擊,指的是將惡意GitHub Actions代碼添加到那些從合法存儲庫派生的存儲庫中,并進一步創建一個Pull請求,以便原始存儲庫維護人員將代碼合并回來。
但是,這種攻擊活動并不需要合法項目的維護人員進行任何的操作,攻擊同樣可以成功。
研究人員還發現,惡意代碼會從GitLab加載一個錯誤命名的加密貨幣挖礦軟件npm.exe,然后使用攻擊者的加密貨幣錢包地址來執行挖礦活動。
在報告了相關事件之后,研究人員還發現了很多以同樣形式模仿進行的針對GitHub項目的攻擊活動。
Fork合法代碼,添加惡意代碼,然后將代碼合并回來
就在這周,據一位名叫Justin Perdok的荷蘭安全工程師稱,攻擊者已經選定好了使用GitHub Actions進行挖礦的GitHub項目庫了。
這些代碼庫會使用GitHub Actions來優化和實現CI/CD自動化和調度任務。
這種特殊的攻擊利用的是GitHub自己的基礎設施,并在GitHub的服務器上傳播惡意軟件和加密貨幣挖礦軟件。這種攻擊方式還會涉及攻擊者Fork的啟用了GitHub Actions的合法代碼庫。然后,攻擊者會在Fork的代碼庫版本中注入惡意代碼,并向原始代碼庫的維護人員提交一個Pull請求以將代碼合并回來。
根據Perdok分享的一個屏幕截圖顯示,目前至少有95個代碼庫將成為攻擊者的目標:
但令人意外的是,整個攻擊過程并不需要原始項目的維護人員去批準攻擊者發起的惡意Pull請求。
Perdok表示,攻擊者只需要提交Pull請求就足以觸發攻擊了。
對于GitHub項目來說尤其如此,這些項目具有自動化的工作流設置,可以通過GitHub Actions驗證傳入的Pull請求。
一旦為原始項目創建了Pull請求,GitHub的系統就會執行攻擊者的代碼,而惡意代碼將指示GitHub服務器檢索并運行加密貨幣挖掘程序。
從GitLab下載的加密貨幣挖礦軟件npm.exe
惡意Pull請求會調用自動化代碼并指示GiHub服務器下載一個托管在GitLab上的加密貨幣挖掘程序,而這個文件就是被錯誤標記的npm.exe。
但是這個npm.exe文件與官方NodeJS安裝程序或節點包管理器(npm)無關,因為它是一個著名的加密貨幣挖掘程序。
根據研究人員的分析,攻擊者啟動npm.exe文件之后,會將他們的錢包地址以參數的形式傳遞進去:
- npm.exe --algorithm argon2id_chukwa2
- --pool turtlecoin.herominers.com:10380
- --wallet TRTLv3ZvhUDDzXp9RGSVKXcMvrPyV5yCpHxkDN2JRErv43xyNe5bHBaFHUogYVc58H1Td7vodta2fa43Au59Bp9qMNVrfaNwjWP
- --password xo
在研究人員運行的測試中,加密貨幣挖掘程序會連接到turtlecoin.herominers.com礦池并開始加密貨幣挖礦:
還有使用XMRig的模仿攻擊活動
在發布了相關研究報告之后,研究人員又發現了大量模仿此形式的攻擊活動。在這些攻擊活動中,攻擊者同樣會使用惡意Pull請求并利用GitHub Actions完成加密貨幣挖礦攻擊。
研究人員還發現,有的攻擊活動還會從XMRig的官方GitHub代碼庫中引入了開源XMRig 加密貨幣挖礦程序。
模仿攻擊中發現的錢包地址如下:
- 49eqpX3Sn2d5cfJTevgZLGZGQmcdE37QE4TMJDmDcJeCG8DUgkbS5znSsU35Pk2HC1Lt99EnSiP9g74XpUHzTgxw23n5CkB
下面給出的是攻擊者的ci.yml文件中定義的礦池服務器列表:
后話
GitHub方面也表示,他們已經了解到了事件的詳情,并且正在著手調查和解決這一問題。
利用GitHub基礎設施的攻擊已經不是第一次出現了,而且利用GitHub Actions的攻擊活動也日趨頻繁。
就在去年,研究人員專門報告稱有攻擊者利用GitHub的基礎設施來托管蠕蟲僵尸網絡Gitpaste-12。但是,跟Gitpaste-12或Octopus Scanner惡意軟件(針對的是存在漏洞的項目或設備)不同的是,這種特定的攻擊似乎只會利用GitHub的服務器進行加密貨幣挖礦任務。