關閉選單
Shai Hulud npm 蠕蟲病毒影響供應鏈攻擊中超過 26,000 個程式碼庫
蠕蟲病毒「第二次降臨」:攻擊規模與時機的變化

Shai Hulud npm 蠕蟲病毒(註)捲土重來,來自 Aikido Security 的安全研究員 Charlie Eriksen 今天凌晨(歐洲中部時間凌晨 5:10)發現了新一輪攻擊,短短幾個小時內,受感染的代碼項目數量就激增至 19,000 多個,比上一次攻擊增加了一百倍。 該蠕蟲病毒最早由 Hackread.com於 2025 年 9 月報道,於 2025 年 11 月 24 日星期一再次出現,攻擊強度顯著增強。值得注意的是,這次攻擊恰好發生在 npm 12 月 9 日撤銷舊版經典存取權杖的最後期限之前。 這次攻擊始於 go-template 和 AsyncAPI 的 36 個軟體包,隨後 PostHog 和 Postman 的軟體包也迅速遭到攻擊。在第一批被入侵的 60 多個軟體包中,包括 Zapier 和 ENS 平台等服務的主要工具。具體受影響的軟體包包括@zapier/zapier-sdk, zapier-platform-core, @ensdomains/ensjs, ethereum-ens和typeorm-orbit。 新版 Shai Hulud 速度更快,也更危險,因為攻擊者從之前的嘗試中吸取了教訓。他們簡化了發送竊取資料的流程,「繞過了webhook 瓶頸(註),現在直接將憑證上傳到公共 GitHub 程式碼庫」。 就在研究人員從 VSCode Marketplace上取下Prettier 程式碼格式化程式擴充的假版本之後不久,出現了最新的威脅,這個假版本曾在另一次針對開發者的攻擊中傳播了 Anivia Stealer。 這表明開發者始終是網路犯罪分子的主要目標,為了應對 Shai Hulud 威脅,他們必須立即卸載受感染的軟體包,輪換所有憑證(GitHub、npm、雲端平台和 CI/CD 金鑰),審核依賴項,檢查 GitHub 上是否存在描述為「Sha1-Hulud:第二次降臨」的可疑倉庫,停用 CI 中的 npm 安裝後腳本,並對所有帳戶強制執行因素 (MFA)。

註:

Shai Hulud 的惡意傳播與竊密機制解析

Shai Hulud 蠕蟲的設計利用了開源生態系統中維護者帳戶的信任機制,形成一種自動傳播的供應鏈攻擊模式。其核心機制是自我複製。攻擊者通常透過目標式網路釣魚活動來竊取開發者的 npm 或 GitHub 憑證,並利用這些權限上傳惡意版本的套件。

一旦受感染的 npm 套件被開發人員安裝,惡意程式碼(通常植入在 postinstall 腳本中)便會啟動,掃描受害者環境以竊取敏感資料,包括 npm 權杖、GitHub 個人存取權杖、SSH 金鑰以及 AWS、GCP、Azure 等雲端供應商的 API 密鑰。新版蠕蟲在資料外洩環節進行了優化,不再依賴容易被關閉的 Webhook,而是直接將竊取的憑證和密鑰上傳至公開的 GitHub 儲存庫,加速了資料的洩露速度,並讓防禦變得更加困難。

透過竊取到的 npm 權杖,蠕蟲能以受感染開發者的身份認證登入 npm 註冊表,並自動將惡意程式碼注入該開發者擁有的其他套件中,然後發佈新版本,從而實現指數級的自我傳播,這正是其被稱為「蠕蟲」的危險特徵。

 

供應鏈攻擊下開發者應立即採取的關鍵防護措施

這次大規模攻擊再次證明,開發者是軟體供應鏈中極為脆弱的一環。為減輕此類惡意蠕蟲帶來的風險,開發者社群必須立即採取多層次的防護措施。除了微軟安全研究員提出的緊急應對措施外,強化身分驗證和程式碼庫管理是長期防禦的基礎。

實施「強制多因素驗證」(MFA)是防範憑證竊取最有效的手段。同時,開發者應定期對專案依賴項進行嚴格審核,利用鎖定文件(如 package-lock.json)來限制非預期版本的引入,並將 npm 套件的版本鎖定在已知安全的版本。此外,限制 CI/CD 流程中 npm 安裝後腳本的執行能力,並持續監控 GitHub 儲存庫中是否有異常的提交或新建的惡意命名儲存庫,對於及早發現並遏制供應鏈攻擊至關重要。


資料來源:https://hackread.com/shai-hulud-npm-worm-supply-chain-attack/
 
Shai Hulud npm 蠕蟲病毒於 2025 年 11 月再次大規模爆發,攻擊強度激增百倍,旨在竊取開發者憑證並自我複製。