Shai Hulud v2 惡意軟體
Shai-Hulud 供應鏈攻擊的第二波浪潮已蔓延至 Maven 生態系統,npm 註冊表中超過 830 個軟體包遭到入侵。研究人員發現 Maven Central 中的一個軟體包 org.mvnpm:posthog-node:4.18.1 包含與先前 npm 攻擊相同的惡意元件:載入器 setup_bun.js 和有效載荷 bun_environment.js。目前,這是已知唯一受影響的 Java 軟體包。
值得注意的是,該 Maven 套件並非由 PostHog 發布,而是透過自動化的 mvnpm 流程生成,該流程會將 npm 套件重新建置為 Maven 工件。 Maven Central 已確認所有鏡像副本已於 2025 年 11 月 25 日被清除,並且正在實施額外的保護措施,以防止受感染的 npm 組件被重新發布。
目錄
全球開發者影響與攻擊目標
最新一波攻擊的目標是全球開發者,旨在竊取敏感數據,例如:
- API金鑰
- 雲端憑證
- npm 和 GitHub 令牌
它還能以蠕蟲般的自我複製方式,進一步滲透供應鏈。這一版本的 Shai-Hulud 比九月的初始變種更加隱蔽、更具攻擊性和破壞性。攻擊者透過入侵 npm 維護者的帳戶,可以發布植入木馬的軟體包,這些軟體包會在開發者機器上植入後門,並自動掃描密鑰,將資訊竊取到 GitHub 程式碼庫中。
惡意軟體的運作方式:雙重工作流程與隱藏技術
該攻擊利用了兩種惡意工作流程:
- 自託管運行器註冊:允許在開啟 GitHub Discussion 時執行任意命令。
- 金鑰收集工作流程:有系統地收集憑證並將其推送到 GitHub。
- Shai-Hulud v2 的主要改進包括:
- 使用 Bun 執行階段來隱藏核心邏輯
- 感染上限從20包擴大到100包
- 在 GitHub 上使用隨機化的資料外洩倉庫來逃避偵測
到目前為止,已有超過 28,000 個儲存庫受到影響,這表明此次攻擊規模之大、手段之隱蔽令人震驚。
利用的漏洞和供應鏈機制
攻擊者利用了 GitHub Actions 工作流程中 CI 設定錯誤,特別是 pull_request_target 和 workflow_run 觸發器。一個配置錯誤的工作流程就可能將程式碼庫變成“零號病人”,導致惡意程式碼的快速傳播。
這次攻擊的目標是與 AsyncAPI、PostHog 和 Postman 相關的項目,延續了始於 2025 年 8 月 S1ngularity 攻擊的更廣泛攻擊活動,該攻擊影響了 npm 上的多個 Nx 套件。
後果:秘密洩漏與系統性風險
對該競選活動的分析顯示:
- 數百個 GitHub 存取權杖和來自 AWS、Google Cloud 和 Microsoft Azure 的雲端憑證被竊取。
- 超過 5000 個包含機密資訊的文件被上傳到 GitHub。
- 在 4,645 個儲存庫中識別出的 11,858 個獨特秘密中,截至 2025 年 11 月 24 日,有 2,298 個仍然有效並公開。
這表明,一個受感染的維護者可以引發連鎖反應,感染成千上萬個下游應用程式。
給開發者的建議
為降低風險,開發人員應:
- 輪換所有 API 金鑰、令牌和憑證
- 審核並移除受損依賴項
- 重新安裝乾淨的軟體包版本
- 透過最小權限存取、金鑰掃描和自動化策略執行來強化 CI/CD 環境。
Shai-Hulud強調,現代軟體供應鏈仍然高度脆弱。攻擊者不斷利用開源軟體發布、打包和部署方式中的漏洞,而且往往無需依賴零時差漏洞。最有效的防禦措施需要重新思考軟體的建構、分享和使用方式。