RAT 使用 npm 上的惡意 Axios 版本進行分發

最後更新: 5月2026
  • 攻擊者入侵了 Axios 主要維護者的 npm 帳戶,並發布了 1.14.1 和 0.30.4 版本,其中包含一個幽靈依賴項 plain-crypto-js,該依賴項在安裝過程中部署了一個跨平台 RAT。
  • 該惡意軟體聯繫了 C2 伺服器 (sfrclak[.]com),並下載了適用於 Windows、macOS 和 Linux 的特定有效載荷,執行系統偵察、維護週期性信標,並在某些情況下建立持久性。
  • 谷歌和其他研究人員將攻擊歸咎於北韓駭客 UNC1069,該攻擊結合了大約三個小時的暴露時間窗口和針對維護者的複雜社會工程攻擊,以竊取其憑證。
  • 能夠安裝受影響版本的組織必須承諾採取行動,搜尋 RAT 工件,輪換憑證,鎖定 Axios 的安全版本,並加強其供應鏈、CI/CD 和相依性管理控制。

使用 npm 中的 RAT 攻擊 Axios

JavaScript 開發社群剛經歷了一次令人擔憂的事件,它迫使人們重新審視對依賴項的信任程度,函式庫漏洞問題就是一個例證。 Axios是生態系統中最廣泛使用的 HTTP 庫之一,它在 npm 上被篡改,透過看似合法的版本傳播遠端存取木馬 (RAT)。雖然事件只持續了幾個小時,但它清楚地表明,軟體供應鏈的脆弱程度遠遠超過許多人的想像。

真正的問題不僅在於攻擊者成功地將惡意軟體偷偷植入每週下載量達數千萬甚至數億次的軟體包中。更嚴重的是,他們透過劫持主要維護者的 npm 帳戶,發布了看似正常的「官方」版本,這些版本並未觸及 Axios 原始碼的任何一行。所有惡意行為都隱藏在一個專為此次攻擊設計的虛擬依賴項中。

Axios是如何對npm做出承諾的呢?

要了解這次事件的嚴重性,我們需要從入口點說起。攻擊者成功控制了 Axios 的主要維護者「jasonsaayman」的 npm 帳戶,並將關聯的電子郵件地址更改為他們控制的、託管在 Proton Mail 上的郵箱地址。從那時起,他們就可以像維護者一樣隨意發布該軟體包的新版本。

利用這些憑證,他上傳了兩個惡意版本的 Axios:1.14.1 和 0.30.4,涵蓋了該專案的兩個主要分支。兩次上傳僅相隔 39 分鐘,根據 StepSecurity 的分析,這些上傳是直接透過 npm 使用經典的長期有效令牌完成的,完全繞過了基於 GitHub Actions 的常規 CI/CD 管線。

在最終攻擊發生前18小時,攻擊者已在npm註冊表中發布了一個與惡意依賴項相關的「乾淨」版本。這個初步步驟旨在產生歷史記錄,並防止在攻擊發生時出現全新軟體包時觸發某些自動檢查。

令人驚訝的是,攻擊者並未修改 Axios 的原始程式碼,也沒有對 GitHub 程式碼庫進行任何可見的更改。事實上,1.14.1 和 0.30.4 版本在 GitHub 上沒有任何對應的提交或標籤;它們只存在於 npm 上。關鍵區別在於軟體包的依賴文件,該文件已發佈在註冊表中。

正常情況下,Axios 只聲明了三個依賴項:follow-redirects、form-data 和 proxy-from-env。然而,在被入侵的版本中,出現了第四個依賴項,一個先前在專案中並不存在的東西:plain-crypto-js,版本 4.2.1。這個「幽靈」庫在 Axios 程式碼庫中任何地方都沒有被使用,但它包含一個安裝後腳本,該腳本會在使用 npm、pnpm 或類似工具安裝該軟體包時自動運行。

plain-crypto-js:遠端存取木馬部署的幽靈依賴項

這次攻擊的關鍵在於這個額外的依賴。 plain -crypto-js 由名為「nrwise」的使用者發佈在 npm 上,該使用者也使用 Proton Mail 郵件地址。 plain-crypto-js 的唯一目的是執行一個混淆的 Node.js 安裝後腳本(setup.js)。該腳本充當投放器,即惡意軟體第二階段的初始安裝程式。

