RedHatInsights/javascript-clients這段酬載一口氣發布了 32 個被植入木馬的套件版本,全都掛在 @redhat-cloud-services 這個 Red Hat 官方的 npm 範圍下,每個套件都帶有「Miasma: The Spreading Blight」(瘴氣:蔓延的枯萎病)這個攻擊標記 。由於這些套件是透過 Red Hat 合法的 CI/CD 管線與有效的 OIDC 發布流程產生,它們甚至帶有真實的 SLSA 來源驗證簽名——這意味著標準的安全檢查會將它們標記為已驗證
。
這些惡意套件平均每週下載量約 80,000 次 。任何開發者只要執行
npm installpreinstall(安裝前)生命週期鉤子觸發 。
這個酬載會從 AWS、Azure、GCP、GitHub、HashiCorp Vault、Kubernetes 配置、SSH 金鑰及本機開發環境中收割機密資訊 。接著,它會利用這些偷來的機密,將惡意程式碼注入受害者有權限存取的其他專案中,把每一台被攻陷的開發者電腦和 CI/CD 管線變成新的散播節點
。
這個蠕蟲最令人不安的行為,不只是盜取機密,而是它對 AI 編碼工具的利用。Miasma 的變種會植入針對 Claude Code、Cursor、Gemini CLI 和 GitHub Copilot 的惡意規則檔案。當開發者將遭感染的儲存庫複製(clone)到自己的整合開發環境(IDE)並打開時,這些檔案便會自動觸發執行 。換句話說,光是「閱讀程式碼」——甚至不需要安裝任何套件——就可能觸發惡意行為。
2026 年 6 月 5 日,蠕蟲蔓延到了微軟。一個標題為「Switched DataConverter to OrchestrationContext [skip ci]」的惡意提交,被推送到 Azure/durabletask 儲存庫。其提交時間被偽造成 2020 年 3 月 9 日,意圖規避審查 。這個提交成了灘頭堡。從那裡開始,蠕蟲擴散到了微軟旗下四個 GitHub 組織的 73 個儲存庫:Azure、Azure-Samples、Microsoft 和 MicrosoftDocs
。受影響的專案包含核心基礎設施,如
azure-functions-host 以及跨越 .NET、Go、Java、JavaScript 等語言的 Durable Task 系列函式庫 。
要理解 Miasma,必須先了解 TeamPCP 為何決定將他們的武器開源。TeamPCP 在 2025 年至 2026 年初,一直致力於打磨一系列能夠自我繁殖的供應鏈蠕蟲。他們在 2026 年 5 月 11 日達到高峰,一口氣發布了 373 個惡意套件版本,橫跨 172 個 npm 和 PyPI 套件,總下載量超過 5.18 億次 。
接著,在 2026 年 5 月 12 日,TeamPCP 將完整的 Mini Shai-Hulud 原始碼以 MIT 授權的形式發布到 GitHub 上 。同時,他們還在 BreachForums 論壇上宣布了一場競賽,懸賞 1,000 美元的門羅幣(Monero,一種隱私幣)給利用該框架發起最大規模供應鏈攻擊的人
。資訊再清楚不過:這套工具箱現在是公有財產了。
五天內,就有 npm 用戶推送了四個惡意套件,其中包含一個近乎一模一樣的 Shai-Hulud 蠕蟲複製品。OX Security 分析後發現,該複製品幾乎「沒有任何改動」,只有攻擊者自己的命令與控制端點和私鑰不同 。供應鏈攻擊的工業化開始了,而防守方還渾然不覺。
在開源後的第十七天,Miasma 襲擊了 Red Hat。這個惡意軟體是 Mini Shai-Hulud 的結構性變種,只是將《沙丘》主題改成了希臘神話風格的命名 。但其核心戰術——
preinstall 腳本執行、混淆的 JavaScript 酬載、憑證收割與 CI/CD 自我散播——幾乎完全相同 。
然而,資安研究人員無法斷定 Miasma 就是 TeamPCP 所為。雲端安全聯盟(Cloud Security Alliance)明確指出:「無法排除模仿者使用同樣公開的程式碼庫發動攻擊的可能性」。Palo Alto Networks 的 Unit 42 也強調,「由於原始碼已公開,任何有能力的攻擊者都能複製相同的攻擊,因此歸因仍然不確定」
。這種模糊性並非註腳,而是開源策略刻意打造的結果,目的是讓生態系陷入混亂,癱瘓防禦方的歸因能力
。
開源框架不僅催生了 Miasma,還引發了一波立即的模仿行動。2026 年 6 月 3 日,名為 Phantom Gyp 的新變種出現,擴散到另外 57 個 npm 套件,包括 @vapi-ai/server-sdk 和 ai-sdk-ollama 。
這個變種使用了一個名為 binding.gyp 的武器化檔案,在套件安裝期間執行惡意程式碼,藉此繞過已被嚴密監控的 postinstall 執行路徑 。OpenSourceMalware 研究人員確認,這是第一個「在野外」(in-the-wild)被證實使用 TeamPCP 框架的行動,儘管 TeamPCP 並未對外承認
。
到了 6 月 8 日,SANS 網路風暴中心(SANS Internet Storm Center)報告指出,越來越多的攻擊者正在使用開源的 Mini Shai-Hulud 框架發動各自的攻擊 。惡意軟體甚至跨出了 npm 生態系:研究人員發現了一個 Ruby 語言的變種,看起來像是經過大型語言模型(LLM)翻譯——雖是個粗糙但功能正常的移植版本
。從 npm 到多生態系的快速變異,凸顯了攻擊面的急劇擴張。
面對 Miasma,各方的回應異常迅速且公開。GitHub 的反應立竿見影:2026 年 6 月 5 日,平台在偵測到攻擊約 105 分鐘內,就停用了超過 70 個微軟持有的儲存庫 。幾天內,所有儲存庫都恢復上線並確認為安全。
微軟的威脅情報團隊於 6 月 2 日發布了詳細的技術分析報告 。微軟甚至採取極不尋常的步驟,對外表示刪除自家 73 個儲存庫的原因是擔心它們散布「潛在的惡意內容」
。連平台擁有者都無法倖免於供應鏈蠕蟲帶來的下游衝擊。
紅帽則在 6 月 1 日發布了安全公告 RHSB-2026-006,確認遭到入侵,但強調此次事件僅限於內部開發工具,對 Red Hat Enterprise Linux 或 OpenShift 產品沒有影響 ,並已撤銷所有受影響的 npm 套件版本。
英國國家網路安全中心(NCSC) 更將此事件升級為更廣泛的政策推動。2026 年 6 月 4 日,NCSC 發表部落格文章,明確敦促企業審查其開源依賴項,以減少遭受供應鏈攻擊的風險 。6 月 9 日,NCSC 發布了更新的《Cyber Essentials 供應鏈策略手冊》,呼籲英國公司將 Cyber Essentials 認證作為供應商的標準要求
。其指引聚焦於三大方向:可視性(審查套件更新、找出非預期依賴項並維護軟體物料清單)、評估(評估供應商的安全實踐),以及行動(將供應鏈安全提升至董事會層級的優先事項)
。
Miasma 攻擊或許不是史上規模最大或最精巧的供應鏈攻擊,但它很可能是我們理解未來網路威脅最重要的教材。
首先,開源攻擊框架已徹底武器化了生態系。 TeamPCP 的開源策略是一場精心策劃的布局:武裝一群模仿者、製造歸因混亂,並迫使防禦者面對無數獨立攻擊者使用相同戰術手冊的局面 。Miasma 的歸因至今仍有不確定性,而且這正是攻擊者想要的
。
其次,npm 的 preinstall 鉤子是一個系統性漏洞。 攻擊反覆利用這個設計用於合法建置腳本的功能。而 Phantom Gyp 變種利用 binding.gyp 注入,更證明了攻擊者正在積極尋找新的生命週期來劫持 。對安裝前腳本實施更嚴格的註冊表層級限制,已是刻不容緩的議題。
第三,AI 編碼助理已成為新的攻擊執行面。 當 Miasma 透過惡意規則檔案將 Claude Code、Cursor、Copilot 等工具變成酬載的傳遞機制時,開發者只要打開專案就可能中招。隨著 AI 輔助開發成為預設工作流程,這個攻擊向量只會持續擴大 。
第四,CI/CD 管線已成最高價值的目標。 蠕蟲能從 GitHub Actions 執行器記憶體中提取 OIDC 權杖,並產生帶有真實 SLSA 來源證明的惡意套件 。這意味著標準的加密驗證——供應鏈完整性的黃金標準——已經可以被繞過。保護 CI/CD 管線免於機密暴露不再是可選的,而是必需的。
最後,政府力量已介入開源依賴管理領域。 NCSC 的策略手冊不僅是建議,而是直接呼籲企業將供應鏈安全嵌入採購流程。任何仍將依賴項審查視為一次性稽核,而非持續性流程的組織,其安全防護觀念都還停留在「前 Miasma 時代」。
Comments
0 comments