Los autores de Wannacry también quieren sus Bitcoin Cash

martes, 27 de marzo de 2018

El 12 de mayo de 2017 fue un día que para muchos de nosotros no se nos olvidará fácilmente. WannaCry fue uno de los incidentes con mayor impacto en la opinión pública. Aprovechando la ya famosa vulnerabilidad EternalBlue, el programa malicioso consiguíó cifrar los archivos de miles de equipos pidiendo a cambio un rescate de 300 dólares en bitcoins. La pregunta es, ¿qué fue de estos rescates pagados por las víctimas?

El saldo de las direcciones
Las tres direcciones de Bitcoin identificadas consiguieron recaudar una cantidad superior a los 51 bitcoins (consultables aquí, aquí y aquí). A fecha de hoy, más de medio millón de dólares al cambio. Sin embargo, el diseño del sistema de cobro de los rescates era mejorable. La presentación de la misma dirección a diferentes víctimas complicaba a los atacantes discernir qué víctima había realizado el pago del dinero. Teniendo en cuenta que las transacciones de Bitcoin quedan registradas en la cadena de bloques de Bitcoin, las víctimas podían llegar a suplantar a otras víctimas que sí que habían pagado atribuyéndose una transacción en concreto.

En el caso de Bitcoin, la recomendación para quienes administran plataformas en las que se puede pagar por bienes o servicios en bitcoins es generar una dirección de pago única para cada cliente que quiere realizar una compra. De esta manera, es muy cómodo para el comercio verificar si un cliente ha realizado ya el pago en la cadena de bloques. Estas recomendaciones son también aplicables para el caso de Wannacry: a pesar de ser una extorsión, el modelo ideal habría pasado por generar una dirección diferente para cada usuario, lo que habría permitido al atacante contar con una sencilla tabla en la que asociar cada dirección de cobro a una clave de descifrado diferente.

Además, esta operación habría tenido otro efecto colateral positivo para el atacante: los investigadores no habrían podido generar más que un subconjunto reducido de direcciones de cobro (una por cada detonación de la muestra) y la tarea de dimensionar el número total de infecciones sería mucho más compleja. Las opciones para conseguirlo habrían pasado por realizar un seguimiento de algunas direcciones conocidas y de tratar de analizar, una vez se empezara a observar el movimiento de esas cuentas, si terminaban por converger en algún punto. El motivo de por qué no se aplicó salió a la luz poco después: una condición de carrera en el proceso de generación de direcciones únicas para cada víctima que impedía que funcionara bien y que terminaba por elegir una de las ya famosas tres direcciones.

Los movimientos de Wannacry
Apenas unos días después de que se cerraran las ediciones de 2017 de Blackhat USA y Defcon, el 3 de agosto se produjeron los primeros movimientos desde las direcciones de Bitcoin más monitorizadas: seis operaciones diferentes registradas en la blockchain de Bitcoin en un período de apenas unos minutos (concretamente, a las 03:06, 03:07, 03:13, 03:14, 03:14 y 03:25). Comenzaba así el proceso de persecución de estas direcciones que pronto empezarían a mezclarse en una sucesión de operaciones.

Primeros movimientos de Wannacry imagen
Figura 1. Primeros movimientos de Wannacry.

Partiendo de la base de que las tres direcciones, para efectuar una operación, el autor o autores del ataque tuvo que firmar estas operaciones con las claves privadas correspondientes a cada dirección y notificarlas a algún nodo de la cadena de bloques para que estas fueran añadidas. A partir de ahí, el propio autor podría generar una lista de incontables direcciones bajo su control entre las que realizar estas operaciones para confundir a los investigadores.

Sin embargo, si utilizamos herramientas como Blockseer podremos darnos cuenta de que en apenas cinco saltos, el dinero termina asociado a un mercado, hitbtc.com, que opera como exchange de criptodivisas desde el año 2013. Desde Hitbtc se pueden intercambiar estos Bitcoins por muchas otras divisas como Ethereum, Etherum Classic, Litecoin, Lisk… u otras que han sido concebidas para proteger el anonimato de quien las usa, como Monero, Dash o Zcash. 

Visualización de movimientos en Blockseer imagen
Figura 2. Visualización de movimientos en Blockseer.

En algunas de estas plataformas, el proceso de registro general es trivial y no requiere de la facilitación de información adicional salvo que se quiera proceder a la compra y venta con divisas convencionales como explican en su propia guía de usuario. En cualquier caso, para muchos investigadores, este sería un buen punto de partida porque esta plataforma sí que contaría con información de las operaciones en las que se vio implicada una cuenta muy próximas a los autores aún a sabiendas de que los implicados podrían no ser estos. 

