En el dinámico mundo de la criptomoneda, la seguridad es un tema que nunca pasa de moda. Recientemente, un informe publicado por Kaspersky ha sacudido a la comunidad de criptomonedas al revelar una vulnerabilidad crítica que afectó a las carteras calientes (o "hot wallets") entre 2011 y 2015. En este artículo desglosaremos el descubrimiento, explicando su importancia y cómo los usuarios de criptomonedas pueden protegerse en el futuro.
Antes de sumergirnos en el descubrimiento, es crucial entender qué son las carteras calientes. En el mundo de las criptomonedas, una cartera o monedero digital es donde los usuarios almacenan sus activos digitales. Las carteras calientes están conectadas a Internet, lo que facilita transacciones rápidas pero también las hace susceptibles a ataques en línea. Son populares por su conveniencia, pero su seguridad ha sido una preocupación constante.
Te podrá interesar leer: Ataques de Cryptojacking: Protección de Recursos
Para comprender la situación, viajemos al pasado. Los expertos de Unciphered, una empresa especializada en la recuperación de accesos a billeteras criptográficas, hicieron un hallazgo importante. Descubrieron y documentaron una serie de debilidades en la biblioteca JavaScript BitcoinJS, ampliamente utilizada por numerosas plataformas de criptomonedas en línea. Entre estas plataformas se encontraban algunas muy populares, en particular Blockchain.info, que hoy se conoce como Blockchain.com. Este conjunto de vulnerabilidades fue denominado por los investigadores como Randstorm.
Aunque las vulnerabilidades en BitcoinJS se corrigieron en 2014, el problema se extiende más allá. Las billeteras criptográficas creadas con BitcoinJS en la primera década de 2000 pueden ser consideradas inseguras, ya que encontrar sus claves privadas se vuelve más sencillo de lo que debería ser según los estándares de seguridad de Bitcoin.
Te podrá interesar leer: 3 Métodos de Hackers Para Robar Criptomonedas
Los expertos estiman que varios millones de billeteras, con un total de aproximadamente 1.4 millones de BTC, podrían estar en riesgo debido a Randstorm. De estas billeteras en riesgo, entre el 3% y el 5% se consideran vulnerables a ataques reales. Aprovechando el valor aproximado de Bitcoin en el momento de esta publicación, esto se traduciría en un botín total de entre $1,500 y $2,500 millones para aquellos que logren explotar Randstorm con éxito.
Los investigadores afirman que estas vulnerabilidades pueden ser aprovechadas en ataques reales contra las billeteras criptográficas. De hecho, lograron utilizar con éxito estas debilidades para recuperar el acceso a varias billeteras criptográficas creadas en Blockchain.info antes de marzo de 2012. Por razones éticas, no proporcionaron una prueba de concepto del ataque, ya que esto habría expuesto directamente a decenas de miles de billeteras criptográficas al riesgo de robo.
Los investigadores se han puesto en contacto con los servicios de criptomonedas en línea que se sabe que utilizaron versiones vulnerables de la biblioteca BitcoinJS. A su vez, estos servicios han notificado a sus clientes que podrían verse afectados por Randstorm.
Ahora, profundicemos en la naturaleza de estas vulnerabilidades. La seguridad de las billeteras Bitcoin se basa en gran medida en la privacidad de la clave privada. Como en cualquier sistema criptográfico moderno, es esencial que esta clave se mantenga en secreto y sea indescifrable. Para lograrlo, se utilizan números aleatorios de gran longitud.
Sin embargo, es crucial que estos números sean lo más aleatorios posible para garantizar la seguridad de los datos protegidos por la clave privada. Si el número utilizado como clave es predecible, se facilita la labor de un atacante que tenga información sobre el proceso de generación de claves, permitiéndole realizar ataques de fuerza bruta.
Generar números verdaderamente aleatorios no es sencillo, y las computadoras, por su propia naturaleza, no son ideales para esta tarea, ya que tienden a ser predecibles. Por lo tanto, en su lugar, se utilizan números pseudoaleatorios y se recurren a funciones especiales para aumentar la entropía de la generación (la medida de imprevisibilidad).
Te podrá interesar leer: Alerta a Ingenieros de Criptomonedas: Nuevo Malware KandyKorn en macOS
La biblioteca BitcoinJS utilizaba la biblioteca JavaScript Big Number (JSBN), específicamente su función SecureRandom, para obtener números pseudoaleatorios de alta calidad. Como su nombre indica, esta función fue diseñada para generar números pseudoaleatorios adecuados para su uso en criptografía. Para aumentar la entropía, SecureRandom se basaba en la función window.crypto.random del navegador.
Aquí radica el problema: Aunque la función window.crypto.random existía en los navegadores obsoletos de la familia Netscape Navigator 4.x, cuando los servicios web comenzaron a adoptar activamente la biblioteca BitcoinJS, estos navegadores ya estaban desfasados. Además, en los navegadores populares de esa época, como Internet Explorer, Google Chrome, Mozilla Firefox y Apple Safari, la función window.crypto.random simplemente no estaba implementada.
Desafortunadamente, los desarrolladores de la biblioteca JSBN no anticiparon esta falta de compatibilidad ni incluyeron mensajes de error adecuados. Como resultado, la función SecureRandom pasaba por alto el proceso de aumento de entropía y, en última instancia, utilizaba la función de generación de números pseudoaleatorios estándar, Math.random.
Esto es problemático en sí mismo, ya que Math.random no está diseñado para aplicaciones criptográficas. Pero la situación se complica aún más debido a que la implementación de Math.random en los navegadores populares de 2011-2015, en particular Google Chrome, tenía errores que resultaban en una generación aún menos aleatoria de números de lo que se esperaba.
BitcoinJS heredó todos estos problemas de JSBN. Como resultado, las plataformas que utilizaron BitcoinJS para generar claves privadas para billeteras criptográficas obtuvieron números pseudoaleatorios de SecureRandom con menos entropía de la que creían los desarrolladores de la biblioteca. Dado que estas claves se generaban de manera predecible, se volvía más fácil aplicar ataques de fuerza bruta, lo que permitía a los atacantes tomar control de billeteras criptográficas vulnerables.
Podría interesarte leer: Exploit Vacía 60 Millones USD de Wallets de Criptomonedas
Entonces, ¿quiénes están en riesgo? BitcoinJS utilizó la biblioteca JSBN vulnerable desde su introducción en 2011 hasta 2014. Sin embargo, es importante tener en cuenta que algunos proyectos de criptomonedas podrían haber estado utilizando versiones anteriores de la biblioteca durante un tiempo. Además, los errores relacionados con Math.random en los navegadores populares se corrigieron en 2016 al cambiar los algoritmos para generar números pseudoaleatorios. En conjunto, esto establece un período de tiempo aproximado de 2011 a 2015 en el que se crearon las billeteras criptográficas potencialmente vulnerables.
Los investigadores enfatizan que BitcoinJS era muy popular en la primera década de 2000, por lo que es complicado compilar una lista completa de servicios que podrían haber utilizado versiones vulnerables. Su informe proporciona una lista de plataformas que pudieron identificar como en riesgo, pero aún podrían existir otras no identificadas.
Además de las billeteras Bitcoin, las billeteras de Litecoin, Zcash y Dogecoin también podrían estar en riesgo, ya que existen bibliotecas basadas en BitcoinJS para estas criptomonedas. Es razonable suponer que estas bibliotecas también podrían haber sido utilizadas para generar claves privadas para las respectivas billeteras criptográficas.
Como señalan los investigadores, este no es un caso en el que simplemente corregir la vulnerabilidad en el software sea suficiente. "Parchear" las claves privadas de las billeteras y reemplazarlas por otras seguras simplemente no es factible debido a la naturaleza de la vulnerabilidad persistente. Por lo tanto, los propietarios de billeteras vulnerables deben tomar medidas de protección por sí mismos.
Dado que es difícil elaborar una lista completa de plataformas de criptomonedas que utilizaron la biblioteca vulnerable, la precaución es la mejor estrategia. Se recomienda considerar cualquier billetera criptográfica creada en línea entre 2011 y 2015 como potencialmente insegura, a menos que se tenga certeza de lo contrario. Cuanto mayor sea el valor de la billetera, más atractiva será para los delincuentes.
La única solución al problema es crear nuevas billeteras criptográficas y transferir todos los fondos desde las billeteras potencialmente vulnerables. Dado que esta es una tarea necesaria, es aconsejable proceder con precaución máxima. La protección criptográfica es un proceso de múltiples pasos, y se proporciona una lista de verificación completa con información adicional para protegerse adecuadamente:
Investigar las principales amenazas criptográficas y los métodos de protección en detalle.
Comprender las diferencias entre las billeteras criptográficas frías y calientes, y cómo suelen ser atacadas.
Utilizar una billetera de hardware (fría) para el almacenamiento a largo plazo de los activos criptográficos principales y una billetera activa con fondos mínimos para las transacciones diarias.
Antes de transferir todos los fondos de la billetera antigua a la nueva, asegurarse de que todos los dispositivos estén protegidos adecuadamente. Esto incluye proteger los dispositivos contra troyanos que intentan robar contraseñas y claves privadas, así como evitar cortapelos que puedan cambiar las direcciones de las billeteras criptográficas en el portapapeles. También es importante proteger la computadora contra mineros criptográficos maliciosos y el acceso remoto no autorizado.
Nunca guardar una foto o captura de pantalla de la frase inicial en el teléfono inteligente, ni publicarla en servicios de almacenamiento en la nube público, ni enviarla por mensajería o correo electrónico. Solo se debe ingresar en lugares seguros cuando sea necesario para recuperar una clave privada perdida.
Almacenar de manera segura la clave privada y la frase inicial para su recuperación. Esto se puede hacer utilizando una billetera criptográfica fría que no requiera una frase inicial para hacer una copia de seguridad de la clave privada.
En conclusión, la amenaza de Randstorm resalta la importancia de la seguridad en la gestión de activos criptográficos. Los usuarios deben tomar medidas proactivas para asegurar sus inversiones contra vulnerabilidades pasadas y futuras.