¿Qué hace Análisis de Carteras de Pago de Ransomware?
Cuándo Usarlo
- Una organización ha sido víctima de ransomware y la nota de rescate contiene una dirección de cartera de Bitcoin o criptomonedas que necesita ser investigada
- Las fuerzas del orden o los respondedores de incidentes necesitan rastrear hacia dónde fluyeron los pagos de rescate después de que la víctima pagó
- Los analistas de inteligencia de amenazas están atribuyendo campañas de ransomware mediante la agrupación de infraestructura de pago en varios incidentes
- Los investigadores necesitan determinar si un grupo de ransomware está reutilizando la infraestructura de carteras en múltiples víctimas
- Los equipos de cumplimiento legal necesitan evidencia de flujos de fondos para enjuiciamiento, aplicación de sanciones o reclamaciones de seguros
No uses esta habilidad para la interceptación en vivo de pagos o para interactuar directamente con operadores de ransomware. Todo el análisis debe ser pasivo y de solo lectura contra datos públicos de la cadena de bloques.
Prerrequisitos
- Python 3.8+ con las bibliotecas
requests,jsonyhashlib - Acceso a APIs de exploradores de blockchain (blockchain.com, WalletExplorer.com, Blockstream.info)
- Familiaridad con el modelo de transacciones de Bitcoin (UTXOs, entradas, salidas, direcciones de cambio)
- Comprensión de técnicas comunes de ofuscación (mezcladores, tumblers, cadenas de pelado, intercambios entre cadenas)
- Opcional: Licencia de Chainalysis Reactor para análisis de clústeres a nivel empresarial
- Opcional: OXT.me para visualización avanzada de grafos de transacciones
Flujo de Trabajo
Paso 1: Extraer la Dirección de la Cartera de la Nota de Rescate
Analiza la nota de rescate para identificar la(s) dirección(es) de pago:
Formatos de dirección comunes:
Bitcoin (P2PKH): 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa (comienza con 1)
Bitcoin (P2SH): 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy (comienza con 3)
Bitcoin (Bech32): bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq (comienza con bc1)
Monero: 4... (95 caracteres, mucho más difícil de rastrear)
Ethereum: 0x... (40 caracteres hex)
Paso 2: Consultar el Explorador de Blockchain para el Historial de Transacciones
Recupera todas las transacciones asociadas con la cartera:
import requests
def get_wallet_transactions(address):
"""Consulta la API de blockchain.com para transacciones de una dirección."""
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", []),
}
Paso 3: Mapear el Flujo de Fondos e Identificar Clústeres
Rastrea las salidas desde la cartera de rescate hacia direcciones posteriores:
Análisis del Flujo de Fondos:
━━━━━━━━━━━━━━━━━━
Pago de la Víctima ──► Cartera de Rescate ──► Cartera de Consolidación
├─► Servicio de Mezclador/Tumbler
├─► Dirección de Depósito en Exchange
└─► Cadena de Pelado (salidas pequeñas secuenciales)
Indicadores clave:
- Consolidación: Múltiples pagos de rescate agregados en una sola cartera
- Cadenas de pelado: Transacciones secuenciales con salidas decrecientes
- Uso de mezclador: Fondos enviados a direcciones de mezcladores conocidas (Wasabi, Samourai, ChipMixer)
- Retiro en exchange: Depósitos en carteras de exchanges conocidas (billeteras activas de Binance, Kraken)
Paso 4: Cruzar Referencias con Bases de Datos de Carteras Conocidas
Verifica las direcciones contra la infraestructura conocida de ransomware:
# Verificar en WalletExplorer para identificación de entidad
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", "Desconocido"),
"is_exchange": data.get("is_exchange", False),
}
Paso 5: Generar Informe de Atribución
Compila los hallazgos en un informe de inteligencia estructurado:
INFORME DE ANÁLISIS DE CARTERA DE RANSOMWARE
==============================================
Dirección de Rescate: bc1q...xyz
Atribución de Familia: LockBit 3.0 (basado en el formato de la nota de rescate)
Total Recibido: 4.25 BTC ($178,500 al momento del pago)
Total Enviado: 4.25 BTC (cartera completamente vaciada)
Número de Pagos: 3 (probablemente 3 víctimas separadas)
FLUJO DE FONDOS:
Pago 1: 1.5 BTC → Cartera de consolidación → Depósito en Binance
Pago 2: 1.0 BTC → Mezclador Wasabi → Desconocido
Pago 3: 1.75 BTC → Cadena de pelado (12 saltos) → Depósito en OKX
ANÁLISIS DE CLÚSTER:
Carteras relacionadas: 47 direcciones identificadas en el mismo clúster
Volumen total del clúster: 156.3 BTC ($6.5M USD)
Primera actividad: 2024-01-15
Última actividad: 2024-09-22
Verificación
- Confirma que el formato de la dirección de la cartera sea válido antes de consultar las APIs
- Cruza referencias de las marcas de tiempo de las transacciones con las líneas de tiempo de incidentes conocidos
- Valida las asociaciones de clústeres verificando la heurística de propiedad común de entrada
- Compara los hallazgos con la Lista SDN de OFAC para direcciones sancionadas
- Verifica la atribución del exchange contra múltiples fuentes (WalletExplorer, OXT, Chainalysis)
Conceptos Clave
| Término | Definición |
|---|---|
| UTXO | Salida de transacción no gastada; la unidad fundamental de Bitcoin que rastrea la propiedad a través de una cadena de transacciones |
| Análisis de Clúster | Agrupación de múltiples direcciones de Bitcoin que se cree que están controladas por la misma entidad usando heurísticas de propiedad común de entrada y de cambio de dirección |
| Cadena de Pelado | Un patrón de lavado donde los fondos se envían a través de muchas transacciones secuenciales, cada una desprendiendo una pequeña cantidad a una nueva dirección |
| CoinJoin/Mezclador | Técnicas de privacidad que combinan las transacciones de múltiples usuarios para ocultar el vínculo entre el remitente y el receptor |
| Propiedad Común de Entrada | Heurística que asume que todas las entradas a una sola transacción están controladas por la misma entidad |
Herramientas y Sistemas
- Chainalysis Reactor: Plataforma empresarial de investigación de blockchain con atribución de entidades y rastreo entre cadenas
- WalletExplorer: Herramienta gratuita que agrupa direcciones de Bitcoin y etiqueta servicios conocidos (exchanges, mezcladores, mercados)
- OXT.me: Visualización avanzada de transacciones de Bitcoin con análisis de grafos UTXO
- Blockstream.info: Explorador de bloques de Bitcoin de código abierto con acceso completo a la API
- API de blockchain.com: API gratuita para consultar saldos de direcciones de Bitcoin e historiales de transacciones
- Lista SDN de OFAC: Lista de direcciones sancionadas del Tesoro de EE. UU. para verificación de cumplimiento legal