當安裝被竄改的 Axios 版本時,npm 的 post-install 生命週期會自動觸發 plain-crypto-js 程式碼,無需開發者進行任何特殊操作。該投放器連接到 sfrclakcom 網域中監聽 8000 連接埠的命令與控制 (C2) 伺服器,並下載針對受感染機器作業系統的特定有效載荷;這種行為可以透過網路流量分析來識別。

  Bash:它是什麼,它如何運作以及它用於什麼

StepSecurity 和其他分析團隊的研究人員描述了一種非常謹慎的行為。惡意程式執行完畢後,會清除自身痕跡:它刪除了 postinstall 腳本,將 package.json 檔案替換為「乾淨」的版本,並留下一個乍看之下無害的 node_modules 檔案。這樣一來,後續的人工檢查就無法在 Axios 中直接發現惡意程式碼。

為了識別這種篡改,唯一可靠的線索在於鎖定檔案(package-lock.json、pnpm-lock.yaml、yarn.lock)以及特定版本的存在:axios 1.14.1 或 0.30.4 以及 plain-crypto-js 4.2.1,此外,一些分析中還連結到了該軟體包的兩個版本(4.2.0 4.2.2)。 Socket 隨後偵測到,同樣的惡意軟體也透過 @shadanai/openclaw(2026.3.xx 等多個版本)和 @qqbrowser/openclaw-qbot(0.0.130)軟體包進行傳播,而蜜罐等安全技術也有助於識別類似的攻擊活動。

跨平台遠端存取木馬:Windows、macOS 和 Linux 成為焦點

setup.js腳本一旦執行,便充當了協調器的角色,能夠偵測作業系統並遵循特定平台的攻擊路徑。這次攻擊活動顯然是預先準備的:據StepSecurity稱,攻擊者預先編譯了三個不同的有效載荷,每個系統對應一個。

在 macOS 系統中,安裝後程序會啟動一個 AppleScript 腳本,該腳本會從 sfrclakcom:8000 伺服器下載一個被植入木馬的二進位。此二進位檔案被儲存到 /Library/Caches/com.apple.act.mond 路徑下,其權限被修改為可執行文件,最後使用 /bin/zsh 在背景啟動。遠端存取木馬 (RAT) 運行後,AppleScript 腳本本身會被刪除,以進一步增加取證分析的難度。

在 Windows 系統上,該惡意軟體會找到系統中的 PowerShell 二進位文件,將其複製到 %PROGRAMDATA%\wt.exe 目錄下,偽裝成 Windows 終端,並產生一個臨時 VBScript 腳本。此 VBScript 腳本隨後會聯絡 C2 伺服器下載另一個 PowerShell 遠端存取木馬 (RAT) 腳本,執行該腳本後,刪除下載的檔案。此外,Windows 變種還會建立 %PROGRAMDATA%\system.bat 文件,其中包含一個下載例程,使惡意軟體能夠在每次登入時自動恢復自身,並在 Windows 註冊表中新增執行金鑰以確保持久性。

在 macOS 以外的 Linux 和其他類別 Unix 系統上,該投放器使用 Node.js 的 execSync 函數啟動一個 shell 命令,該命令從 sfrclakcom 下載一個 Python 腳本,將其保存為 /tmp/ld.py,並使用 nohup 命令執行該腳本以使其在後台運行。與 Windows 不同,該變種沒有展現出強大的持久化機制,這表明其採用的是更注重快速資料外洩的方法,或者只是偶爾透過後續命令部署持久化機制。

SafeDep 和 Elastic Security Labs 分析了二級有效載荷,得出結論:macOS(C++ Mach-O 二進位檔案)和 Linux(Python 腳本)的遠端存取木馬 (RAT) 共享相同的命令集、C2 協定、訊息格式和執行行為。此類分析通常依賴VirusTotal等掃描服務,這些服務有助於關聯樣本和入侵指標 (IOC)。

