返回資訊
AI 趨勢入門

AI coding agent 首次成為供應鏈惡意程式的再觸發器,Mini Shai-Hulud 把開發工具鏈變成感染鏈

2026年5月1日
易賺Ai團隊
11 分鐘閱讀
#AI新聞#開發工具#資安#供應鏈攻擊#Claude Code
AI coding agent 首次成為供應鏈惡意程式的再觸發器,Mini Shai-Hulud 把開發工具鏈變成感染鏈

四月底到五月初這波被研究圈命名為 Mini Shai-Hulud 的事件,真正讓人不安的地方,不只是惡意 npm 或 PyPI 套件又一次混進開發流程,而是攻擊者已經開始理解開發者工作習慣正在改變。當愈來愈多團隊把 AI coding agent 放進日常流程,像 Claude Code 這類工具的設定檔、工作階段鉤子與 VS Code 的自動任務,就不再只是「方便開發」的小配件,而會變成新的持久化入口。

這也是為什麼這次事件值得單獨寫成一篇 AI 新聞。它不是單純的套件污染,而是第一次有公開研究把 AI coding agent 的配置檔,明確放進供應鏈惡意程式的傳播鏈條裡。換句話說,攻擊者不是只想偷一次祕密,而是想把開發者未來每一次打開專案、每一次載入工具、每一次讓代理接手工作時的自動化流程,都改寫成自己的執行面。

這次事件到底發生了什麼

Wiz 在 4 月 29 日披露,數個 SAP 生態相關的 npm 套件被植入惡意 preinstall 腳本,會在安裝時下載 Bun、執行混淆過的大型 JavaScript 載荷,進一步掃描 GitHub、npm、雲端金鑰、Kubernetes、Vault 與 CI/CD 環境中的敏感資訊。接著 Socket 又在 4 月 30 日指出,這波同系攻擊已經延伸到 PyPI,連深度學習框架 lightning 的 2.6.2 與 2.6.3 版本都被污染,而且不必等到執行特定命令,模組一被 import 就可能啟動惡意鏈條。

如果只看到這裡,你可能會覺得這仍然屬於過去幾年常見的供應鏈攻擊套路:竊取憑證、外傳資料、嘗試橫向移動、再感染更多套件。真正不同的地方,在於這次樣本開始直接往受害者 GitHub 儲存庫中植入 .claude/settings.json.claude/setup.mjs.claude/execution.js.vscode/tasks.json.vscode/setup.mjs。這些檔案不是隨機挑的,而是瞄準現代開發者常用的 AI 與編輯器工作流。

研究人員描述得很直白:惡意程式會利用被偷到的 GitHub 權限,把自己複製進儲存庫,再把 VS Code 的 runOn: folderOpen 任務與 Claude Code 的 SessionStart hook 變成惡意載入器。也就是說,下一個打開專案的人,哪怕只是想請代理整理程式碼、補測試、或看一下某段 prompt 流程,都可能在完全不知道的情況下,把第二波載荷重新跑起來。

為什麼這是 AI 開發工具的一個分水嶺

過去講 AI 開發工具風險,多半在談模型會不會產生錯誤建議、會不會出現 hallucination、會不會因為過度信任代理而把錯誤程式碼送進 production。那是「能力風險」。Mini Shai-Hulud 提醒市場,現在還有另一種更貼近基礎設施的風險,叫做「工具鏈風險」。

一旦 AI coding agent 變成開發者每天都會叫用的介面,攻擊者自然會開始研究怎麼把代理的啟動方式、設定方式與自動化勾點,包進惡意程式的後續傳播路徑。因為代理的價值,本來就在於它能長時間執行任務、讀寫多個檔案、呼叫工具、繞過人工一個步驟一個步驟操作的摩擦。對防守方來說,這些能力代表效率;對攻擊者來說,這些能力也代表更好的隱蔽性與更多的執行時機。

這就是為什麼我們不能把這次事件理解成「Claude Code 被攻擊」或「VS Code 被攻擊」。更精確的說法是,攻擊者已經開始把 AI 開發工作流視為可利用的自動化表面。任何會在專案開啟時自動執行、在工作階段開始時自動掛鉤、或預設能接觸本地憑證與遠端儲存庫的工具,都會被拉進同一個威脅模型。

攻擊鏈條最值得注意的三件事

