Potenciales usos maliciosos de Blockchain

jueves, 29 de junio de 2017

La tecnología Blockchain ha cambiado todo para siempre. Desde enero de 2009, cuando se registró la primera operación en la cadena de bloques de Bitcoin, han surgido cada vez más aplicaciones que hacen uso de esta tecnología más allá de utilizarla como un registro de operaciones de pago. Sin embargo, no existen demasiadas publicaciones que se han atrevido a darle una vuelta para identificar potenciales usos maliciosos. Con este objetivo se presentó en EuskalHack la charla Make This Last Forever: Blockchain-based C&C.

Antes de la aparición de Blockchain, los desarrolladores de aplicaciones maliciosas debían buscar diferentes formas para que el C&C estuviera siempre accesible con el objetivo de que las víctimas supieran dónde encontrar las órdenes a ejecutar. Han pasado de utilizar chats IRC y servidores web a redes sociales para ocultar la comunicación del C&C en un bosque de información legítima existente enviada por usuarios legítimos. En este sentido, a principio del mes de junio la empresa de seguridad ESET descubrió que el grupo Turla utilizaba el perfil de Britney Spears para la publicación del C&C aprovechando que damos por hecho que este tipo de redes sociales siempre permanecerán accesibles.

Pero Blockchain ya habría solucionado (sin querer) el objetivo de la perpetuidad de la comunicación que estarían buscando los administradores de una botnet con sus víctimas. En 2013, fue incorporada la funcionalidad del 0P_RETURN en donde se puede almacenar una pequeña parte de información (hasta 80 bytes) en la cadena de bloques. Tras deserializar una transacción podríamos acudir al campo scriptPubKey y convertir de haxadecimal a ASCII el contenido de dicho campo con el objetivo de saber cuál es la información incrustada. En plataformas como Coin Secrets, ya se dedican a enumerar los mensajes que se incluyen en las distintas transacciones registradas en la cadena de bloques de Bitcoin.

Figura 1. Ejemplo de información incorporado en una transacción en la cadena de bloques.

La prueba de concepto que preparamos para ilustrar la charla tendría dos fases. La primera, una aplicación en Python que permitiría al admin hacer una transacción incluyendo la orden a ejecutar en el campo OP_RETURN. La segunda, dos clientes en JavaScript y en Python destinados a ejecutar las órdenes almacenadas en la cadena de bloques que, en esta prueba de concepto serían consultadas por las víctimas a través de plataformas de terceros que facilitan dicha información como, por ejemplo, blockexplorer.com. De esta manera, y dado que la información una vez anclada en la blockchain es muy difícil de eliminar, el administrador podría actualizar el listado de órdenes de forma recurrente.

Figura 2. Esquema de comunicación del admin con las víctimas.

Otro caso que podría darse es el uso de Blockchain para la resolución de dominios. Tal y como publicamos en este blog a principios de año, la agencia de noticias AMAQ de Estado Islámico habría utilizado extensiones de navegador para facilitar a sus seguidores el acceso a sus páginas web. En el caso de que se quisiera evadir cualquier tipo de censura, el campo 0P_RETURN podría utilizarse en el caso de que se quisiera que los seguidores supieran en todo momento a qué webs deberían conectarse. En el caso de que dicho servidor dejara de estar disponible, el admin únicamente tendría que realizar una nueva transacción que añadir a la cadena de bloques donde se publicara a través de OP_RETURN la nueva URL a la que conectarse.

Figura 3. Esquema de comunicación del admin con sus seguidores.

Las demos que pusimos en la prueba de concepto estaban realizadas sobre la testnet de Bitcoin. Sin embargo, existen otros proyectos menos conocidos por el gran público, que también podrían utilizarse con un objetivo similar. En concreto, Namecoin cuya cadena de bloques puede almacenar hasta 520 bytes de información, o Ethereum que es una plataforma de computación distribuida que implementa funciones de contratos inteligentes de forma nativa ampliando los casos de uso de la tecnología, o incluso Bitmessage como protocolo de comunicación descentralizado y cifrado.

Lo que sí que parece claro es que la tecnología ofrece posibilidades interesantes. Es cuestión de tiempo que un threat actor llegue a implementar este tipo de comunicación a sabiendas que existe poco margen para su detección. En muchos casos, la aspiración pasaría por identificar peticiones a proveedores de información de la cadena de bloques, compartir información sobre direcciones vinculadas a muestras de malware vistas en el pasado o, del mismo modo que Coinsecrets, monitorizar la información expuesta mediante la funcionalidad del OP_RETURN.

Félix Brezo
Intelligence Analyst at ElevenPaths
Yaiza Rubio
Intelligence Analyst at ElevenPaths

No hay comentarios:

Publicar un comentario