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 no suele ser muy reveladora. Podemos conocer al responsable del ataque, la fecha y la cifra robada, pero el “cómo” queda oculto. 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 profundizar en el tema y a hablar sobre el funcionamiento de los ataques, no con la intención de sermonear 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 ciberdelincuentes 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 ciberdelincuentes 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) el suceso y (2) la desaparición del dinero de los clientes. Pero ¿qué ha pasado? 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 ciberdelincuentes 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 ciberdelincuentes 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 atacantes pueden enviarse criptomonedas a sí mismos. Parece que el ataque reciente sobre 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 coste de un ataque exceda la ganancia potencial multiplicada por la probabilidad de éxito. De ahí la necesidad de:
- Realizar formaciones en ciberseguridad (por ejemplo, para que no abran un currículum en formato DOC).
- Utilizar una solución de seguridad contra los ataques dirigidos. Preferiblemente una 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 test 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 en) 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 dispensar el dinero.
Otro pequeño detalle: 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. Es toda una temeridad. 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 tal pérdida de dinero estúpidamente 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 Te explicamos qué son las cadenas de bloques y Así 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 acordar 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 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 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 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 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.
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, 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 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 fue el causante 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 de la aplicación 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 ciberdelincuente 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 piensas en la imprudencia de los responsables y otras simpatizas con lo desamparados que se encuentran.