在所有案例中,每個被入侵的主機都會立即執行系統偵察:使用者目錄、磁碟機根目錄、活動進程和其他元資料。這些資訊會被傳送到命令與控制伺服器,而代理程式會維持一個大約 60 秒的信標循環,等待新的指令,包括執行其他腳本或將二進位檔案注入記憶體。

曝光窗口、目標以及對北韓的歸因

惡意版本的 Axios 在 npm 上存在了大約三個小時,時間段經過精心選擇。這些被入侵的軟體包於週日午夜前發布(這個時間點最大限度地延長了防御者的反應時間),在安全公司向當局報告異常行為後,事件在周一清晨得到控制。

在相對較短的時間內,Huntress 會偵測到至少 135 個系統連接到攻擊者的伺服器。鑑於 Axios 每週記錄的下載量超過 80 萬至 100 億次(據各種消息來源稱,某些時期甚至超過 300 億次),這個數字可能只是冰山一角,僅限於那些引起分析公司注意並公開數據的系統。

  網路上的 PHP 資源:使用 PHP 促進您的 Web 開發

谷歌透過其威脅情報團隊將這次攻擊歸咎於一個疑似北韓駭客組織,該組織被標記為 UNC1069。 Elastic Security Labs 透過發現 macOS 上傳播的遠端存取木馬 (RAT) 與 Mandiant 發現的 C++ 後門程式 WAVESHAPER 高度相似,進一步證實了這一假設。 WAVESHAPER 也與相同威脅組織有關。

谷歌分析師強調,與北韓有關的組織多年來一直專注於供應鏈攻擊和加密貨幣盜竊活動。他們的作案手法一貫如此:先攻破開發基礎設施、廣泛使用的函式庫或受信任的軟體,然後橫向轉移目標,攻擊那些管理高價值資產、私鑰或憑證的組織。

多份報告也強調,這次攻擊的組織結構和設計表明攻擊者是一個配合默契的團隊:同一遠端存取木馬(RAT)的三個並行實現(分別使用 PowerShell、C++ 和 Python 語言)、一致的 C2 協定、所有變種幾乎相同的行為,以及清晰的自清理策略以避免留下痕跡。 Elastic 強調,這種一致性表明攻擊者是單一開發者或團隊,他們基於共享的設計文件進行開發,而非臨時拼湊。

針對 Axios 維護者的高級社會工程學

撇開純粹的技術層面不談,此案最令人不安的一點是主要維護者的 npm 帳戶是如何被盜用的。 Axios的經理後來解釋說,他幾乎所有服務都啟用了雙重認證,但最終在不知情的情況下授予了他人存取權限。

根據團隊分享的分析報告,攻擊者精心策劃了一場社會工程攻擊,並藉助人工智慧工具,成功地獲得了目標使用者的信任。他們冒充公司創辦人,複製了公司的視覺形象、照片,甚至連企業品牌識別都照搬不誤。他們創建了一個帶有公司標誌的真實 Slack 空間,設定了看似與 LinkedIn 同步的頻道,甚至創建了員工和其他開源軟體維護者的虛假個人資料。

在這種情況下,他們透過 Microsoft Teams 安排了一場會議,看起來所有專業人士都參與了會議。會議期間,他們模擬了一個技術問題,並指出系統的一個組件已過時。維護技術人員以為這是視訊會議工具本身的合理要求,於是下載並安裝了建議的文件。

事實上,該文件正是遠端存取木馬,攻擊者利用它來獲取受害者的憑證,最終控制了用於發布 Axios 的 npm 帳戶。整個過程精心策劃,細節逼真,以至於受害者將其描述為「完美協調、專業且極具說服力」。

此次事件中的人為因素表明,即使是雙因素認證等技術措施,在高級社會工程技術與視覺冒充、深度偽造或對組織的精細克隆相結合時,也遠遠不夠。最薄弱的環節,再次是人為因素。

對使用 Axios 的組織和開發人員的影響

從實際角度來看,主要問題在於確定哪些組織真正受到了影響。任何在[email protected]或[email protected]可用期間安裝了這些程式的組織都應該假定執行安裝的機器或管道可能已被入侵。

