分析勒索軟體付款錢包 是做什麼的?
使用時機
- 組織遭受勒索軟體攻擊,且贖金筆記中包含需要調查的 Bitcoin 或加密貨幣錢包地址
- 執法機關或事件應變人員需要追蹤受害者付款後,贖金流向何處
- 威脅情報分析師正在透過關聯各事件的付款基礎設施,來歸因勒索軟體攻擊活動
- 調查人員需要判斷某勒索軟體組織是否在多個受害者之間重複使用錢包基礎設施
- 合規或法務團隊需要資金流向證據,以用於起訴、制裁執行或保險理賠
請勿使用此技能進行即時付款攔截或直接與勒索軟體操作者互動。所有分析應為被動且唯讀狀態,僅針對公開的區塊鏈資料。
前置條件
- Python 3.8+,並安裝
requests、json和hashlib函式庫 - 可存取區塊瀏覽器 API(blockchain.com、WalletExplorer.com、Blockstream.info)
- 熟悉 Bitcoin 交易模型(UTXO、輸入、輸出、找零地址)
- 了解常見的混淆技術(混幣器、翻攪器、剝離鏈、跨鏈交換)
- 選用:Chainalysis Reactor 授權,以進行企業級集群分析
- 選用:OXT.me,以進行進階交易圖表視覺化
工作流程
步驟 1:從贖金筆記中提取錢包地址
解析贖金筆記,識別出付款地址:
常見地址格式:
Bitcoin (P2PKH): 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa (開頭為 1)
Bitcoin (P2SH): 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy (開頭為 3)
Bitcoin (Bech32): bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq (開頭為 bc1)
Monero: 4... (95 個字元,更難追蹤)
Ethereum: 0x... (40 個十六進制字元)
步驟 2:查詢區塊瀏覽器以獲取交易歷史
檢索與該錢包相關的所有交易:
import requests
def get_wallet_transactions(address):
"""透過 blockchain.com API 查詢地址的交易記錄。"""
url = f"https://blockchain.info/rawaddr/{address}"
resp = requests.get(url, timeout=30)
resp.raise_for_status()
data = resp.json()
return {
"address": address,
"n_tx": data.get("n_tx", 0),
"total_received_satoshi": data.get("total_received", 0),
"total_sent_satoshi": data.get("total_sent", 0),
"final_balance_satoshi": data.get("final_balance", 0),
"transactions": data.get("txs", []),
}
步驟 3:繪製資金流向並識別集群
從勒索錢包追蹤輸出至下游地址:
資金流向分析:
━━━━━━━━━━━━━━━━━━
受害者付款 ──► 勒索錢包 ──► 合併錢包
├─► 混幣器/翻攪服務
├─► 交易所存款地址
└─► 剝離鏈 (連續的小額輸出)
關鍵指標:
- 合併:多筆勒索付款彙整到一個錢包
- 剝離鏈:連續交易且輸出金額遞減
- 混幣器使用:資金發送至已知的混幣器地址(Wasabi、Samourai、ChipMixer)
- 交易所兌現:存入已知的交易所錢包(Binance、Kraken 熱錢包)
步驟 4:與已知錢包資料庫交叉比對
檢查地址是否與已知的勒索軟體基礎設施相關:
# 透過 WalletExplorer 檢查實體識別
def check_wallet_explorer(address):
url = f"https://www.walletexplorer.com/api/1/address?address={address}&caller=research"
resp = requests.get(url, timeout=30)
data = resp.json()
return {
"wallet_id": data.get("wallet_id"),
"label": data.get("label", "Unknown"),
"is_exchange": data.get("is_exchange", False),
}
步驟 5:產出歸因報告
將分析結果彙整為結構化的情報報告:
勒索軟體錢包分析報告
====================================
勒索地址: bc1q...xyz
家族歸因: LockBit 3.0(根據贖金筆記格式)
總收款: 4.25 BTC(付款當時約 178,500 美元)
總付款: 4.25 BTC(錢包已完全清空)
付款筆數: 3 筆(可能來自 3 個不同受害者)
資金流向:
付款 1:1.5 BTC → 合併錢包 → Binance 存款
付款 2:1.0 BTC → Wasabi 混幣器 → 未知
付款 3:1.75 BTC → 剝離鏈 (12 跳) → OKX 存款
集群分析:
相關錢包:同一集群中識別出 47 個地址
集群總交易量:156.3 BTC(約 650 萬美元)
首次活動:2024-01-15
最後活動:2024-09-22
驗證
- 在查詢 API 前,先確認錢包地址格式有效
- 將交易時間戳與已知事件時間線交叉比對
- 透過共同輸入所有權啟發式方法驗證集群關聯
- 將結果與 OFAC SDN 制裁地址清單比對
- 針對多個來源(WalletExplorer、OXT、Chainalysis)驗證交易所歸因
關鍵概念
| 術語 | 定義 |
|---|---|
| UTXO | 未花費交易輸出;Bitcoin 的基本單位,透過交易鏈追蹤所有權 |
| 集群分析 | 使用共同輸入所有權和找零地址啟發式方法,將多個 Bitcoin 地址歸為同一實體控制 |
| 剝離鏈 | 一種洗錢模式,將資金透過多個連續交易發送,每筆交易剝離少量金額至新地址 |
| CoinJoin/混幣器 | 結合多位使用者的交易以混淆傳送方與接收方關聯的隱私技術 |
| 共同輸入所有權 | 假設單一交易中的所有輸入都由同一實體控制的啟發式方法 |
工具與系統
- Chainalysis Reactor:企業級區塊鏈調查平台,提供實體歸因與跨鏈追蹤功能
- WalletExplorer:免費工具,可將 Bitcoin 地址分群並標記已知服務(交易所、混幣器、市集)
- OXT.me:進階 Bitcoin 交易視覺化工具,具備 UTXO 圖形分析功能
- Blockstream.info:開源 Bitcoin 區塊瀏覽器,提供完整 API 存取
- blockchain.com API:查詢 Bitcoin 地址餘額與交易歷史的免費 API
- OFAC SDN 清單:美國財政部制裁地址清單,用於合規檢查