GitHub 惡意軟體活動:10,000 個倉庫散佈特洛伊木馬

10,000 個 GitHub 倉庫用於散佈特洛伊木馬

一位安全研究人員發現 GitHub 上有一個大規模的惡意軟體散佈活動,涉及約 10,000 個倉庫。這些倉庫不是 fork,而是現有專案的獨立克隆,旨在模仿合法軟體,欺騙使用者透過 README 中的 zip 檔案連結下載特洛伊木馬。

惡意軟體散佈模式

此活動採用精密的模式以繞過安全偵測並提升搜尋引擎結果的能見度。已辨識出的惡意倉庫特徵包括:

  • 克隆內容: 倉庫會複製合法專案的所有提交與貢獻者,以建立信任感並顯得已建立。
  • 頻繁提交覆寫: 攻擊者每隔數小時刪除並推送相同的提交。此提交通常只更新 README.md 檔案,加入指向惡意 zip 檔案的連結。
  • SEO 操控: 透過克隆新建或低流量的倉庫並將其加入熱門標籤,攻擊者確保這些偽造專案出現在搜尋引擎(如 Bing)與 GitHub 標籤搜尋結果的前列。
  • 一致命名: 許多惡意提交的標題為「Update README.md」。

惡意載荷組成

每個惡意 zip 檔案通常包含四個特定檔案:

  1. Application.cmdLauncher.cmd
  2. loader.exeluajit.exe(或其他可執行檔名稱)
  3. 隨機名稱的 .cso.txt 檔案
  4. lua51.dll

直接將檔案連結提交至 VirusTotal 可能會顯示零偵測,但上傳實際 zip 檔案則會顯示特洛伊木馬的存在。

偵測方法論

由於 GitHub API 每小時限制 5,000 次請求,研究人員使用 gharchive 下載 GitHub 事件檔案。偵測腳本篩選出在 24 小時內更新 1 到 24 次的倉庫,特別關注僅修改 README 且提交者為使用者而非機器人的情況。

此過程將五天內 1,600 萬次提交推送縮減至 40,000 個候選倉庫,最終找出 10,000 個符合精確惡意模式的倉庫。

技術分析與假設

潛在目標

惡意軟體分析顯示主要目的是加密貨幣盜竊。社群成員在 VirusTotal 的「Network Communication」日誌中指出,惡意軟體會發送 GET 請求取得 IP 資訊、POST 請求至 Polygon RPC 節點(drpc),以及 POST 請求至攻擊者的指揮控制伺服器。

迴避手法

研究人員推測,頻繁覆寫提交是繞過 GitHub 安全演算法的手段。透過維持偽造的貢獻者與提交歷史,攻擊者營造出合法性的假象,阻止使用者審核程式碼或驗證二進位檔案。

社群見解與反駁

技術使用者的討論指出,透過 GitHub 分發軟體的系統性漏洞包括:

「開源軟體因為原始碼公開就不會做壞事」的原則已不再成立…沒有人有時間檢查程式碼,更別說確保它與二進位檔相符。

其他使用者指出,這並非孤例,過去曾有「SmartLoader」與「StealC」等活動使用類似克隆手法散佈惡意軟體。亦有人指出,Bing 等搜尋引擎在首頁返回此類釣魚與錯字搶注結果的機率可能高於 Google。

目前狀態

在研究結果發表並分享倉庫清單後,GitHub 已開始刪除已確認的惡意倉庫。研究人員透過一個公開的 GitHub 倉庫「Git Malware Finder」提供了偵測腳本與完整受影響倉庫清單。

Sources