Usuarios de Coldcard víctimas del ataque silencioso que ha sacudido la autocustodia de bitcoin

Usuarios de Coldcard víctimas del ataque silencioso que ha sacudido la autocustodia de bitcoin

En el universo de la autocustodia de Bitcoin (BTC), existe una máxima no escrita que los usuarios más celosos repiten como un mantra: «si tus claves privadas nunca han tocado un ordenador conectado a internet, tus fondos están a salvo».

Durante casi una década, la firma canadiense Coinkite y su emblemática billetera de hardware Coldcard representaron la cima de este dogma, ya que era considerada el estándar de oro por los perfiles más técnicos de la industria. De hecho, la Coldcard prometía aislamiento total del mundo cibernético y ese era su fuerte.

Sin embargo, entre el 30 de julio y el primero de agosto, esa fortaleza inexpugnable se desmoronó sin que se disparara una sola alarma física porque un vector de ataque ejecutado a cientos de kilómetros de distancia logró vaciar más de 88 millones de dólares en Bitcoin (hasta ahora) sin necesidad de manipular un solo dispositivo.

El incidente, mapeado minuciosamente por las firmas de análisis Galaxy Research y Block, no fue el resultado de un hackeo sofisticado al elemento seguro del hardware ni de una brecha en la red de Bitcoin.

Fue algo mucho más sutil y devastador, lo que se puede calificar cómo un fallo sistémico en la generación de aleatoriedad del software que convirtió las frases semilla de miles de usuarios en secuencias matemáticas predecibles.

El principio fundamental del almacenamiento en frío radica en dos premisas independientes pero interconectadas, siendo la primera de ellas, el mantener la clave privada lejos de Internet y los intrusos externos.

La segunda premisa, y más crítica, es garantizar que la clave elegida al configurar el dispositivo sea producto de un número tan sumamente aleatorio que a cualquier supercomputadora le tome “eones” adivinarlo, pero aquí fue dónde falló las billeteras de Coldcard.

De acuerdo con las investigaciones técnicas publicadas tras el incidente, el germen de la crisis se remonta a marzo de 2021, cuando durante una modificación en el firmware de producción, se introdujo una inconsistencia en las macros de compilación de MicroPython (MICROPY_HW_ENABLE_RNG).

Para comprender mejor, MicroPython es una implementación optimizada e ingeniosa del lenguaje de programación Python 3, escrita en C y diseñada específicamente para ejecutarse en microcontroladores y entornos con recursos muy reducidos (con apenas unos pocos kilobytes de RAM y espacio de almacenamiento flash).

Dispositivos como la Coldcard utilizan MicroPython porque permite desarrollar la lógica del monedero (menús, interfaz, manipulación de transacciones, formatos de archivos) en un lenguaje de alto nivel, cómodo y legible, mientras que las operaciones críticas de bajo nivel interactúan directamente con el hardware del chip en C.

Coinkite implementaba su propio controlador envolvente para activar el generador de números aleatorios por hardware (RNG) del microcontrolador STM32. Sin embargo, una biblioteca interna comprobaba la mera presencia de la definición en lugar de su estado de activación.

El resultado fue catastrófico, porque el sistema derivó silenciosamente la generación de entropía a un mecanismo secundario de software conocido como Yasmarang, por lo que, en lugar de recopilar entropía física continua, este generador se inicializaba utilizando únicamente el identificador único del chip (UID) y los registros del temporizador interno en el momento del arranque.

En términos sencillos, el abanico de combinaciones posibles para las frases semilla de 12 o 24 palabras se redujo drásticamente. En los modelos más recientes, la entropía efectiva cayó de los 128 bits criptográficos esperados a tan solo 40 o 72 bits, haciéndolo vulnerable.

De allí que, lo que debía ser un universo inconmensurable de opciones se convirtió en un catálogo finito de unos 4.000 millones de combinaciones, permitiendo que para un ordenador moderno configurado para calcular funciones hash a gran velocidad, probar 4.000 millones de posibilidades es una tarea que requiere apenas un puñado de horas o minutos, haciendo uso de potentes GPU.

