Cuando los números aleatorios ya no son aleatorios: la verdad detrás del robo de 120,000 BTC

Fuente original: Max He@Safeheron Lab

Recientemente, la comunidad de criptomonedas ha estado discutiendo ampliamente una noticia de gran impacto: se sospecha que las agencias de aplicación de la ley de EE. UU. han adquirido las claves privadas de aproximadamente 120,000 bitcoins de la misteriosa transferencia de 2020, valoradas en hasta 15,000 millones de dólares. Según un informe de Elliptic, estos activos estaban inicialmente relacionados con el grupo de minería Lubian.com, y luego fueron oficialmente confiscados por el Departamento de Justicia de EE. UU. Se especula ampliamente que las agencias de aplicación de la ley pueden haber aprovechado una falla en el número aleatorio utilizado al generar las billeteras para reconstruir o apoderarse de las claves privadas, y hay opiniones que sugieren que se trata de una operación de piratería técnica liderada por el gobierno de EE. UU.

Esta noticia provocó una fuerte conmoción en toda la industria de las criptomonedas, convirtiéndose rápidamente en un tema central de discusión. No solo generó un amplio debate en términos de tecnología y seguridad, sino que también suscitó nuevas preocupaciones entre los inversores sobre la fiabilidad de los activos criptográficos y la prevención de riesgos. Este artículo abordará el evento y sus raíces de seguridad desde una doble perspectiva técnica y fáctica, analizando en profundidad los detalles técnicos clave, revisando de manera integral la evolución del evento y explorando sus posibles impactos profundos.

Números aleatorios y seguridad de las claves privadas: la línea de vida del mundo blockchain

En el mundo de la blockchain, los números aleatorios son considerados la piedra angular de la seguridad criptográfica. Cada clave privada de un monedero de Bitcoin o Ethereum se genera a partir de un número aleatorio; una vez que el número aleatorio carece de suficiente “aleatoriedad”, los hackers pueden predecir la clave privada y, por lo tanto, robar directamente los activos digitales. Para evitar eficazmente este riesgo, los monederos deben utilizar generadores de números aleatorios seguros criptográficamente (CSPRNG) para garantizar que los números aleatorios generados sean verdaderamente impredecibles e irrepetibles.

Las carteras que dependen de algoritmos aleatorios inseguros pueden parecer funcionar normalmente a simple vista, pero en realidad esconden riesgos: una vez que se predice con éxito la aleatoriedad, la pérdida de activos se vuelve irreversible.

Repetición de la historia: Lecciones de múltiples eventos de seguridad importantes

Entre 2022 y 2023, varios incidentes de seguridad significativos causados por la misma vulnerabilidad de números aleatorios fueron revelados, exponiendo plenamente la gravedad y la amplitud de este problema.

Evento de seguridad 1: la dolorosa lección de Wintermute tras perder 160 millones de dólares

El 20 de septiembre de 2022, el conocido creador de mercado Wintermute sufrió un grave incidente de seguridad, con aproximadamente 160 millones de dólares en activos digitales robados. Los atacantes aprovecharon astutamente la vulnerabilidad de la herramienta de generación de direcciones Profanity, que en algunas de sus aplicaciones depende de Mersenne Twister (MT19937) como fuente de números pseudoaleatorios para generar “direcciones atractivas”.

Debido a que la salida de MT19937 es predecible en ausencia de una inyección de entropía suficiente, un atacante puede reproducir parte del proceso de generación de direcciones/claves privadas, logrando así calcular la clave privada correspondiente y transferir fondos. Este caso se convierte en el primer evento emblemático en la historia de las criptomonedas en el que un monedero institucional fue comprometido debido al mal uso de números aleatorios, marcando la evolución del problema de la aleatoriedad de un simple descuido del desarrollador a un riesgo de seguridad sistémico.

zFxMzJ8scYA8LqmIuqxhaAMB8wwmtd8gVvhIthv8.jpeg

Sobre este ataque, Safeheron analizó en detalle las técnicas de ataque y reprodujo el proceso del ataque.

Incidente de seguridad 2: Crisis de confianza provocada por una vulnerabilidad de números aleatorios en Trust Wallet