No solo Bitcoins: las consecuencias de los forks
Como se ha visto anteriormente, las transacciones de Bitcoins se realizaron el 3 de agosto. Sin embargo, unos días antes, tuvo lugar un evento importante para el ecosistema de Bitcoin: el hard fork de Bitcoin Cash. Con motivo del desmesurado incremento de las comisiones por transacción (consecuencia del incremento de la popularidad del Bitcoin y de la limitación del tamaño por bloque de 1 MB), una parte de la comunidad planteó la necesidad de aumentar la oferta de espacio disponible para registrar operaciones cada 10 minutos, es decir, incrementar el tamaño máximo de cada bloque de Bitcoin. 

Dashboard del exchange HitBTC imagen
Figura 3. Dashboard del exchange HitBTC.

Para materializar esa propuesta, los impulsores de Bitcoin Cash plantearon la posibilidad de que los mineros de la red pasaran a aceptar a partir del 1 de agosto bloques con un tamaño máximo de 8 MB con la esperanza de que el aumento de oferta de espacio provocara una reducción del precio que estaban pagando los usuarios por incluir sus transacciones en el bloque. A más oferta de espacio para una misma demanda de espacio en bloque, menos comisiones. 

tamaño medio por bloque imagen
Figura 4. Tamaño medio por bloque. 

Sin embargo, la propuesta traía consigo varias cuestiones que preocupaban a muchos. Por un lado, mientras que los bloques añadidos en un día con el protocolo convencional podrían incrementar en unos 144 MB diarios (a razón de 6 MB por hora) la cada vez más pesada blockchain de Bitcoin, aumentar el tamaño a 8 MB por bloque (48 MB a la hora) podría provocar un incremento diario de 1152 MB diarios. Estas y otras cuestiones de índole ideológico dieron lugar a que la propuesta no fuera aceptada por toda la red, sino solo por una pequeña parte de ella con lo que se pasó a tener dos cadenas de bloques diferentes con una base común: la de Bitcoin convencional que operaba bajo las reglas antiguas de 1 MB por bloque y la de Bitcoin Cash, que permitía a los usuarios gastar sus bitcoins incluyéndolos en bloques de hasta 8 MB. Por lo tanto, quienes tuvieran bitcoins en su cuenta a fecha de 1 de agosto (como ocurría con los autores de Wannacry), podrían gastarlos en dos blockchains diferentes bajo reglas diferentes. A día de hoy, el valor de un Bitcoin y el de un Bitcoin Cash es muy diferente (8100 dólares por unidad de Bitcoin y 912 por unidad de Bitcoin Cash), pero la cantidad en esta criptodivisa sigue siendo relevante. 

Forks de la cadena de bloques de Bitcoin imagen
Figura 5. Forks de la cadena de bloques de Bitcoin. 

Entonces, ¿qué pasó con los Bitcoin Cash de Wannacry? No está claro si por desconocimiento o por falta de interés, pero lo cierto es que los Bitcoin Cash asociados a las cuentas de Wannacry permanecieron en ellas hasta varios meses después, el siete de noviembre de 2017. En esa fecha, los autores realizaron una única transacción en la que juntaron todo el saldo en Bitcoin Cash de las tres direcciones en una única dirección, concretamente en 122TBuG4jWjsfSABdNu4zNrBaREEk2a8od, a priori para simplificar la gestión.

Borrando el rastro de las operaciones
Tras los movimientos de agosto, algunas plataformas de intercambio como ShapeSift y Changelly ya manifestaron que estaban colaborando con las autoridades tras identificar que sus plataformas habían sido utilizadas para intercambiar las criptodivisas por Monero. Pero, ¿qué opciones podrían tener alguien que quisiera difuminar el rastro de las operaciones en cadenas de bloques como Bitcoin o Bitcoin Cash? Para eso existen los conocidos como coin mixers. Se trata de plataformas que, a cambio de una comisión, mezclan de forma automática el saldo proveniente de varias cuentas para dificultar a un observador la procedencia real del dinero. 


Dado que este tipo de tareas se pueden también programar de forma manual, desde ElevenPaths tenemos constancia de la existencia de diferentes mixers al alcance de cualquiera que ofrecen este tipo de servicios para Bitcoin Cash como coinmix.to o privcoin.io (existen otros como bch-mixer.com o bchblender.com pero fueron creados con posterioridad al primer movimiento de dinero en BitcoinCash). 