第一,它不只偷 token,還會試著驗證哪些憑證真的活著。Socket 的分析指出,惡意程式會把發現的 GitHub 與 npm 憑證拿去做 API 驗證,這表示攻擊者不是盲目撈資料,而是把可立即利用的帳密挑出來,直接進入下一段擴散流程。

第二,它開始把「儲存庫污染」當成主要策略,而不是附帶結果。Wiz 與 Socket 都指出,這波樣本會把固定檔案寫進多個 branch,甚至偽裝成由 Claude 所做出的提交,讓開發者在 GitHub 介面上第一眼看起來不像是傳統惡意操作。這種做法很危險,因為它不是單次爆發,而是為下一次開發、下一次代理執行、下一次 pull request 檢視預先埋雷。

第三,這波攻擊跨語言、跨生態、跨執行面。npm、PyPI、Packagist 都出現相似模式,代表它瞄準的不是單一社群,而是整個現代軟體供應鏈。只要一個組織同時有 JavaScript、Python、容器映像、GitHub Actions 與 AI 編碼工具,風險就會被疊加,而不是互相抵消。

對企業來說,這件事真正改寫了什麼

企業這一年大量導入 llm 與代理工具時,常把治理焦點放在模型資料外洩、權限管理、審批流程與 API 成本控制,這些都重要,但 Mini Shai-Hulud 把另一件事講得非常清楚:你不能只治理模型,還要治理模型所在的開發殼層。

如果企業允許工程團隊使用 AI coding agent,資安部門就不能只盤點「用了哪家模型」,而要盤點「代理透過哪些設定檔執行」、「哪一些專案允許 folder-open 任務」、「哪些 hook 可以在本地與 CI 上自動跑」、「哪些 branch 與 bot 身分能直接寫回 repo」。否則企業會以為自己在管理生成式 AI,實際上卻把最危險的部分留在編輯器設定、dotfile 與工作站層。

這也是為什麼這波事件的啟示不在某一家工具,而在開發治理模型。未來企業對代理的管理,會愈來愈像管理 EDR、CI runners 與身分系統,而不是像管理一個單純的聊天機器人。誰能自動執行?何時執行?可觸及哪些憑證?產生的變更如何被審核?這些問題都會從開發效率議題,轉成真正的董事會級風險問題。

開發團隊現在該怎麼做

如果你正在用 AI coding agent,第一步不是恐慌停用,而是把信任邊界講清楚。檢查儲存庫裡是否突然多出 .claude.vscode、不明 setup.mjs、可疑 postinstallpreinstall 腳本,並且回頭審視最近幾天所有非預期的 branch、bot 身分提交與工作流變更。只要曾安裝受污染版本,或曾在可疑環境 import 被污染模組,就應該假設可接觸到的憑證已暴露並立即輪替。

第二步是把「專案開啟即執行」當成高風險能力管理,而不是便利功能。很多團隊以前覺得自動任務可以節省 setup 時間,現在看來,這些功能如果沒有嚴格 code review 與預設關閉,就很容易變成社交工程與供應鏈攻擊的最佳落點。

第三步是把 AI 代理納入軟體供應鏈檢測,而不是獨立掛在另一套政策外。代理用到的設定檔、plugins、hooks、工作區任務與本地自動化腳本,都應該進入同一套掃描、審查與基線管理機制。只要這些檔案還被團隊當成「只是本地小設定」,未來就會持續成為最容易被忽略的入口。

這不只是一次資安事件,而是開發典範切換的警報

Mini Shai-Hulud 的重要性,在於它幫整個產業提早看見一個趨勢:AI coding agent 不再只是提高生產力的外掛,而是會被攻擊者當成軟體供應鏈的一部分來研究、模仿與濫用。當代理真的能讀 repo、改檔案、跑指令、開 PR、長時間持續工作時,防守方就必須承認,它也已經具備成為攻擊放大器的條件。

接下來一年,市場對 AI 開發工具的競爭,不會只比誰的代理更會寫程式,也會比誰能把 hook、憑證、審批、可見性與 repo 邊界一起做成可管理的安全產品。誰先把這層做好,誰才有資格讓企業放心把更多工作真的交給代理。

從這個角度看,五月初這則新聞的核心不是「又一個套件出事」,而是開發工具世界第一次被清楚提醒:當 AI 代理走進日常工作流,供應鏈攻擊也會跟著重新設計自己。