En abril de 2023, investigadores de seguridad descubrieron que la versión de extensión del navegador Trust Wallet (versiones 0.0.172–0.0.182) utilizaba una función aleatoria no criptográficamente segura para generar las frases de recuperación de la billetera, que también dependía del algoritmo de números aleatorios pseudoaleatorios Mersenne Twister (MT19937) (como se muestra en la imagen a continuación), con un espacio aleatorio de solo aproximadamente 2^32 posibilidades, muy por debajo de lo necesario para resistir ataques de fuerza bruta.

Los atacantes pueden enumerar todas las combinaciones posibles de palabras clave en un tiempo limitado, lo que les permite reconstruir la clave privada y robar los activos de los usuarios. Trust Wallet publicó posteriormente un anuncio, confirmando oficialmente la existencia de la vulnerabilidad y advirtiendo urgentemente a los usuarios afectados que migraran sus activos a tiempo. Según la declaración oficial del foro de la comunidad del proyecto, esta vulnerabilidad ha causado una pérdida potencial de aproximadamente 170,000 dólares, ya que los atacantes pudieron haber utilizado con éxito esta vulnerabilidad para llevar a cabo ataques dirigidos.

X1IA68D6xKfdDmtZLF6JF0tru2PIfNgd98oGCFYJ.jpeg

Este evento se convirtió en el primer caso de una vulnerabilidad de número aleatorio que afecta a los usuarios finales de billeteras principales, y también hizo que el problema de la “seguridad de los números aleatorios” atrajera una atención pública masiva por primera vez.

Evento de seguridad 3: Libbitcoin Explorer (bx seed) evento de números aleatorios débiles

En agosto de 2023, el equipo de investigación de seguridad Distrust anunció que había descubierto una grave vulnerabilidad de números aleatorios en la herramienta de línea de comandos Libbitcoin Explorer (bx) versión 3.x. Esta herramienta utiliza el generador de números pseudoaleatorios Mersenne Twister (MT19937) internamente al ejecutar el comando bx seed para generar la semilla del monedero, y solo utiliza la hora del sistema como fuente de semilla, lo que resulta en una baja aleatoriedad y una salida predecible. Un atacante podría enumerar todos los valores de semilla en un tiempo limitado, reconstruir la clave privada del monedero y robar activos directamente.

u4KBm4P8ULfEoyCB0AJK8AO3UPhy2ELXZcFmxJsQ.jpeg

La vulnerabilidad afecta a todos los usuarios que generan billeteras utilizando Libbitcoin Explorer 3.x, así como a las aplicaciones relacionadas que dependen de la biblioteca libbitcoin-system 3.6. Hasta agosto de 2023, se han robado más de 900,000 dólares en activos de criptomonedas debido a esta vulnerabilidad. Tras la divulgación de la vulnerabilidad, fue registrada formalmente como CVE-2023-39910.

A pesar de que Libbitcoin-explorer ya ha aplicado los parches de seguridad correctos a tiempo, las cosas no han terminado ahí.

Gran iceberg que emerge del agua

Después de la divulgación de un incidente de seguridad en Libbitcoin Explorer 3.x, un grupo de investigadores de “sombrero blanco” liderado por el equipo Distrust estableció el proyecto MilkSad, que continúa rastreando el impacto de la vulnerabilidad y fomentando la respuesta de la comunidad.

Para 2024, los investigadores han sistematizado por primera vez los mecanismos de generación de estas “carteras débiles”, los tipos de carteras y la configuración de los generadores de números pseudoaleatorios (PRNG), y han revelado las posibles conexiones entre ellos y el grupo de minería de Bitcoin Lubian.com, así como las características de distribución de los fondos relacionados.

En 2025, gracias a una pista clave proporcionada por un investigador anónimo de sombrero blanco, el trabajo de análisis que había estado estancado durante mucho tiempo logró un avance. El equipo de MilkSad descubrió que el software afectado introdujo un nuevo parámetro al generar claves privadas: el desplazamiento PRNG (offset), lo que permitió a los investigadores volver a asociar el grupo de billeteras dispersas anteriormente y revelar un patrón de generación de números aleatorios unificado detrás de todo esto. Este descubrimiento se convirtió en la clave para entender la causa del evento de “billeteras débiles”.

