News (HK)

Axios 對 NPM 的攻擊注入了 RAT 並傷害了數千名開發人員

Axios
Foto: Axios - reprodução x

流行的 Axios 庫在許多 JavaScript 專案中用於執行 HTTP 請求,它記錄了一次供應鏈攻擊,該攻擊破壞了 NPM 註冊表中發布的兩個特定版本。來自 StepSecurity 的 Investigadores 將 1.14.1 和 0.30.4 版本識別為惡意版本,發佈於 2026 年 3 月 31 日凌晨。這些軟體包注入了一個虛假的依賴項,該依賴項運行一個能夠在開發人員電腦上安裝遠端存取木馬的安裝腳本。

該事件揭露了依賴該程式庫的龐大開發生態系統,該程式庫是該平台上下載量最大的程式庫之一,每週下載量超過 1 億次。攻擊者沒有更改Axios的核心程式碼,而是增加了一個名為plain-crypto-js@4.2.1的隱藏依賴項。執行 npm install 時,Essa 依賴會自動激活,為 Windows、macOS 和 Linux 安裝特定的有效負載。

維護帳戶是如何外洩的

負責這次攻擊的人獲得了該專案主要維護者(jasonsaayman)的 NPM 帳戶的存取權限。 Eles 將關聯的電子郵件地址變更為ifstap@proton.me並手動發布受損版本,繞過 GitHub 上儲存庫的自動持續整合流程。第一個惡意版本 axios@1.14.1 於世界標準時間 00:21 左右發布,大約 39 分鐘後發布了 axios@0.30.4。

這種方法允許在不觸發簽名檢查或通常的 CI/CD 流程的情況下提供套件。 Axios 維護者發現後迅速做出反應,NPM 在數小時內刪除了這兩個版本,將暴露時間限制在大約兩到三個小時。

注入惡意軟體的技術細節

原始 Axios 程式碼中的任何時間都沒有匯入錯誤的依賴項 plain-crypto-js@4.2.1,專門用於執行安裝後腳本。該腳本充當遠端存取木馬植入程序,與命令和控制伺服器建立聯繫,以下載針對每個作業系統定制的其他有效負載。

混淆技術用於使立即分析變得困難,命令在運行時解碼。 Após成功安裝,惡意軟體刪除了自己的痕跡,用乾淨的版本替換package.json文件,以避免在以後檢查node_modules資料夾時被檢測到。

  • 使用 npm list axios 指令過濾 1.14.1 或 0.30.4 檢查受影響的版本
  • 檢查 node_modules/plain-crypto-js 資料夾是否存在作為妥協的指標
  • 搜尋工件,例如 /tmp/ld.py 中的暫存檔案或其他系統上的等效文件

建議開發商採取的緩解措施

安裝版本 1.14.1 或 0.30.4 的開發人員應考慮環境受到損害並立即採取行動。主要建議是恢復到先前的安全版本:最新分支中的 axios@1.14.0 或舊版本中的 axios@0.30.3 。

必須刪除虛假依賴項,使用 –ignore-scripts 標誌執行全新安裝,並輪換所有敏感憑證,包括 NPM 令牌、SSH 金鑰、雲端服務存取和環境變數。在持續整合管道中,永久採用忽略安裝後腳本的參數有助於防止不必要的自動執行。

對 JavaScript 開發生態系的影響

Axios 是 Node.js 生態系統和前端應用程式中最常用的函式庫之一,是眾多企業和開源專案的直接或間接相依性。該攻擊凸顯了高度流行的軟體包中個人維護者帳戶的固有漏洞,即使核心程式碼保持完整。

安全專家指出,所使用的方法展示了操作的複雜性,在註入惡意有效負載之前,在乾淨版本中預先準備了錯誤依賴項。 Essa 策略使初始自動偵測變得複雜,並在版本可用的短時間內增加了風險。

檢查和清潔受影響環境的指南

開發團隊需要審核安裝日誌和軟體包歷史記錄,以確定是否下載了惡意版本。 node_modules 中的 plain-crypto-js 資料夾的存在是一個強有力的指標,表示釋放器已被執行,無論稍後檔案是否被刪除。

清理後,建議使用威脅偵測工俱全面掃描系統,並監控與控制伺服器關聯的位址的網路連線。立即更新私有儲存庫中的安全性策略也有助於減少其他軟體套件中的類似風險。

防止未來對資料包日誌的攻擊

該事件凸顯了對發布帳戶進行嚴格的多因素身份驗證、持續監控包元資料變更以及採用更強大的完整性檢查等措施的重要性。 Projetos 採用率高的開源系統可能會在新版本發布之前考慮額外的審核流程。

個人開發人員和公司應優先考慮在專案設定檔中固定已知的安全版本,避免在未經事先驗證的情況下自動安裝更新。 Essas 實務有助於限制軟體供應鏈中的攻擊面。

安全社區將繼續監控此案,以繪製可能的受害者地圖並完善檢測工具。 Até 目前,還沒有大規模利用的公開報告,但一致建議是將受影響版本的任何安裝視為對所涉及系統的徹底妥協。