攻擊者「照著錢包建立時間順序下手」而不是「優先挑餘額最高的錢包」,這個細節具體透露了什麼訊息?
如果攻擊者是在攻擊當下,即時掃描 XRP Ledger 上所有帳戶的公開餘額資料,找出餘額最高的帳戶優先下手,這是完全可以做到的——因為餘額本身是公開資訊,不需要取得私鑰就能查到。但這起事件的攻擊順序,跟餘額幾乎沒有相關性(相關係數只有 0.09),卻跟錢包建立時間高度相關(相關係數 0.65),這代表攻擊者手上根本沒有「即時查詢餘額、挑高價值目標」這個選項——因為攻擊清單本身,不是根據鏈上公開資料生成的,而是某個外部管道(例如一次資料外洩、一個惡意 App 版本,或某種供應鏈層級的問題)事先產生、按某種內部記錄順序排列的清單。
換句話說,這個細節間接排除了「攻擊者是臨時發現漏洞、即興操作」的可能性,指向一次更早、更有計畫性的資料取得行動——私鑰外洩的時間點,很可能遠早於 9 月 15 日這場提領本身。
DCENT 特別強調「硬體裝置本身尚未確認受影響」,這句話對使用者實際上有什麼保護意義?還是只是一種話術?
這句話有具體、可查證的技術意義,不是單純的話術。硬體錢包的設計原理,是把私鑰的生成跟簽章運算,限制在一個實體晶片內部完成,私鑰本身理論上永遠不會以明文形式離開這個晶片、進入電腦或手機的作業系統。軟體錢包(包括本文提到的 App Wallet)則是把私鑰的生成或儲存,放在手機這種通用作業系統裡,不管有沒有加密,理論上都比專用晶片更容易被惡意程式或漏洞碰觸到。DCENT 這句聲明,對應的是一個可以被驗證的技術事實:目前沒有證據顯示,這次事件的攻擊面涉及硬體裝置內部的晶片邏輯。
但這句話的保護範圍有明確邊界,這也是文中特別提醒的重點:這句話保護的是「硬體裝置這個物理元件本身沒有被攻破」,不保護「你曾經在軟體環境裡輸入過的那組助記詞」。如果你的助記詞曾經被輸入到 App Wallet 裡(不管是最初就在那裡生成,還是後來為了方便手機操作而匯入),這組助記詞本身已經走過一個相對不安全的環節,跟你現在有沒有搭配硬體裝置使用,是兩件互相獨立的事。
贓款流向幣安、又透過跨鏈橋轉出,這種洗錢手法能不能被追蹤或攔截?受害者有沒有拿回資金的可能?
鏈上分析工具確實能追蹤到贓款的完整流向——這正是本文引用的 XRPL.to 分析能重建整起事件時間軸的原因,鏈上交易紀錄本身是公開、不可竄改的。但「能被追蹤」跟「能被攔截或討回」是兩件不同的事。追蹤只能確認資金去了哪裡、經過哪些地址,實際能不能凍結或追回,取決於資金最終停留的平台(例如幣安這類中心化交易所)願不願意配合、能不能在資金被進一步轉出或兌現之前及時反應。截至 9 月 16 日,超過 180 萬顆被偷的 XRP 仍停留在攻擊者控制的錢包裡,只有約 23.6 萬顆真正抵達交易所或橋接服務——這代表贓款大部分還沒有被兌現,理論上還有攔截空間,但這個空間會隨著時間過去、資金持續被分拆轉移而逐漸縮小。
更值得注意的是,用來接收贓款的其中一個洗錢地址,早在 8 月就已經處理過超過 136 萬顆 XRP 的類似提領——這代表這是一個持續運作的洗錢管道,不是為了這次攻擊臨時搭建的。對受害者而言,這個事實的現實意義是:能不能拿回資金,很大程度上取決於執法機關能不能鎖定並凍結這整條長期運作的洗錢基礎設施,而不只是這一次的贓款本身。
如果我從來沒用過 DCENT,這起事件對我來說,有沒有值得記住的具體教訓?
有,而且這個教訓不限於 DCENT 這一個品牌。這起事件示範了一個所有軟體錢包使用者都該記住的具體檢查習慣:助記詞的安全性,取決於它「有沒有在任何一個相對不安全的環節存在過」,而不是取決於你「現在」把它放在哪裡。如果你手上有任何一組助記詞,曾經被輸入到手機 App、瀏覽器擴充功能,或任何形式的軟體環境裡——即使後來你已經改用硬體錢包、即使那個軟體錢包本身從未出過問題——這組助記詞的安全等級,都已經被那段軟體環境的曝險拉低了,不會因為你後來換了更安全的儲存方式就自動回升。
具體可以做的檢查是:盤點自己手上所有錢包的助記詞,誠實回答「這組助記詞是不是一開始就只在硬體裝置上生成、從未離開過硬體裝置」——如果答案是否定的,不管那個軟體錢包品牌現在名聲好不好、有沒有出過事,都值得認真考慮產生一組全新的助記詞、把資產遷移過去。這不是反應過度,而是承認一個事實:私鑰或助記詞一旦離開過受控環境,你永遠無法百分之百確認它有沒有被複製過。
9 月 15 日下午,南韓硬體錢包廠商 DCENT(開發商 IoTrust)旗下的軟體版「App Wallet」遭到攻擊,一支自動化腳本在 UTC 時間 16:29 到 18:34,短短兩小時零五分鐘內,對 1,552 個錢包地址發動系統性提領,總計捲走超過 200 萬顆 XRP,當時市值約 280 萬美元。DCENT 隔天在官方社群帳號證實此事,明確指出問題僅限於軟體版 App Wallet,尚未發現硬體裝置本身受影響,並要求所有曾在 App Wallet 上使用過助記詞的使用者,立即把資產轉移到安全地址。
鏈上分析平台 XRPL.to 的紀錄還原了完整的攻擊時間軸。第一波攻擊從 16:29 開始,腳本先用一筆 9 顆 XRP 的小額轉帳測試,接著在 14 分鐘內依序清空 204 個錢包,收割 19,787 顆 XRP。但腳本很快遇到問題:XRP Ledger 規定每個帳戶除了基本 1 顆 XRP 的保留金之外,持有的每一項額外物件(例如信任線)都要再多保留 0.2 顆 XRP,腳本一開始只算了基本保留金,導致嘗試清空一個持有超過 4.9 萬顆 XRP 的錢包時失敗,第一波總計留下 72 次失敗紀錄。
攻擊者接著暫停自動化腳本 33 分鐘,改用手動方式,逐一提領清單上 12 個餘額最大的錢包(每個都超過 4.2 萬顆 XRP),資金以每 10 到 30 秒一筆的節奏轉入一個新地址,到 17:13 這個地址已經累積 730,954 顆 XRP,超過總損失的三分之一,此後這筆資金再也沒有移動過。17:17,攻擊者修正了保留金計算邏輯,重新啟動自動化腳本,以平均每分鐘 17.6 個帳戶的速度,持續清空剩下的 1,336 個錢包,直到 18:34 收手,再拿下 1,258,563 顆 XRP。
這起事件最關鍵的線索,不是攻擊發生的速度,而是攻擊者選擇目標的順序。XRPL.to 的分析發現,受害錢包被攻擊的先後順序,跟這些錢包當初被建立的時間有 0.65 的相關性,跟錢包餘額的相關性卻只有 0.09——換句話說,攻擊者不是像多數搶劫式攻擊那樣,優先鎖定餘額最高的帳戶,而是幾乎照著錢包被建立的時間順序,一個接一個處理。這代表攻擊者手上早就有一份已經取得私鑰的錢包清單,不是在攻擊發生的當下才即時掃描鏈上資料尋找目標。受害錢包大多在 2021 到 2023 年間建立,清單裡最新的一個也是 2024 年 3 月創建,再也沒有更晚的錢包出現在受害名單裡。
被偷走的資金隨後展開分批洗錢:18:25 一筆逾 71.9 萬顆 XRP 轉出,拆成多筆小額轉入拋棄式錢包並自我清空;第一筆贓款於 20:18 抵達幣安,隔天凌晨部分資金再透過跨鏈橋服務轉出。分析同時發現,用來接收贓款的其中一個洗錢地址早在 8 月 9 日就已經透過 KuCoin 提領建立,累計已經處理超過 136 萬顆 XRP 的類似提領——顯示 9 月 15 日這一天,可能只是這個攻擊行動規模最大的一天,而非首次行動。
DCENT 官方的說法值得特別留意:受影響的是軟體版 App Wallet,不是硬體裝置,但官方也補上一句關鍵提醒——如果你曾經把同一組助記詞,同時用在 App Wallet 跟硬體裝置上,即使硬體裝置本身沒有漏洞,這組助記詞本身也已經暴露,硬體裝置的安全性救不回已經外流的私鑰。這起事件的核心教訓,不是「軟體錢包比硬體錢包差」這麼簡單的結論,而是助記詞一旦在任何一個環節(不管是軟體 App、瀏覽器擴充功能,還是曾經貼上網路的截圖)暴露過,不管你後來把它匯入多安全的裝置,這組助記詞的安全性都已經歸零。如果你的助記詞曾經在任何軟體環境中生成或輸入過,最直接的應對方式是產生一組全新的助記詞,把資產轉移到新地址,而不是假設「反正我現在用的是硬體錢包」就代表安全。