Según un análisis más profundo del equipo, los 2,630 problemas de billeteras descubiertos inicialmente en 2023 son solo la punta del iceberg. Al buscar en diferentes segmentos de la salida de PRNG, los investigadores han reconstruido e identificado con éxito más de 227,200 billeteras independientes (como se muestra en la imagen a continuación), todas las cuales tienen registros de uso válidos en la mainnet, formando el mayor grupo de “billeteras débiles aleatorias” hasta la fecha.

cNOM0XUq9qXdYFAjEWUve8yDBfF4z58rLL9Erikg.jpeg

Los datos en la cadena muestran que este lote de billeteras generadas por un defecto en los números aleatorios posee aproximadamente 137,000 bitcoins (BTC). En solo dos horas el 28 de diciembre de 2020, estas billeteras fueron vaciadas de manera concentrada, con un saldo que cayó de 137,000 a menos de 200, de los cuales aproximadamente 9,500 BTC se enviaron a la dirección de pago del grupo de minería Lubian, mientras que se supone que los restantes 120,000 BTC fueron transferidos a una billetera controlada por los atacantes. Todas las transacciones sospechosas utilizaron la misma tarifa, presentando características evidentes de transferencia automática por lotes.

Se han encontrado nuevas pistas importantes sobre este asunto, lo que confirma aún más la existencia real de este gran incidente de robo. Los investigadores descubrieron en la red principal de Bitcoin que algunas billeteras afectadas todavía tienen actividades de transacción anormales el 3 de julio de 2022 y el 25 de julio de 2024. Estas transacciones incrustaron la misma información a través del mecanismo OP_RETURN:

“MSG de LB. Al hacker ético que está salvando nuestro activo, puedes contactarnos a través de 1228btc@gmail.com para discutir el retorno del activo y tu recompensa.”

Los investigadores especulan que “LB” podría representar Lubian.com, mientras que “saving our asset” podría referirse al evento de transferencia masiva de fondos del 28 de diciembre de 2020. Estas noticias fueron transmitidas múltiples veces a diferentes direcciones, y parece que Lubian está intentando establecer contacto con los “hacker éticos” que controlan los activos, discutiendo un intento público de devolución de activos y recompensas.

Sin embargo, debido a que las claves privadas de estas billeteras ya han estado en estado de filtración, teóricamente cualquier persona podría iniciar transacciones o escribir mensajes desde estas direcciones, por lo que actualmente no se puede confirmar con certeza si esta información proviene realmente del equipo de Lubian, o si se trata de una operación engañosa o de una broma.

Hasta aquí, el núcleo del iceberg finalmente ha salido a la superficie: esta falla sistémica provocada por un defecto en el número aleatorio se ha convertido en uno de los eventos de seguridad más grandes y de mayor impacto en la historia de Bitcoin.

Detalles técnicos: Proceso completo para romper 220,000 wallets de BTC a la fuerza

Entonces, ¿cómo se generaron estas 220,000 billeteras BTC de baja aleatoriedad? Presentemos en detalle el proceso técnico específico de búsqueda.

Primer paso: seleccionar el mismo generador de números aleatorios pseudoaleatorios (PRNG) MT19937 para generar números aleatorios. Una vez más, enfatizo que este PRNG carece completamente de seguridad criptográfica.

Paso dos: Inicializar MT19937 con una semilla de entropía extremadamente baja (0-2^32-1). Estas claves privadas de billetera BTC pueden ser deducidas tan rápidamente; la semilla de baja entropía es el mayor culpable.

Tercer paso: MT19937 genera un entero de 32 bits en cada ronda, pero no se utiliza todo, solo se eligen los 8 bits más altos, lo que significa que en cada ronda MT19937 obtendrá un byte.

Paso 4: Introducir la característica OFFSET para ampliar el rango de claves privadas. Es importante saber que la semilla de clave privada en BTC es de 32 bytes (equivalente a 24 palabras mnemotécnicas, es decir, 256 bits), estos 32 bytes se obtienen desde la ronda (32* OFFSET) hasta la ronda (32 * OFFSET + 31), generando así la semilla de clave privada BTC. Es importante recordar que la semilla de clave privada en BTC es de 32 bytes, específicamente:

