npm 惡意套件避開安裝指令碼防護,改於執行時期發動攻擊
2026/09/22
資安業者揭露新一波 npm 供應鏈攻擊,名為 indexed-btree 的惡意套件與相關 9 個套件累計獲得數百萬次下載。這些套件偽裝成熱門函式庫,並把惡意程式碼藏在函式原型中,於執行時期才發動攻擊。
資安業者 Checkmarx 於 9 月 17 日揭露新一波 npm 供應鏈攻擊活動,發現名為 indexed-btree 的惡意套件以及與其相關的 9 個套件,累計已獲得數百萬次下載。這些套件偽裝成熱門的 sorted-btree 函式庫,並將惡意程式碼藏在套件的函式原型中,改於執行時期才發動攻擊。
這波攻擊的手法值得注意,因為它繞過了現有的一道主要防線。過去多數 npm 供應鏈攻擊利用安裝階段的指令碼,在套件被安裝時立即執行惡意程式;平台方與開發工具因此加強了對安裝指令碼的限制與監控。攻擊者的回應是把觸發時機往後移——安裝時完全乾淨,直到程式實際執行呼叫相關函式時才啟動。
偽裝成熱門函式庫則是另一個關鍵。開發者在搜尋套件時,容易因名稱相近而誤裝;而數百萬次的下載量本身也會製造可信度,形成惡性循環。業界分析人士指出,這類「相似名稱」攻擊在各大套件生態系中反覆出現,單靠開發者的警覺難以完全防範。
對開發團隊而言,防護需要多層次進行。包括鎖定相依套件版本並使用鎖定檔、導入軟體物料清單(SBOM)以掌握完整的相依關係、使用能偵測執行時期異常行為的工具,以及在 CI/CD 流程中加入套件來源與完整性驗證。
這也呼應 npm 近期收緊發布權限的動作。新增僅限暫存發布的權杖、規劃取消可繞過雙因素驗證的直接發布能力,都是從發布端降低套件被惡意上架或竄改的風險。
後續觀察重點在於受影響套件的清理進度、是否出現更多採用執行時期觸發手法的案例,以及套件生態系的安全機制能否跟上攻擊手法的演進。