domingo, 2 de agosto de 2026
Policial

Vulnerabilidad en dispositivo Coldcard expone potencial pérdida de aproximadamente 1.400 bitcoines

El 30 de julio, un atacante robó 1.196 direcciones de Bitcoin en 41 minutos, sustrayendo 1082,65 BTC, con un valor aproximado de 70,2 millones de dólares en ese momento. Galaxy Research mapeó el ataque y lo relacionó con una vulnerabilidad en el firmware de Coldcard, la billetera de hardware exclusiva para Bitcoin fabricada por la empresa canadiense Coinkite.

Galaxy Research ha identificado dos oleadas adicionales de robos presuntamente relacionados con Coldcard, elevando su estimación observada a 1.367,05 BTC, con un valor aproximado de 88,6 millones de dólares, en 4.585 direcciones.

Las billeteras vaciadas utilizaban varios formatos de direcciones de Bitcoin, principalmente SegWit nativo. Varias generaciones de Coldcard podrían estar afectadas, en particular las Mk2, Mk3, Mk4, Mk5 y Q, según el firmware utilizado en el momento de la creación de la semilla.

De acuerdo con un análisis en profundidad de Galaxy Research, el robo principal se desarrolló en una oleada muy bien coordinada que duró unos 25 minutos, mientras que un análisis más amplio relacionó posteriormente unas 1.196 direcciones y hasta 1.083 bitcoins, valorados en casi 70 millones de dólares, con una actividad que se prolongó durante aproximadamente 41 minutos. Las cifras definitivas podrían variar a medida que los investigadores continúan rastreando las transacciones en la cadena de bloques pública de Bitcoin.

Las carteras afectadas pertenecían en su mayoría a tituladores a largo plazo que generaron sus semillas de recuperación utilizando dispositivos Coldcard que ejecutaban un firmware vulnerable lanzado a partir de marzo de 2021. Coldcard es una cartera de hardware con aislamiento físico fabricada por la empresa canadiense Coinkite y diseñada para mantener las claves de bitcoin aisladas de los dispositivos conectados a Internet.

Según Block, un atacante que pueda determinar o restringir suficientemente el UID del dispositivo, el estado del temporizador y el historial de llamadas al RNG puede reproducir secuencias de salida candidatas sin conexión, sin necesidad de acceder al dispositivo. Las semillas candidatas se pueden verificar derivando sus direcciones y comparándolas con los datos públicos de la cadena de bloques.

Coinkite lanzó un firmware de emergencia para todos los modelos y versiones afectados el 31 de julio, pero su instalación no repara las semillas existentes. Coinkite recomienda a los usuarios con semillas expuestas que generen una nueva con el firmware parcheado y transfieran sus criptomonedas. Restaurar la semilla antigua en un firmware actualizado o en otra billetera perpetúa la vulnerabilidad. Ningún informe público ha logrado reconstruir la semilla de una víctima y asociarla a una dirección drenada.

Block rastreó el fallo hasta la configuración de producción de Coldcard. El hardware de Coldcard tiene un generador de números aleatorios por hardware en su chip STM32. Coldcard usa un chip llamado TRNG, que funciona como un generador de números verdaderamente aleatorios basado en ruido eléctrico.

Sin embargo, un desastre de firmware introducido en marzo de 2021 causó problemas. Los equipos de Coinkite decidieron usar su propio envoltorio para el generador de hardware y definieron la macro MICROPY_HW_ENABLE_RNG como 0 en la configuración de producción. El problema es que la librería criptográfica encargada estaba programada para revisar si la macro existía, no si estaba activada. Como la macro existía aunque valiera cero, la librería ignoró por completo el generador de hardware de Coinkite y recurrió silenciosamente a Yasmarang, un generador de números pseudoaleatorios por software que viene con MicroPython, que inicializó el generador usando el número de serie único del chip y un estado del reloj interno, sin más entropía fresca.

Normalmente una semilla tiene entre 128 y 256 bits de entropía. Con la falla, la entropía cayó a solo 40 bits. El universo de opciones se redujo a poco más de un billón de combinaciones. Para una computadora moderna ejecutando un script, probar un billón de opciones le toma minutos o pocas horas. Los atacantes generaron por código todas las posibles semillas que la Coldcard defectuosa podía crear y derivaron las direcciones públicas de Bitcoin de esas semillas. Luego, dejaron bots escaneando la blockchain en busca de esas direcciones.

Coinkite publicó avisos de seguridad y corrigió el firmware tras darse cuenta de la amenaza activa. La empresa indicó que los usuarios que generaron semillas en el firmware afectado deben crear una semilla completamente nueva utilizando una versión corregida y transferir sus bitcoins a direcciones controladas por dicha semilla.