(1) Rondas 0 a 31, salida de la clave privada de 32 bytes.

(2) Rondas 32 a 63, salida de la clave privada de 32 bytes.

(3) Rondas del 32 * 2 al 95, salida de una clave privada de 32 bytes.

(4) De manera similar, OFFSET puede alcanzar un máximo de 3232.

Paso 5: Sobre la base de la semilla de la clave privada, utiliza el algoritmo de derivación de billetera BIP32 público, aplicando la ruta de derivación m/49'/0'/0'/0/0 para derivar el par de claves públicas y privadas.

Paso seis: Generar una dirección de billetera del tipo P2WPKH-nested-in-P2SH con un prefijo de 3, basada en la subclave pública.

Paso siete: Si la dirección generada tiene registros de uso en la cadena, significa que se ha encontrado con éxito una billetera de número aleatorio débil, registre la dirección de la billetera y la clave privada correspondiente.

Todo el proceso de búsqueda anterior es determinístico, la única variable es la elección de la semilla de baja entropía, que tiene 2^32 posibilidades, lo cual es mucho menor que el espacio de claves privadas estándar de BTC de 2^256. Por lo tanto, se pueden obtener todos los 220,000 monederos débiles aleatorios y sus claves privadas correspondientes mediante búsqueda de fuerza bruta.

La historia completa

Vamos a repasar completamente el desarrollo de todo el evento.

Hace varios años (puede remontarse a 2018), algunos proyectos de activos digitales introdujeron incorrectamente generadores de números pseudoaleatorios (PRNG) que no contaban con la seguridad criptográfica necesaria durante el desarrollo, aplicándolos a la generación de claves privadas de billetera, que es un proceso extremadamente sensible. Debido a la falta de comprensión de la seguridad criptográfica por parte de los desarrolladores en ese momento, este error no fue detectado, sembrando así riesgos de seguridad para las vulnerabilidades a gran escala que vendrían después.

Desafortunadamente, con el tiempo, este problema fue descubierto y explotado maliciosamente por los hackers. Diferentes grupos de ataque lanzaron varios ataques notorios basados en el mismo principio, incluyendo el robo de Wintermute, el incidente de vulnerabilidad de números aleatorios de Trust Wallet, y el incidente de la billetera débil de Libbitcoin, entre otros. Estos ataques resultaron en pérdidas de activos de cientos de millones de dólares, y convirtieron el “seguridad de números aleatorios”, un detalle técnico que originalmente se ignoraba, en un enfoque central de la industria.

Los investigadores, al analizar las similitudes de estos eventos, descubrieron que todas las billeteras afectadas presentaban defectos de aleatoriedad similares, que se remontan a un incidente de robo en el grupo de minería Lubian ocurrido anteriormente. Después de un estudio exhaustivo, confirmaron que las billeteras utilizadas por Lubian también dependían de un mecanismo de generación de números aleatorios no seguro, formando parte de este grupo de «billeteras débiles». Un análisis sistemático posterior reveló un hecho aún más sorprendente: hay aproximadamente 220,000 billeteras débiles aleatorias en toda la red, involucrando un total de 120,000 BTC, constituyendo el evento de seguridad de números aleatorios más grande y de mayor impacto hasta la fecha.

En cuanto a la afirmación que circula en el exterior de que “el Departamento de Justicia de EE. UU. lideró el robo de Lubian.com”, proviene principalmente de un hecho sutil: durante el proceso en el que el Departamento de Justicia intervino oficialmente en la gestión de los activos relacionados, las direcciones de Bitcoin asociadas a Lubian, que habían estado en estado de inactividad durante mucho tiempo, de repente experimentaron una gran transferencia de activos. La coincidencia temporal de esta transferencia con la intervención del gobierno generó sospechas entre muchos observadores, quienes creen que el gobierno podría haber utilizado métodos de fuerza para recuperar las claves privadas relacionadas. También existe otra posibilidad: el gobierno de EE. UU. no ha descifrado directamente las claves privadas mediante la fuerza, sino que ha controlado a las personas o entidades que poseen dichas claves, facilitando así la transferencia de fondos.