Es por ello, que el atacante no necesitó vulnerar la red de Bitcoin ni infectar los ordenadores de las víctimas, tan sólo bastó con reconstruir el algoritmo defectuoso, generar las semillas candidatas fuera de línea (off-chain), derivar sus correspondientes direcciones públicas y cruzarlas contra el historial transparente de la cadena de bloques.

En consecuencia, el 30 de julio, el atacante ejecutó la primera fase de la operación. En apenas 41 minutos, vació 1.196 direcciones de Bitcoin, obteniendo un botín inicial de 1.082 BTC (unos 70,2 millones de dólares).

La estrategia demostró una planificación operativa previa, ya que el script atacó primero las carteras con saldos más abultados, llegando a sustraer hasta 30 millones de dólares en los primeros diez minutos.

 


En los días posteriores, las investigaciones de Galaxy Research revelaron dos oleadas adicionales, elevando la cifra total observada a 4.585 direcciones comprometidas y un acumulado de 1.367,05 BTC (aproximadamente 88,6 millones de dólares).

El comportamiento del atacante tras el robo ha sido igualmente metódico, porque en lugar de intentar liquidar masivamente los fondos en plataformas centralizadas o utilizar mezcladores de inmediato, ha consolidado la mayor parte del botín en un grupo reducido de monederos, manteniendo los fondos intactos mientras evalúa sus rutas de salida.

La respuesta de Coinkite fue inmediata al publicar actualizaciones de firmware de emergencia para toda la gama de dispositivos afectados (modelos Mk2, Mk3, Mk4, Mk5 y Q), de acuerdo a lo que explicó la firma en su Aviso de Seguridad publicado en su Blog.

No obstante, el aviso oficial de la compañía subraya que la actualización del firmware corrige el generador para la creación de futuras carteras, pero no repara ni fortalece una frase semilla que ya fue generada con el código defectuoso, lo que es importante tener presente.

Importar esa misma semilla vulnerada a otro dispositivo —ya sea una Coldcard actualizada, una Trezor o una Ledger— no neutraliza el riesgo, porque si la clave semilla original reside dentro del conjunto de combinaciones calculables por el atacante, los fondos asociados siguen expuestos de forma permanente.

La única solución definitiva exige generar una frase semilla totalmente nueva bajo el firmware parcheado y realizar la migración manual de los fondos a la nueva dirección. Ahora bien, dentro de la tragedia, el incidente dejó lecciones operativas sobre la seguridad multicapa.

Aquellos usuarios que al momento de configurar su Coldcard agregaron entropía manual mediante el lanzamiento físico de dados (aportando 50 o más tiradas independientes) mantuvieron sus carteras a salvo, ya que la aleatoriedad física aportada por el usuario compensó el fallo del software.

De igual forma, el uso de contraseñas adicionales (Passphrases BIP-39) complejas o esquemas de multifirma (multisig) integrados con dispositivos de otros fabricantes evitó la reconstrucción directa de los accesos.

El ciberataque a Coldcard marca un hito amargo en la historia de la custodia de activos digitales ya que la vulnerabilidad demostró que la seguridad del almacenamiento en frío es una cadena donde el eslabón más débil no siempre es la conectividad a la red, sino la confianza ciega en la generación interna de aleatoriedad.

Para la comunidad de Bitcoin y los medios especializados, este suceso no solo reabre el debate sobre la necesidad de auditorías de código abierto más rigurosas y la verificación independiente de entropía, sino que obliga a replantear los protocolos de gestión de riesgo personal.

No obstante, la autocustodia sigue siendo el pilar fundamental de la soberanía financiera, pero sucesos como este recuerdan con dureza que, en el ámbito de la criptografía, la frontera entre la seguridad absoluta y el desastre técnico a menudo depende de una sola línea de código.

Advertencia "La inversión en criptoactivos no está regulada, puede no ser adecuada para inversores minoristas y perderse la totalidad del importe invertido"