StepSecurity、Aikido、Huntress 和 Elastic 等公司的建議非常明確。一旦懷疑存在安全隱患,必須採取積極主動的措施,而不僅僅是「刪除並重新安裝 node_modules」。明智的做法是使用可信任鏡像重建受影響的機器或環境,並仔細檢查 CI/CD 日誌,以確定哪些作業或管線可能執行了被入侵的版本。

此外,必須輪換 RAT 可能從這些節點存取的所有憑證和金鑰:npm 令牌、雲端提供者金鑰、管道金鑰、資料庫憑證、SSH 金鑰等。在此類攻擊後,如果這些憑證仍然流通,就會為悄無聲息的橫向移動敞開大門。

  如何以完全加密和安全的方式共享大型文件

在技​​術層面,團隊應檢查其鎖定檔案(package-lock.json、pnpm-lock.yaml、yarn.lock),以尋找已入侵版本的 Axios 和 plain-crypto-js 的參考。如果發現這些元素,下一步是檢查受影響的系統是否有潛在的遠端存取木馬 (RAT) 痕跡:macOS 上的 /Library/Caches/com.apple.act.mond,Windows 上的 %PROGRAMDATA%\wt.exe 和 %PROGRAMDATA%\system.bat,或 Linux 上的 /tmp/ld.py.py。

同時,建議明確設定安全的 Axios 版本,例如 1.14.0 和 0.30.3,並使用覆蓋或解析來防止傳遞依賴項解析到不期望的版本。阻止出站流量訪問 sfrclakcom 域也是一項合理的遏制措施,至少在分析攻擊的全部範圍期間應如此。

軟體供應鏈的安全教訓

Axios事件並非個案,而是供應鏈攻擊鏈中的又一環,這條鏈條還包括SolarWinds、Kaseya、3CX、Polyfill.io以及Log4j漏洞等案例。其核心想法始終如一:攻擊廣泛使用且受信任的組件以擴大攻擊範圍,而不是逐一攻擊目標機器。

專家們一再強調的一點是,信任不能只依賴函式庫的流行度或維護者的聲譽。如果發布管道(npm 帳戶、CI/CD 管線、建置基礎架構)遭到入侵,那麼透過該管道發布的所有內容都會面臨相同的風險。如果惡意軟體隱藏在傳遞依賴項中並在執行後自行刪除,那麼人工程式碼審查也無濟於事。

此外,研究還指出,依賴項更新的「預設速度」會增加攻擊面。永遠自動採用最新版本固然極其便捷,但也為惡意更新在幾分鐘內傳播打開了方便之門。一些組織已經在考慮採取相關策略,例如要求新版本在生態系統中運行一段時間後才能採用,或者要求對關鍵軟體包的更改進行額外的人工審核。

在開發基礎設施方面,CI/CD 環境必須被視為高度敏感資產。任何在依賴項安裝過程中執行的遠端存取木馬 (RAT) 幾乎肯定會試圖取得管道金鑰並存取其他環境。因此,對這些節點進行隔離、加強監控並定期輪換金鑰不再是「理想」建議,而是必須採取的措施。

最後,偵測這類攻擊需要結合來自多個來源的資訊:已安裝版本、鎖定檔案、作業系統入侵指標和網路遙測資料。產生和管理軟體物料清單 (SBOM) 的工具有助於快速追蹤哪些項目使用了哪些軟體包,這在觸發此類大規模警報時至關重要。

與 Axios 的這次事件充分說明了依賴生態系統——無論它看起來多麼成熟和完善——仍然高度依賴信任和持續的警惕。一個看似無害的庫,如果由一個人維護,卻不幸成為精心策劃的社會工程攻擊的受害者,那麼短短幾個小時內,它就可能成為全球範圍內部署跨平台遠程訪問木馬 (RAT) 的入口,攻擊對象涵蓋各種規模的公司、自由職業者和組織。加強對發布帳戶、管道和關鍵依賴項的控制不再是可有可無的最佳實踐,而是在攻擊者越來越耐心、手段越來越高明、工具越來越強大的環境下,持續開發的先決條件。

腳本加固系統
相關文章:
腳本編寫和系統加固:伺服器強化完整指南