新聞

週下載量高達280萬的NPM套件「is」被駭客植入惡意程式碼

2025 / 07 / 28
編輯部
週下載量高達280萬的NPM套件「is」被駭客植入惡意程式碼
熱門NPM套件「is」遭受嚴重供應鏈攻擊,被植入後門惡意程式,讓攻擊者能完全控制被感染裝置。此事件起因於維護者帳號遭釣魚攻擊竊取,攻擊者隨後未經授權變更套件擁有者。由於這些變更在數小時內未被發現,許多下載新版本的開發人員可能已被入侵。

「is」套件是一個輕量級JavaScript工具庫,提供各種型別檢查和數值驗證功能。該套件在NPM索引上每週下載量超過280萬次,被廣泛應用於開發工具、測試庫、建置系統,以及作為後端和命令列介面專案中的基礎實用程式。

攻擊時程與影響範圍

2025年7月19日,該套件的主要維護者John Harband宣布,版本3.3.1至5.0.0含有惡意程式。這些受感染版本在被威脅行為者提交到npm後約6小時內就被移除,但在這段時間內已有大量開發者下載使用。

此事件是同一次NPM供應鏈攻擊的一部分,駭客使用假冒網域「npnjs[.]com」進行釣魚,竊取維護者憑證,然後發布植入惡意程式的熱門套件版本。這種攻擊手法顯示駭客已將目標從單一套件擴展至大規模供應鏈攻擊。

其他受影響套件

除了「is」以外,以下套件也在同一次攻擊中被植入惡意程式:
  • eslint-config-prettier (8.10.1, 9.1.1, 10.1.6, 10.1.7)
  • eslint-plugin-prettier (4.2.2, 4.2.3)
  • synckit (0.11.9)
  • @pkgr/core (0.2.8)
  • napi-postinstall (0.3.1)
  • got-fetch (5.1.11, 5.1.12)
美國資安業者Socket指出,「is」套件含有跨平台JavaScript惡意載入器,該載入器會開啟基於WebSocket的後門,讓駭客能夠遠端執行程式碼。惡意程式啟動後,會先透過Node的os模組收集主機名稱、作業系統及CPU詳細資訊,同時從process.env擷取所有環境變數。

接著,惡意程式會動態導入ws函式庫並建立WebSocket連線,將收集到的資料外洩。更危險的是,透過socket接收的每則訊息都會被直接作為JavaScript程式碼執行,讓攻擊者能立即取得互動式的遠端控制殼層。

整合Windows竊密工具

研究人員進一步分析了「eslint」和其他受影響套件中的惡意程式,發現一款名為「Scavanger」的Windows資訊竊取工具。這種惡意程式專門竊取瀏覽器儲存的敏感資料,並採用多種反偵測技術,包括間接系統呼叫和加密的命令與控制(C2)通訊。

不過,Scavanger在操作Chrome旗標的方式可能會觸發瀏覽器安全警告,這為受害者提供了潛在的早期警示機會。

攻擊者可能準備更大規模行動

依據攻擊模式分析,這些威脅行為者可能已竊取更多維護者的認證,並計劃在其他套件上部署更隱蔽的惡意程式碼。駭客採用的假冒域名釣魚手法顯示其具備相當的技術能力和組織性,未來可能發動更大規模的供應鏈攻擊。

這次攻擊的快速傳播和廣泛影響,反映出現代軟體開發對第三方套件的高度依賴性,同時也暴露了NPM生態系統在安全驗證機制上的不足。

防護建議與應對措施

為預防類似攻擊,套件維護者應立即重設密碼並更新所有存取權杖,特別是NPM發布權限相關的認證資訊。開發者則應僅使用2025年7月18日前的已知安全版本,並仔細檢查專案中使用的相依套件版本。

建議關閉自動更新功能,並使用鎖定檔(lockfiles)將相依套件固定在特定版本。這種做法雖然可能影響獲取最新功能的速度,但能有效降低供應鏈攻擊的風險。

組織應建立套件安全監控機制,定期掃描使用的第三方套件是否存在已知漏洞或可疑活動。同時,開發團隊需要建立事件應變程序,在發現安全問題時能快速評估影響範圍並採取對應措施。

本文轉載自 BleepingComputer。