Funcionalidad de un mixer imagen
Figura 6. Funcionalidad de un mixer. 

En el caso de coinmix.to, el usuario debe facilitar una dirección en la que espera recibir el dinero a ocultar así como el número de bloques en que espera recibirlo. Por cómo funciona coinmix.to, se solicita al usuario que envíe la cantidad cuyo rastro quiere desdibujar a una dirección bajo control de la plataforma junto con una pequeña cantidad con la que cubrir los costes de la red y pagar por el servicio en sí mismo.

Funcionamiento de coinmix.to imagen
Figura 7. Funcionamiento de coinmix.to.

Transcurrido el tiempo estipulado, el solicitante recibirá el saldo en la dirección fijada como parte de una transacción en la que también se verán implicadas otras direcciones vinculadas a la plataforma y, potencialmente, a otros usuarios. Es este proceso el que sirve para difuminar la dirección de origen de las operaciones ya que el saldo recibido en la dirección de destino no proviene de la operación de solicitud de servicio original (dicho saldo, en nuestro caso, se quedó bajo control de la plataforma en la dirección 1NgUGX9F9zU4QtU9svqCd4gyyFvKhGyKBj). 

Operación de coinmix.to imagen
Figura 8. Operación de coinmix.to.

Sin embargo, hay que tener en cuenta que esta dirección facilitada por coinmix.to ya había recibido 125 operaciones anteriores en el momento de la prueba. Esto es relevante dado que en el caso de que tengamos visibilidad en el futuro de una dirección que opera en algún momento con esta en concreto, podremos saber con certeza que ha utilizado este servicio de mixing. Asimismo, hay que destacar la gran cantidad de inputs que aparecen en el pago que recibimos en nuestra cuenta de destino. Esta operación nos permitiría identificar direcciones que utiliza el servicio para mezclar las transacciones teniendo en cuenta que para utilizar los inputs que figuran en ella el mixer habrá tenido que firmar dichas operaciones con las correspondientes claves privadas. 
El funcionamiento de privcoin.io es algo diferente. En su caso, ofrece la posibilidad de llevar a cabo esta tarea para varias criptodivisas y no solo para Bitcoin Cash y ofrece la posibilidad de configurar varias direcciones de retorno y distintos porcentajes de forma que se complica bastante el seguimiento de las operaciones dado que no será tan eficaz si se analizan en base al saldo transferido. 

Plataforma de mixer de Bitcoin Cash imagen
Figura 9. Plataforma de mixer de Bitcoin Cash. 

A diferencia de Coinmix, en el caso de privcoin.io las direcciones donde el usuario tiene que enviar el dinero son únicas por cada operación de ocultación. De esta manera un equipo de analistas no podría utilizar la cadena de bloques para monitorizar las direcciones utilizadas entre medias e identificar a posibles usuarios. De hecho, en el caso de esta plataforma, las direcciones implicadas solo son utilizadas dos veces: una para recibir el dinero y otra para transferirlo.

Transacción de Privcoin imagen.
Figura 10. Detalles de la transacción de Privcoin. 

¿Cuál es el saldo actual de las cuentas de Wannacry?
Pese a las operaciones descritas hasta ahora, los movimientos de salida que implican a estas cuentas no son demasiados. En el caso de Bitcoin, por ejemplo, las direcciones han seguido recibiendo pagos después de que saliera la mayor parte del saldo de las cuentas. Además, al fork de Bitcoin Cash hay que añadir otra variable, el fork de Bitcoin Gold que tuvo lugar en el último trimestre del año. Este nuevo fork decía estar destinado a democratizar el proceso de minado y tomó como referencia la cadena de bloques de Bitcoin. De hecho, las cuentas de Bitcoin han seguido recibiendo operaciones después de las retiradas de agosto. Por este motivo, todavía quedan pendientes 1,89111948 en bitcoins (0,23814854, 1,38351522 y 0,26945572), algo más de 15200 dólares a los que hay que sumar los 84 dólares correspondientes a los 1,53575699 Bitcoin Gold que también hay en sus cuentas. Parece razonable pensar que la pregunta no es si habrá más movimientos, sino cuándo tendrán lugar. 

Félix Brezo
Equipo de Innovación y Laboratorio de ElevenPaths
Yaiza Rubio
Equipo de Innovación y Laboratorio de ElevenPaths

1 comentario:

  1. Buen artículo Yaiza, Félix. No sé si desde NevTrace podrán sacar algo más, tal y como lo habéis explicado, aparentemente no hay más que hacer.

    ResponderEliminar