供應鏈暨 DevOps 資安公司 JFrog 研究人員近日揭露一起大規模 npm 供應鏈攻擊事件。一款名為
IronWorm 的新型竊密惡意軟體已感染 npm 套件倉儲(registry)中的 36 個套件,
攻擊目標涵蓋 OpenAI、AWS、Anthropic 等雲端服務金鑰,以及 SSH 私密金鑰與加密貨幣錢包檔案,對全球 JavaScript 開發生態系構成嚴峻威脅。
從單一帳號到連鎖感染:攻擊鏈如何運作
根據 JFrog 報告,
此波攻擊的起點為一個名為「asteroiddao」的遭竊 npm 帳號。攻擊者透過該帳號發布含有惡意 Rust ELF 執行檔的套件版本,並利用 npm 的 preinstall 腳本觸發機制,讓惡意程式碼在開發者執行 npm install 的瞬間自動啟動。
IronWorm 最關鍵的能力在於其自我傳播機制:一旦成功入侵開發者工作站或持續整合(CI)環境,該惡意軟體會竊取受害者的 npm 憑證,包括 npm Trusted Publishing 工作流程(workflow)所使用的機密,進而以受害者身份向 npm 倉儲發布遭木馬化(trojanized)的套件版本。這些被篡改的套件會進一步感染下游開發者與 CI 系統,形成難以遏制的連鎖感染效應。
此攻擊在技術執行面呈現多項精密設計。為規避調查,部分惡意提交(commit)的作者欄位顯示為「claude」,且時間戳記被偽造,最遠可追溯至 13 年前,藉此混淆鑑識人員的時間軸判斷。
JFrog 研究人員亦在惡意軟體程式碼中發現一套尚未實際啟用的憑證外洩機制:透過 GitHub Actions 將竊取的機密序列化後,寫入一個外觀無害、形似 lint 或格式化輸出的檔案,最後以 build artifact 形式上傳,任何具備倉儲存取權限的人均可下載取得,無需架設外部指揮控制(C2)伺服器。研究人員指出,此機制雖已內建於惡意軟體中,但在本次分析的 IronWorm 攻擊中並未被實際使用。
研究人員亦發現一個異常細節:攻擊者將自身加密貨幣錢包的助記詞(recovery phrase)硬編碼(hardcoded)於惡意軟體中,推測是為避免在測試階段誤將自身錢包資料竊走。這一失誤不僅暴露操作疏失,也為後續溯源調查留下線索。
技術特徵:三層隱匿機制並用
IronWorm 在技術架構上具備三項顯著特徵,極難被傳統防禦手段偵測:
- Rust 語言撰寫:以 Rust 開發的惡意軟體執行效率高、體積精簡,且在逆向工程分析上較 C 或 Python 系惡意軟體更具挑戰性。
- eBPF 核心 rootkit:透過 eBPF(Extended Berkeley Packet Filter)技術在 Linux 核心層隱匿自身行為,能夠繞過多數以使用者空間(user-space)為基礎的端點偵測及回應(EDR)工具的監控視野。
- Tor 網路通訊:與操作者的通訊透過 Tor 匿名網路進行,使流量分析與來源追蹤大幅複雜化。
JFrog 研究人員指出,IronWorm 呈現出「擁有自身基礎設施的行動所精心打造的客製化植入程式」特徵,技術成熟度明顯高於一般機會性攻擊。在攻擊者身份溯源方面,研究人員注意到 IronWorm 與近期在 GitHub 公開程式碼的 Shai Hulud 惡意軟體在提交命名規則上存在高度相似性,兩者可能均與名為 TeamPCP 的威脅組織存在關聯,但目前尚未確認直接連結。
延伸閱讀:Mini Shai-Hulud 惡意蠕蟲再起:169 個 npm 套件淪陷,首度記錄成功偽造有效 SLSA 出處證明
竊取範圍廣泛,雲端金鑰首當其衝
在竊取目標方面,IronWorm 系統性地掃描 86 種環境變數(environment variable)與 20 類憑證檔案,涵蓋範圍包括:OpenAI、AWS、Anthropic 等主要雲端與 AI 服務的 API 金鑰;SSH 私密金鑰及 npm 存取憑證;Vault 組態檔案;以及 Exodus 加密貨幣錢包檔案。
應用程式安全公司 Ox Security 表示,此次攻擊在初期即遭偵測,並在大規模擴散至更多熱門套件前及時攔截。該公司建議受影響的開發者立即升級至安全版本,輪換(rotate)所有可能外洩的金鑰,並為所有相關帳號啟用雙因素驗證(2FA)。
值得注意的是,資安公司 Endor Labs 與 StepSecurity 在相近時間框架內,亦偵測到一起獨立但手法高度相似的攻擊,涉及以 JavaScript 撰寫、命名為 binding.gyp 的惡意軟體,同樣針對 npm 倉儲投毒(registry poisoning)及 GitHub Actions 環境進行滲透,顯示針對開源供應鏈的組織性攻擊活動正在升溫。
台灣開發者行動建議
台灣軟體產業在 Web 應用、電商及新創開發領域廣泛依賴 npm 生態系,此類供應鏈攻擊直接威脅本地開發者的工作環境與企業的 CI/CD 管道。建議開發團隊採取以下措施:
- 核對 Ox Security 公布的受影響套件名單,確認專案相依套件(dependency)是否列於其中
- 立即輪換可能遭竊的 OpenAI、AWS、npm Token 及 SSH 金鑰
- 為所有 npm 帳號及 GitHub 帳號啟用 2FA
- 審查 CI/CD 管道中的 GitHub Actions 權限設定,限制 build artifact 的不必要存取
- 考慮導入軟體物料清單(SBOM)管理工具,強化對第三方套件的持續監控能力