No basta con instalar la actualización. Una semilla creada en el sistema defectuoso seguirá siendo vulnerable de forma permanente, ya que la actualización del firmware no puede añadir aleatoriedad a las palabras que ya existen.

La exposición depende del firmware que se ejecutaba cuando se creó la semilla, no de la versión instalada actualmente. Para Mk2 y Mk3, Coinkite enumera las versiones 4.0.1 a 4.1.9 de Mk3, corregidas en la versión 4.2.0. Para Mk4 y Mk5, cualquier versión anterior a la 5.6.0. Para Q, cualquier versión anterior a la 1.5.0Q. Para versiones Edge, anteriores a la 6.6.0X para Mk4 y Mk5, anteriores a la 6.6.0QX para Q.

Nadie ha identificado al atacante. Galaxy, que mapeó el barrido de 1196 direcciones, afirmó no haber encontrado otras transacciones de Bitcoin en los 30 días anteriores con la misma firma de 30 sat/vB sin cambios. Advirtió que el patrón identifica al operador, no al robo, porque un barrido «se ve igual que si un propietario de criptomonedas decidiera transferir monedas».

Galaxy indicó que las oleadas 1 y 2 podrían compartir operador, según sus patrones de transacción, pero advirtió que no se debe asumir que la oleada 3 involucre al mismo atacante. Galaxy también advirtió que sus hallazgos se basan en análisis en cadena y que no ha confirmado computacionalmente que todas las direcciones identificadas se generaron con entropía Coldcard débil.

Galaxy afirmó que la actividad continúa y que ha informado a investigadores federales, empresas de cumplimiento normativo e investigadores de ciberseguridad sobre aproximadamente 600 direcciones IP sospechosas controladas por atacantes.

Una semilla de monedero de Bitcoin es un secreto, que suele mostrarse como 12 o 24 palabras, a partir del cual el monedero genera sus direcciones y claves privadas. Una semilla de 12 palabras generada correctamente contiene 128 bits de entropía, una medida técnica que describe un número enorme de combinaciones posibles y que hace que adivinar la semilla sea prácticamente imposible.

Se suponía que los dispositivos Coldcard obtenían esa aleatoriedad de un generador de números aleatorios por hardware integrado en el microcontrolador del dispositivo. Este componente se basa en el ruido eléctrico físico, que un observador externo no debería poder predecir.

Sin embargo, durante una migración de bibliotecas de software en 2021, Coinkite reveló que se produjo una confusión entre dos funciones de números aleatorios con interfaces coincidentes. Una de ellas accedía al generador de hardware propio del dispositivo. La otra era una solución alternativa de software poco segura, destinada a placas que carecían del hardware adecuado.

Un parámetro de configuración desactivaba la ruta de hardware predeterminada de MicroPython, ya que Coinkite proporcionaba su propio envoltorio de hardware. El software solo comprobaba si ese parámetro existía, no si estaba activado. Dado que el parámetro estaba presente pero tenía asignado un valor de cero, la compilación se completó con éxito, mientras que la generación de semillas se desplazó silenciosamente al generador de software más débil.

Coinkite estima una entropía efectiva de aproximadamente 40 bits en el Mk3 y de unos 72 bits en los Mk4, Mk5 y Q, frente a los 128 bits de una semilla BIP-39 de 12 palabras. Block no proporciona una cifra práctica, pero establece límites máximos condicionales y advierte sobre limitaciones en la seguridad criptográfica.

Si su semilla se generó en una Mk2 o Mk3 con firmware 4.0.1 a 4.1.9 sin al menos 50 tiradas de dados independientes y privadas, debe actualizar la Mk2 o Mk3 a la versión de firmware 4.2.0 o posterior antes de generar una semilla nueva. Luego, genere una semilla completamente nueva en la COLDCARD actualizada. Registre y verifique la nueva copia de seguridad, la huella digital de la billetera y una dirección recibida. Envíe una pequeña transacción de prueba antes de transferir los fondos restantes. Conserve la copia de seguridad anterior hasta que la migración se complete y confirme. Proceda con calma y verifique cada paso.

Esta revelación se produce tras la investigación de Coinspect sobre Ill Bloom a principios de julio, que reveló una vulnerabilidad de PRNG débil en monederos de software antiguos vinculada a más de 5 millones de dólares sustraídos de direcciones de Bitcoin, Ethereum, Tron, Rootstock y Polygon desde mayo.

Con Información de blog.segu-info.com.ar

Editor

Redacción.

Deja tu comentario