Las criptomonedas ya llevan con nosotros más de una década y durante este periodo hemos vivido más de cien hackeos a plataformas de intercambio de criptomonedas y otros servicios relacionados.
La información sobre el ataque a plataformas de criptomonedas no suele ser muy clara. Podemos conocer al responsable del ataque, la fecha y la cifra robada, pero el “cómo” se desconoce. Por un lado, lo que más interesa a los periodistas son las sumas de dinero y, por otro, las víctimas no están dispuestas a divulgar lo sucedido.
Vamos a llenar las lagunas y hablar sobre el funcionamiento de los ataques de criptomonedas, no con la intención de echar un sermón sino para evitar que se repitan.
Phishing y malware: el ataque estándar contra las plataformas de intercambio de criptomonedas
Estas plataformas de intercambio almacenan las criptomonedas y el dinero normal de los usuarios en cuentas de banco convencionales. Para los cibercriminales, tratar con dinero corriente es arriesgado; para escapar con el botín, tendrían que cobrarlo rápidamente antes de que el banco tuviera la oportunidad de congelar las cuentas. Por ello, los cibercriminales suelen optar por las criptomonedas.
Desde fuera, los primeros y posiblemente los únicos hechos que se conocen de un ataque a una plataforma de intercambio de criptomonedas son: (1) que tuvo lugar y (2) que el dinero de los clientes desapareció. Pero ¿qué pasó en realidad? Lo más probable es que se trate de lo siguiente: en primer lugar los atacantes obtienen una lista con los empleados, estudian sus intereses (que aparecen en sus redes sociales) y envían correos electrónicos dirigidos de phishing con cargas maliciosas a quienes consideran más ingenuos. De esta forma los cibercriminales se adentran en la red de intercambio.
Después, investigan acerca de la empresa: con qué regularidad se comunica el contable con el director, qué se envían entre ellos, cómo es la arquitectura de la red interna, dónde se almacenan los monederos de criptomonedas y cómo se protegen. Esta etapa puede ser muy larga, pero con el tiempo consigue que los cibercriminales se adentren en el equipo de un empleado con acceso a sistemas críticos.
Si el sistema automático de intercambio está configurado para enviar criptomonedas, con derechos de administrador los cibercriminales pueden enviarse criptomonedas a sí mismos. Parece que el ataque reciente contra Binance, la plataforma de intercambio de criptomonedas, podría haberse desarrollado siguiendo esta misma estrategia.
Incidente: ataque a Binance, la plataforma de intercambio de criptomonedas
Fecha: 7 de mayo del 2019
Cantidad robada: 40,000,000 dólares (7,000 bitcoins)
Ataques dirigidos: cómo mantenerse protegido
Si tu empresa es una plataforma de intercambio de criptomonedas, entonces deberás garantizar que el costo de un ataque exceda la ganancia potencial multiplicada por la probabilidad de éxito. De ahí la necesidad de poner en práctica estos consejos para evitar ser víctima de ataques de criptomonedas:
- Capacitar al personal en competencias informáticas básicas (por ejemplo, no abrir un currículum en formato DOC).
- Utilizar una solución de seguridad contra los ataques dirigidos. Preferiblemente una solución de seguridad que no solo proteja contra las amenazas de un nodo en específico, sino que también busque anomalías en la organización.
- Solicitar un examen de penetración (mediante el cual unos expertos de seguridad intenten penetrar y navegar por tu sistema para poder informarte posteriormente sobre los puntos débiles).
Doble gasto: robar un cajero automático de Bitcoin con un teléfono
Otra forma de robar bitcoins ha emergido en forma de cajero automático. La gente suele utilizar los cajeros automáticos simplemente para retirar dinero de (o ingresar a) sus cuentas bancarias existentes, pero un cajero de Bitcoin también concede la posibilidad de comprar y vender criptomonedas.
Para ejecutar una estafa de bitcoin mediante un cajero automático, el usuario podría utilizar la máquina para vender bitcoins, recibir una cantidad en efectivo y cancelar las transacciones. Aunque parezca muy obvio, en el corto plazo que llevan establecidos 45 cajeros de criptomonedas en Canadá, los ladrones ya se han hecho con 200,000 dólares gracias a ellos.
¿Cómo es posible? Como sabes, la información de la cadena de bloques se almacena en bloques, de ahí su nombre. Una transacción como “Enviar 1 BTC a John” no se escribe inmediatamente en el bloque, primero se pone en cola y un nuevo bloque se crea cada 10 minutos. Cualquier transacción sin confirmación la eliminará de la cola el creador del bloque. Cabe remarcar que no hay suficiente espacio en el bloque para todas las transacciones, por lo que se da prioridad a las más elevadas (que el creador del bloque se encarga de retener).
Aunque parezca mentira, los desarrolladores que trabajaron en los cajeros automáticos no les enseñaron a esperar a que las transacciones se escribieran en la cadena de bloques antes de entregar el dinero.
Otro detallito: al principio Bitcoin no permitía la cancelación de las transacciones en cola, lo que a menudo generaba que se quedaran colgadas en el sistema transacciones con pequeñas cantidades durante varios días antes de su eliminación. Para resolver este problema, Bitcoin añadió un nuevo mecanismo de remplazo de transacción que permite que una transacción en espera se remplace por otra, normalmente para aumentar la comisión y forzar la transacción. Pero este mecanismo también permite cambiar el destinatario, enviando los bitcoins de vuelta al emisor.
Llamarlo una vulnerabilidad es poco. Era llana imprudencia. Y esto es lo que generó:
Incidente: hackeo de cajeros automáticos de Bitcoin
Fecha: septiembre del 2018
Cantidad robada: 200,000 dólares
Hackeo de doble gasto: cómo mantenerse protegido
Después del robo del dinero, la empresa encargada de los cajeros automáticos cambió sus máquinas para incorporar un tiempo de espera. Ahora los usuarios tienen que volver al cajero automático para recibir su dinero después de que los bitcoins hayan sido entregados. Es mucho menos práctico, pero es la única forma de hacerlo correctamente teniendo en cuenta la mecánica de la cadena de bloques.
En retrospectiva, está claro que para evitar esta pérdida tan estúpida de dinero los desarrolladores deberían solicitar un análisis de seguridad de la aplicación. Esto implica que expertos externos examinen la arquitectura de tu servicio, vean el código y busquen vulnerabilidades.
El ataque del 51 %: dominando la cadena de bloques
Seguramente ya has escuchado que: “Los datos de la cadena de bloques no se pueden modificar”. Pero esto no es del todo cierto en algunos casos. Para comprender con más detalle cómo funciona la cadena de bloques y la minería, no te pierdas nuestros artículos donde te explicamos qué son las cadenas de bloques y cómo funciona la minería de los Bitcoin.
Dos principios son los que garantizan que la cadena de bloques sea la misma para todos los usuarios. En primer lugar, todos los participantes tienen que estar de acuerdo en quién será el creador del siguiente bloque. La probabilidad de ser el afortunado depende de los recursos dedicados: cuanta más potencia minera, más posibilidades.
En segundo lugar, está “la norma de la cadena más larga”, que manifiesta que, en caso de conflicto, la versión válida de la cadena de bloques es la más larga. Si alguien crea su propia versión de la cadena de bloques e intenta transmitirla, el resto la rechazará porque se han invertido menos recursos en ella y, por tanto, es más corta.
Pero la situación cambia si el falsificador usa más del 50 % de toda la potencia minera. En el tiempo que invierten otros mineros de criptomonedas en crear, por ejemplo, nueve bloques, un usuario malicioso podría crear 10. Entonces la versión falsificada se convierte en la más larga de la cadena de bloques, por lo que todo el mundo la aceptaría y el historial financiero se vería alterado. Un usuario que gasta bitcoins en la versión anterior de la cadena de bloques pública volvería a encontrar esos bitcoins en su cuenta de la cadena de bloques falsificada.
Y eso es precisamente lo que le sucedió a la plataforma de criptomonedas Gate.io a principios del 2019. Un atacante envió sus criptomonedas a la plataforma (y lo escribió en la cadena de bloques pública) y mientras comenzó a crear su propia cadena de bloques. Cuando la plataforma recibió la transferencia y abonó la cantidad en la cuenta del atacante, este último publicó su cadena de bloques privada (que no contenía la transacción anterior, lo que permite el rembolso de las criptomonedas) y solicitó una retirada de su saldo de la plataforma de intercambio. Como consecuencia, la plataforma de intercambio de criptomonedas perdió dinero.
Ahora veamos por qué no se trata de un hecho cotidiano y cuánta potencia informática ha invertido el atacante.
Vamos a utilizar Bitcoin como ejemplo. Los mineros de criptomonedas pueden crear seis bloques por hora. Por cada bloque, se emite una recompensa de 12,5 bitcoins. (El 6 de octubre del 2019, 75 bitcoins equivalían a 600,000 dólares). Esto es aproximadamente lo que costaría alquilar durante una hora toda la potencia minera de Bitcoins. El sitio Crypto51 demuestra estos cálculos:
La última columna especifica la capacidad disponible para alquilar en estos momentos. Como puedes comprobar, la cadena de bloques Ethereum Classic, utilizada en el ataque contra la plataforma de criptomonedas que acabamos de comentar, costaría unos 10,000 dólares la hora. Necesitaban 4 horas para hacerse con 200,000 euros.
Cabe destacar que no se trata del primer ataque de este tipo. Otras criptomonedas han sobrevivido con éxito a los ataques del 51 %.
Incidente: ataque en Gate.io del 51 % sobre ETC
Fecha: 7 de enero del 2019
Cantidad robada: 200,000 dólares (40,000 ETC)
Ataques del 51 %: cómo mantenerse protegido
En general, la capacidad para rescribir una cadena de bloques y aprovecharse de un ataque del 51 % es una función innata de la tecnología. Para que un ataque sea lo más caro posible, las plataformas de intercambio de criptomonedas intentan esperar todo lo posible antes de actualizar el saldo de un usuario después de una transacción. Esto se debe a que cuantos más bloques creados desde la transacción entren en la cadena de bloques, es menos probable que la cadena de bloques pueda reorganizarse y restaurarse. Pero esto hace que se demoren las transferencias horas, lo que no resulta muy práctico.
En cualquier caso, seguro que volvemos a ver este tipo de ataque a plataformas de criptomonedas.
El robo de la clave secreta: verificación ortográfica de la contraseña
Para gastar criptomonedas necesitas una clave secreta. Esta clave es lo que se guarda en los monederos de criptomonedas, el saldo de los usuarios se almacena en la cadena de bloques.
Si cambias de monedero de criptomonedas, tendrás que copiar la clave del antiguo en el nuevo. Por comodidad, la clave consiste en una frase compuesta de 12 palabras simples, por ejemplo: witch collapse practice feed shame open despair creek road again ice least (en inglés).
Los desarrolladores de un monedero de criptomonedas enviaron esta frase a una función de verificación ortográfica online, un error que descubrió un inversor de criptomonedas tras perder 70,000 dólares. Dudamos que este fuera el motivo del robo, pero, en cualquier caso, la historia es instructiva.
Esto sucedió porque ahora las aplicaciones no se escriben desde cero, sino que se ensamblan mediante componentes, incluidos los componentes de desarrolladores de terceros. Así es cómo lo hicieron los desarrolladores de Coinomi. Para mostrar el formulario de entrada de la contraseña utilizaron el componente jxBrowser. Sin el conocimiento de los desarrolladores, este componente comprueba la ortografía por defecto de todos los textos que se introduzcan en el formulario. Y, para no cargar con diccionarios de todos los idiomas del mundo, realiza una comprobación en la nube con googleapis.com.
En los formularios de entrada ordinarios esto puede resultar muy práctico, pero en los campos que aceptan contraseñas y frases supersecretas es todo un riesgo.
En su defensa, los desarrolladores del monedero de criptomonedas declararon que la frase solo se dirigía a Google y que se transmitía en forma cifrada. Y Google devolvía un error. Sin embargo, la víctima está segura de que esta vulnerabilidad era la causa del robo.
Incidente: vulnerabilidad en la autentificación del monedero de Coinomi
Fecha: 22 de febrero del 2019
Cantidad robada: 70,000 dólares
El robo de la clave secreta: cómo mantenerse protegido
Por un lado, un simple descuido causó del problema. La función de corrección ortográfica del componente se documentó y las instrucciones describían cómo desactivarla. Seguramente una prueba convencional no habría identificado el problema, pero una revisión de seguridad del monedero de criptomonedas sí que lo habría hecho.
Por otro lado, el problema es más grave. El uso de bibliotecas de terceros facilita la aparición de problemas, ya sea ahora o en el futuro (si sus actualizaciones las hacen vulnerables), además del riesgo de un ataque de cadena de suministro. En un ataque de cadena de suministro, un cibercriminal no tiene la necesidad de hackear la herramienta del desarrollador original, solo necesitan infringir una de sus contratistas. A menudo los contratistas no están bien protegidos y puede que ni siquiera sean conscientes de la importancia de los proyectos en los que se utilizará su código.
A veces, te quedas pensando en la imprudencia de los responsables y en otras, sientes empatía con lo impotentes que se quedan.