分析勒索软件支付钱包 是做什么的?
使用时机
- 某组织遭受勒索软件攻击,勒索信中包含一个需要调查的比特币或加密货币钱包地址
- 执法机构或事件响应人员需要在受害者支付赎金后追踪资金流向
- 威胁情报分析师正在通过分析跨事件支付基础设施来对勒索软件活动进行归因
- 调查人员需要判断某个勒索软件团伙是否针对多个受害者重复使用相同的钱包基础设施
- 合规或法律团队需要资金流向证据以支持起诉、制裁执行或保险索赔
请勿将此技能用于实时支付拦截或直接与勒索软件运营者交互。所有分析应为被动方式,仅对公共区块链数据进行只读操作。
前提条件
- Python 3.8+,安装了
requests、json和hashlib库 - 可访问区块链浏览器API(blockchain.com、WalletExplorer.com、Blockstream.info)
- 熟悉比特币交易模型(UTXO、输入、输出、变更地址)
- 了解常见的混淆技术(混币器、翻滚器、进币链、跨链交换)
- 可选:企业级集群分析所需的 Chainalysis Reactor 许可证
- 可选:高级交易图可视化的 OXT.me
工作流程
步骤1:从勒索信中提取钱包地址
解析勒索信以识别支付地址:
常见地址格式:
比特币 (P2PKH): 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa (以1开头)
比特币 (P2SH): 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy (以3开头)
比特币 (Bech32): bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq (以bc1开头)
门罗币: 4... (95个字符,更难追踪)
以太坊: 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)
- 交易所变现:存入已知交易所钱包(币安、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 → 归集钱包 → 币安存款
支付2:1.0 BTC → Wasabi混币器 → 未知
支付3:1.75 BTC → 进币链 (12跳) → OKX存款
集群分析:
相关钱包:同一集群中识别出47个地址
集群总交易量:156.3 BTC ($6.5M USD)
首次活动:2024-01-15
最后活动:2024-09-22
验证
- 查询API前确认钱包地址格式有效
- 将交易时间戳与已知事件时间线交叉验证
- 通过检查共同输入所有权启发式验证集群关联
- 将发现结果与OFAC SDN名单中的受制裁地址对比
- 通过多个来源(WalletExplorer、OXT、Chainalysis)核实交易所归因
关键概念
| 术语 | 定义 |
|---|---|
| UTXO | 未花费交易输出;比特币的基本单位,通过交易链跟踪所有权 |
| 集群分析 | 使用共同输入所有权和变更地址启发式,将多个被认为由同一实体控制的比特币地址进行分组 |
| 进币链 | 一种洗钱模式,资金通过多笔连续交易发送,每笔交易将少量资金转移至新地址 |
| CoinJoin/混币器 | 隐私技术,将多个用户的交易合并以混淆发送方和接收方之间的联系 |
| 共同输入所有权 | 假设单笔交易中的所有输入由同一实体控制 |
工具与系统
- Chainalysis Reactor:企业级区块链调查平台,支持实体归因和跨链追踪
- WalletExplorer:免费工具,用于对比特币地址进行集群,并标记已知服务(交易所、混币器、市场)
- OXT.me:高级比特币交易可视化,支持UTXO图分析
- Blockstream.info:开源比特币区块浏览器,提供完整API访问
- blockchain.com API:免费API,用于查询比特币地址余额和交易历史
- OFAC SDN名单:美国财政部制裁地址列表,用于合规检查