
DevOps廠商Sonatype揭露一系列長年存在於NPM儲存庫中的加密貨幣相關套件,其最新版本被惡意竄改,內含用以竊取環境變數等敏感資訊的混淆腳本。受影響的套件部分存在時間已超過9年,由於這些舊有開源專案未積極維護,便成為攻擊者鎖定的攻擊入口。
Sonatype資安研究人員分析,涉及的套件涵蓋區塊鏈SDK、使用者介面函式庫、開發工具組態與型別定義等,常見於加密貨幣與Web3應用開發的模組。其中country-currency-map套件的下載量更累積達近29萬次,近期上架的2.1.8版本即為被植入惡意程式碼的版本。該套件5年來未曾更新,其GitHub原始碼儲存庫也無異動紀錄,卻在近日於NPM上出現新版,說明攻擊並未透過原始碼貢獻流程,而是直接操控NPM發布權限。
這波攻擊的共同特徵,是受影響的版本均在安裝階段執行兩個位於package/scripts目錄下的JavaScript檔案,分別為launch.js與diagnostic-report.js,其內容經高度混淆,目的是在安裝時取得使用者系統中的環境變數,擷取包含API金鑰、OAuth存取權杖或SSH私鑰等憑證資訊。當這些環境變數未經適當加密或存取控制,便可能遭攻擊者攔截並外洩至遠端伺服器。
值得注意的是,本次事件涉及多個維護者不同、用途不一的套件,卻在相近時間內陸續出現異常版本,研究人員推測可能與NPM帳號遭重用密碼攻擊,或網域過期遭他人接管有關。由於這些專案多數已進入維護終止或活躍度低落狀態,開發者對其NPM帳號防護的警覺性與更新頻率皆偏低,使攻擊者有機可乘。
研究人員指出,雖然NPM自2022年起針對高影響力套件強制推行雙因素驗證,但多數中小型、早期專案或個人專案開發者,仍未納入此安全機制,特別是缺乏活躍維護的套件,更難強制其採取帳號保護措施。
開發者與企業面對日益頻繁且針對性強的供應鏈攻擊,除了須強化帳號防護、落實最小權限原則、控管依賴套件的來源與版本,也要持續監控其安全狀態,以減少潛在風險對營運環境造成的衝擊。對於已被污染的套件,開發者應檢查建置流程與部署紀錄,並退回至安全版本,避免讓惡意程式持續在內部環境中運作。