A pesar de que este lote de billeteras pertenece a billeteras de baja aleatoriedad que pueden ser vulnerables, y que sus claves privadas teóricamente pueden ser reproducidas mediante medios técnicos, hasta la fecha no existe ninguna evidencia pública y verificable que indique que el gobierno de Estados Unidos ha liderado una acción de “fuerza bruta” contra las claves privadas correspondientes. A menos que las instituciones relevantes reconozcan formalmente el hecho de la intervención técnica, el verdadero proceso detrás de todo el evento seguirá envuelto en el misterio.

¿Cómo obtener números aleatorios seguros desde el punto de vista criptográfico?

Hoy en día hemos reconocido la importancia de los números aleatorios seguros, ¿cómo debemos obtenerlos correctamente en el desarrollo y la aplicación práctica? Debemos seguir los siguientes principios:

(1) Utilizar preferentemente las interfaces de seguridad proporcionadas por el sistema operativo para generar números aleatorios basados en el pool de entropía del sistema.

(2) Utilizar fuentes de entropía de hardware seguras, como las instrucciones de números aleatorios de hardware del CPU Intel SGX, cuando se cumplan las condiciones.

(3) En el escenario de MPC, se pueden fusionar múltiples fuentes de entropía para mejorar la seguridad general, por ejemplo, combinando el pool de entropía del sistema Linux con el generador de números aleatorios de hardware de la CPU Intel SGX, evitando así el riesgo de que una única fuente de entropía falle o sea predecible.

(4) Utilizar interfaces de generación de números aleatorios seguros de bibliotecas criptográficas ampliamente verificadas, como libsodium, BoringSSL, OpenSSL, etc.

(5) Garantizar que la entropía de la semilla sea de al menos 128–256 bits, prohibiendo el uso de fuentes de baja entropía como marcas de tiempo, números de proceso, etc. como semilla.

(6) Está estrictamente prohibido el uso de generadores de números aleatorios pseudorrandómicos que no sean seguros desde el punto de vista criptográfico (no CSPRNG), como Mersenne Twister (MT19937), Math.random(), rand().

Ventajas de la fusión de múltiples fuentes de entropía en MPC

En comparación con los sistemas unilaterales, MPC tiene una ventaja natural en la fusión de entropía: cada participante puede proporcionar de forma independiente una fuente de entropía aleatoria, y el resultado aleatorio final es generado conjuntamente por todas las partes. Siempre que cualquiera de las partes mantenga la honestidad, la aleatoriedad del sistema no podrá ser predecible ni manipulada. Esta estructura de aleatoriedad de múltiples fuentes mejora significativamente la seguridad general del sistema y su resistencia a la manipulación, siendo una de las ventajas centrales del protocolo MPC en términos de seguridad.

Safeheron ha construido un protocolo de custodia segura de activos digitales basado en tecnologías MPC y TEE. En esta solución, las partes participantes del protocolo MPC utilizan diversas fuentes de entropía de seguridad independientes, incluyendo el pool de entropía del sistema Linux y fuentes de entropía de hardware TEE (como las instrucciones de números aleatorios de hardware Intel SGX). Este mecanismo de fusión de entropía de múltiples fuentes no solo refuerza el límite de seguridad del sistema, sino que también establece una base de seguridad más alta para construir un entorno de ejecución confiable (TEE) y un sistema de firma distribuida.

Conclusión

El aparentemente misterioso evento de “robo de 120,000 bitcoins” no revela una ruptura en algún algoritmo, sino que muestra que los desarrolladores iniciales utilizaron un algoritmo de números aleatorios no seguros desde el punto de vista criptográfico durante el proceso de generación de claves privadas, debilitando así la seguridad de todo el sistema desde su origen.

La seguridad de los activos criptográficos depende en última instancia de la rigurosidad de la implementación criptográfica; cualquier pequeño descuido en la ingeniería puede ser aprovechado con éxito por los piratas informáticos y, en última instancia, decidir el destino de los activos digitales. Solo asegurando la seguridad de los números aleatorios desde la fuente, utilizando fuentes de entropía confiables y bibliotecas criptográficas verificadas, se puede devolver a “aleatorio” su verdadero significado: impredecible e inalterable.

BTC-0.28%
ETH-0.95%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opera con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)