關閉選單
自我傳播的供應鏈攻擊影響了 187 個 npm 軟體包
報導摘要

安全研究人員發現,在持續的供應鏈攻擊中,至少有 187 個 npm 套件遭到入侵,並且帶有惡意的自傳播負載來感染其他套件。被稱為「Shai-Hulud」的協同蠕蟲式活動於昨天開始,首先攻擊的是@ctrl/tinycolor npm 包,該包每週下載量超過 200 萬次。受影響的軟體包包括由 CrowdStrike 的 npmjs 帳戶 crowdstrike-publisher發布的幾個軟體包

昨天,高級後端軟體工程師 Daniel Pereira向社群發出警報,稱全球最大的 JavaScript 註冊中心 npmjs.com 遭受了大規模軟體供應鏈攻擊。在過去 24小時內,佩雷拉一直 試圖透過更謹慎的管道引起 GitHub 的注意,討論正在進行的攻擊,因為“很多 repos 都成為了攻擊目標”,公開披露此次攻擊可能會使人們面臨風險。

這起攻擊顯示了軟體供應鏈的脆弱性,即使是廣受歡迎、下載量龐大的套件也可能成為惡意活動的傳播媒介。攻擊者利用開源生態系的信任關係,將惡意程式碼注入看似無害的組件中,然後這些組件會自動感染更多其他軟體包,形成一種惡性循環,其傳播速度和影響範圍都令人擔憂。


Shai-Hulud蠕蟲的運作機制

根據資安公司 Socket 和 Aikido 的分析,這場攻擊的機制遠比單純植入惡意軟體更為複雜。Shai-Hulud 蠕蟲的惡意負載會自動傳播,感染與受害者 npm 帳號相關聯的其他軟體套件。

攻擊者首先會入侵套件維護者的帳號,一旦成功,惡意腳本就會被注入到套件的package.json文件中,並在其中添加一個後門。這個後門會執行一個名為bundle.js的惡意腳本,其主要目的有二:

  1. 竊取敏感資訊: 惡意腳本會濫用一個名為 TruffleHog 的合法開源工具,但這裡它被用來掃描受感染主機上的API金鑰、雲端憑證以及其他機密資訊。這些被竊取的資料隨後會被傳送到一個預先設定的Webhook端點,供攻擊者利用。

  2. 自我傳播: 惡意腳本不僅竊取數據,還會自動修改其他由同一npm帳號發布的套件。它會在這些套件中注入相同的惡意負載,從而實現自動化、蠕蟲式的傳播。這正是為什麼短短數小時內,受影響的套件數量會從一個迅速擴散到超過187個的原因。

這種攻擊手法尤其危險,因為它利用了開發者和使用者對開源社群的信任,使其難以防範。單純地檢查原始碼可能不足以發現隱藏的惡意行為,因為惡意負載的觸發方式可能很隱蔽。


供應鏈攻擊的嚴重性與影響

此次攻擊再次凸顯了現代軟體供應鏈的脆弱性。當今的軟體開發高度依賴第三方開源套件,一個小小的惡意程式碼片段,一旦成功注入,就能像病毒一樣感染數百甚至數千個下游專案,其影響規模將是災難性的。

儘管受影響的軟體包中包括了由資安公司 CrowdStrike 發布的套件,但該公司已發布聲明,表示其核心平台和客戶資料並未受到影響。這證明,即使是資安巨頭也無法完全免疫於此類供應鏈攻擊的風險,這也說明了威脅的普遍性和嚴重性。

Shai-Hulud 並非個案。最近還發生了其他高調的npm供應鏈攻擊,例如「s1ngularity」攻擊和另一波針對流行套件的釣魚攻擊。這些事件共同描繪了一幅令人不安的圖景:開源生態系正成為惡意攻擊者的主要目標,對全球數位基礎設施構成系統性風險。


如何防範與應對

面對這類複雜的供應鏈攻擊,開發者和企業必須採取更為積極的防禦策略。

  1. 立即審核環境: 應立即對所有開發和生產環境進行審核,檢查是否存在受感染的套件,並將其替換為安全的版本。

  2. 輪替機密資料: 攻擊的重點在於竊取API金鑰和憑證。因此,所有與受影響套件相關的機密資料都應立即進行輪替,以防被利用。

  3. 鎖定依賴版本: 避免在專案中只依賴套件的最新版本。應使用package-lock.jsonyarn.lock等工具來鎖定依賴項到已驗證的、可信賴的特定版本。

  4. 採用供應鏈安全工具: 使用自動化工具來掃描和監控第三方套件的安全性,及時發現異常行為。

  5. 加強帳號安全: 對npm帳號啟用雙重認證(2FA),並使用強密碼,降低帳號被入侵的風險。


結論

Shai-Hulud 攻擊是一個嚴重的警訊,提醒我們在享受開源軟體便利性的同時,也必須正視其帶來的安全風險。這次事件再次證明,單純的信任在現代資安環境中是不夠的。開發者和企業需要將軟體供應鏈安全納入其核心策略,採用零信任原則,並建立全面的防禦機制。只有透過持續的警覺、主動的監控與快速的應對,我們才能有效保護我們的軟體資產,並確保數位世界的安全。


資料來源:https://www.bleepingcomputer.com/news/security/self-propagating-supply-chain-attack-hits-187-npm-packages/
解析代號為「Shai-Hulud」的自傳播npm供應鏈攻擊,了解此蠕蟲如何感染JavaScript套件、竊取敏感資料,並學習如何防範這類大規模資安威脅,保護您的開發環境與程式碼。