DevOps 6 min de lectura 1146 palabras

El hackeo de Binance: 6.300 millones en veinte minutos desde el portátil de un ingeniero

EN
El hackeo de Binance: 6.300 millones en veinte minutos desde el portátil de un ingeniero

Ayer por la tarde, 29 de octubre, Binance, el mayor exchange de criptomonedas del mundo, sufrió el mayor robo de criptomonedas registrado: según la propia empresa, unos 6.300 millones de dólares. La cifra todavía se mueve (Chainalysis la sitúa en unos 5.900 millones y TRM Labs en 6.360), pero en cualquier caso multiplica por cuatro el récord anterior, los 1.500 millones que se robaron a Bybit en febrero de 2025.

Lo que me interesa no son tanto las cifras como el cómo. Hay dos versiones que encajan entre sí: la de Binance, que cuenta por dónde entró el atacante, y la de TRM Labs, que lo ha reconstruido a partir de las transacciones en las distintas cadenas.

Por dónde entraron

Según la investigación inicial de Binance, todo empezó con el portátil comprometido de un ingeniero de DevOps. Desde él, el atacante consiguió acceso a un contenedor de servicio y desde ahí envió órdenes de retirada no autorizadas. Binance dice que no ha encontrado indicios de que se filtrara ninguna clave privada de sus monederos, y que publicará un análisis técnico detallado cuando termine la investigación.

TRM llega a una conclusión compatible: el atacante consiguió que el sistema que firma las transacciones de los monederos calientes de Binance firmara lo que él quisiera. Las dos cosas pueden ser ciertas a la vez. Las claves pueden estar perfectamente guardadas en un HSM o un servicio de firma, y aun así no sirve de nada si alguien logra pedirle a ese servicio que firme.

flowchart LR
    A["Portátil de un ingeniero"] --> B["Contenedor de servicio"]
    B --> C["Sistema de firma · monederos calientes"]
    C --> D["Retiradas firmadas en diez cadenas"]
    D --> E["Carteras del atacante"]

Una operación preparada con calma

La reconstrucción de TRM muestra un ataque nada improvisado:

Cuándo (UTC)Qué pasó
28 de octubre, mañanaLa cartera del operador recibe tres retiradas pequeñas desde Tornado Cash
29 de octubre, madrugadaEl código del ataque se despliega y se prueba en dos carteras
29 de octubre, más tardeEnsayan la versión final en una tercera cartera; unas cuatro horas después la instalan en un monedero caliente de Binance
20:05 a 20:09Cinco monederos de Binance en XRP Ledger envían 233,46 millones de XRP
20:20Salen 18.270 BTC y, en el mismo minuto, se delega el monedero de Ethereum
Hacia las 20:22Un monedero de Tron envía 612,7 millones de USDT
Hacia las 20:24El monedero de Ethereum se vacía entero, incluidos 167.464 ETH y 1.615 millones de USDT
23:05Segunda oleada en Avalanche y Polygon

La mayor parte salió en unos veinte minutos. Por cadenas, así queda el reparto:

CadenaValor aproximado
Ethereum3.790 millones
Bitcoin1.470 millones
Tron628 millones
XRP Ledger296 millones
Solana96 millones
Arbitrum, Optimism, Base, Avalanche y Polygonunos 77 millones

El truco de Ethereum: 50 autorizaciones firmadas por adelantado

La parte técnicamente más llamativa está en Ethereum. El atacante usó EIP-7702, la propuesta que llegó con la actualización Pectra en 2025 y que permite a una cuenta normal delegar su comportamiento en un contrato inteligente mediante una autorización firmada.

Cada autorización va ligada al nonce de la cuenta, el contador que impide repetir transacciones. Como el atacante no sabía exactamente qué nonce tendría el monedero en el momento del ataque, preparó 50 autorizaciones para nonces consecutivos, de forma que alguna coincidiera. Las envió todas en una sola transacción y el monedero caliente de Binance quedó delegado en un contrato “barredor” que sólo aceptaba órdenes del atacante. Unos tres minutos y medio después, el monedero se vaciaba entero.

En las otras nueve cadenas no hizo falta nada tan elaborado: bastaron transferencias firmadas normales. Por eso TRM descarta que fuera un simple phishing, que explicaría lo de Ethereum pero no el resto.

La carrera por congelar

Aquí está el contraste más curioso del caso. Bitcoin o ETH no se pueden congelar, pero las stablecoins sí, porque las emite una empresa que puede bloquear direcciones. Y lo hicieron rápido:

QuiénQué congeló
TetherUnos 1.770 millones de USDT en varias cadenas
CircleUnos 825 millones de USDC
Ripple40,5 millones de RLUSD, más lo que quedaba en el monedero comprometido
World Liberty Financial27,8 millones de USD1
Consejo de Seguridad de ArbitrumTransfirió por la fuerza 8.426 ETH y 74,6 millones de ARB, unos 30 millones

En total, Binance habla de unos 3.000 millones congelados. El atacante lo sabía y por eso corrió a convertir stablecoins en ETH: vendió unos 325 millones de USDT a través de UniswapX pagando más de un 10 % por encima del precio de mercado, y depositó otros 60 millones como garantía en Aave para pedir prestados unos 19.760 ETH. Aave congeló después esos mercados.

Según TRM, al atacante le quedan más de 420.000 ETH y los 18.270 BTC, unos 2.400 millones, y los bitcoin ya se están moviendo en pequeños saltos entre direcciones para dificultar el rastreo.

Quién está detrás

TRM lo atribuye “con alta confianza” a TraderTraitor, un grupo de Corea del Norte vinculado a Lazarus, al que el FBI ya atribuyó el robo de Bybit. Chainalysis también apunta a Corea del Norte. Los indicios coinciden con ataques anteriores: financiar la cartera del operador con Tornado Cash, prepararlo todo con mucha antelación y ejecutar en ráfaga firmas obtenidas antes. La diferencia con Bybit está en el blanqueo, que esta vez se apoya en intercambios y préstamos en lugar de en puentes entre cadenas.

Qué pasa con los usuarios

Binance ha suspendido depósitos y retiradas, asegura que “los fondos de los usuarios están a salvo” y que cubrirá todas las pérdidas con su fondo de emergencia SAFU y con fondos propios. Su cofundadora Yi He espera reanudar las retiradas el domingo. El mercado lo notó: bitcoin cayó cerca de un 5 %, por debajo de los 77.000 dólares.

Lo que me llevo

Este caso me parece una lección muy clara para cualquiera que trabaje en infraestructura, manejes o no criptomonedas. No hizo falta robar ninguna clave: bastó con llegar, desde el portátil de una persona, a un sistema que tenía permiso para pedir firmas. Es el mismo patrón que se repite en muchos incidentes: la parte más protegida del sistema es tan segura como lo que tiene permiso para hablar con ella.

Por eso las medidas que de verdad importan no están en el HSM, sino alrededor: que los portátiles del equipo no tengan un camino directo a servicios críticos, que un sistema de firma no firme cualquier cosa que le llegue sin límites de cantidad ni aprobaciones adicionales, y que un movimiento de miles de millones en veinte minutos dispare alarmas que paren algo. Todavía no sabemos cuál de esas barreras faltaba o falló. El análisis técnico que ha prometido Binance debería aclararlo.

Fuente: North Korea Steals USD 6.36 Billion From Binance in the Largest Hack in History, TRM Labs. Más contexto en CoinDesk, NBC News y Al Jazeera.