El Ataque Eclipse o Eclipse Attack es otro de los ataques conocidos en el mundo de las criptomonedas. Este consiste en aislar y eclipsar la conexión de red de las víctimas al inundarlas con datos falsos sobre la red blockchain de la que forman parte.
Uno de los ataques que se pueden realizar contra las redes blockchain es el Eclipse Attack o Ataque Eclipse. Este es un tipo de ataque que busca aislar y atacar un usuario específico que forme parte de la red. Todo con el objetivo de poder manipular los datos que recibe el objetivo desde la red. De esa forma, se puede realizar cualquier clase de actividad maliciosa contra la víctima.
Ciertamente las redes peer-to-peer (P2P) y la tecnología blockchain son muy seguras, pero la seguridad absoluta no existe. Es por ello que en este nuevo capítulo de Bit2Me Academy te explicaremos todo sobre este tipo de ataque, conociendo también los medios que existen para evitarlo y protegerte de él.
Anatomía de un Eclipse Attack o Ataque Eclipse
Como hemos mencionado al principio, un Eclipse Attack, o Ataque Eclipse, busca desconectar a la víctima del flujo de datos válido de la red. Esto con el fin de que la víctima reciba datos manipulados por parte del atacante. Suena bastante aterrador desde un punto de vista de seguridad, y ciertamente lo es. Pero te preguntarás ¿Por qué es posible realizar un ataque de este tipo? ¿Se pueden evitar de alguna manera?
Pues bien, en primer lugar este tipo de ataques son posibles debido a la estructura y las limitaciones del protocolo de comunicación peer-to-peer que use una blockchain. Más específicamente se debe a la limitación en la cantidad de conexiones y selección segura de los nodos. Por ejemplo, en la red Bitcoin el límite de conexiones de salida (las que puedes establecer con otros nodos remotos) es de 8 conexiones. Esto significa que cada nodo de Bitcoin es capaz de mantener conexiones bidireccionales con 8 nodos a la vez. El ciclo se repite en cada nodo, porque este comportamiento es parte del protocolo descrito en Bitcoin Core.
Ahora bien, esto representa tanto una ventaja como una desventaja. Por un lado, la ventaja que presenta es que al ser pocas conexiones, se requiere poco poder de cómputo y de ancho de banda. Esto abre las puertas a que cualquier persona desde cualquier parte del mundo pueda tener un nodo de Bitcoin. Con ello se descentraliza la red y se agrega mayor seguridad.
Pero la limitación de conexiones también tiene un desventaja, y es que resulta relativamente sencillo secuestrar estas conexiones. El esfuerzo requerido para lograr esto varía dependiendo de las protecciones, el proceso de selección segura de nodos y el tamaño de la red. Pero básicamente lo único que se necesita es una red de bots a su control y detectar las direcciones IP del resto de nodos de la red. Así cuando estos nodos reinicien su conexión a la red, los nodos maliciosos pueden intervenir la conexión y tomar el control de la víctima.
Consecuencias de este tipo de ataque
Las consecuencias de los Eclipse Attack o Ataque Eclipse son variadas y entre ellas podemos mencionar:
Explotar las conexiones para controlar la red
Una vez que un un actor malicioso ha tomado cierto control de la red, nada le detiene para seguir aumentando dicho control. De hecho, con cada nuevo nodo bajo su control, aumentar su presencia en la red se vuelve cada vez más sencillo. Una vez que tiene el manejo de los nodos puede manipular a su antojo las confirmaciones de bloques e incluso sabotear las conexiones de la red y rastrearlas.
Al final, el atacante puede ganar incluso el poder para manipular el crecimiento de la red alterando las versiones del libro mayor de la blockchain a su antojo.
Realizar ingeniería de carrera de bloques
Este es un tipo de ataque altamente especializado que puede realizarse en redes que usan el Protocolo de Prueba de Trabajo (PoW). Este tipo de ataque fue señalado en 2015 por los investigadores Ethan Heilman, Alison Kendler, Aviv Zohar, y Sharon Goldberg, en su trabajo “Eclipse Attack on Bitcoin’s Peer-to-Peer Network”.
La explicación del ataque es que si dos mineros descubren un bloque simultáneamente; un atacante podría usar un ataque de eclipse para que los mineros eclipsados desperdicien el esfuerzo minero en bloques huérfanos. Eso le daría al atacante la capacidad de minar sus propios bloques. Al final, el atacante se asegura de que su bloque sea procesado por la red bajo su control y recibe la recompensa.
Otra posibilidad es dividir el poder minero de la red. De esta forma, el atacante podría facilitar el lanzamiento de un ataque de 51% que le ayude a reescribir la cadena de bloques o libro mayor.
Finalmente también abre la posibilidad a los ataques de doble gasto de confirmación N. Esto significa que un atacante puede controlar a un cierto grupo de mineros y de allí reportar que la transacción ha recibido una serie de confirmaciones. Este ataque permitiría por ejemplo que un comerciante resulte engañado al pensar que la transacción por un servicio ha sido confirmada por la red. Pero en realidad, ha sido víctima de un elaborado ataque eclipse.
Ataques a protocolos de segunda capa
Otra consecuencia de este tipo de ataques es el de realizar ataques a los protocolos de segunda capa. Es decir, hacer vulnerable a protocolos como Lightning Network, OmniLayer o RSK en Bitcoin. O Incluso a creaciones derivadas de smart contracts como todas las que se ejecutan sobre Ethereum, EOS o TRON.
Esto sería posible porque un Eclipse Attack engañaría a su víctima para que vea un estado irreal de la red. Por ejemplo, un canal de pago de Lightning se mostraría como abierto para la víctima, mientras que el atacante ha cerrado el canal llevándose consigo los fondos. En el caso de los smart contracts, los usuarios verían estados inconsistentes de la cadena de bloques.
Dar origen a nuevos y más peligrosos vectores de Ataques
El Ataque Eclipse es también el origen de un tipo de ataque más peligros y de mayor alcance, el Ataque Erebus. Este ataque, es capaz de ejecutar un Ataque Eclipse a gran escala sobre la red, teniendo como resultado la partición de la misma. Como resultado, quien realice un Ataque Erebus es capaz de partir la red y manejarla a su antojo, pudiendo incluso hacer una Denegación de Servicios (DoS), realizar un Ataque de 51% o crear un hard fork de la blockchain.
El Ataque Erebus es un ataque descrito en 2019 por Muoi Tran, Inho Choi, Gi Jun Moon, Anh V.Vu y Min Suk Kang, de la Universidad Nacional de Singapur.
¿Cómo se pueden prevenir los Eclipse Attack o Ataques Eclipse en las redes blockchain?
Este ataque es conocido desde hace mucho tiempo, de hecho, se conocen desde la misma creación de las primeras redes peer-to-peer. Por ejemplo, el protocolo Kademlia era susceptible a este tipo de ataques. Sin embargo, este protocolo implementó una serie de medidas para evitarlos. Algunas de estas medidas se siguen implementando hoy en día con algunas mejoras. Entre etsas medidas podemos mencionar:
Sistema de identificación de pares
Este sistema busca que los pares de la red tenga un ID único e irrepetible. Esto es una forma de crear un árbol de ID que permite saber quién es quién en la red. En blockchain esto es posible gracias al uso de la criptografía asimétrica. Sin embargo, esta medida es insuficiente puesto que es posible ejecutar varios nodos que usen una misma IP. Así por ejemplo, un atacante puede crear varios nodos controlarlos y seguir aplicando su ataque a la red.
De ahí que esta medida se complementa con una limitación de identidades por IP evitando así que se explote este vector.
Proceso de selección de pares
Otro punto importante para evitar ataques eclipse es tener un proceso confiable de selección de pares para la red. Por ejemplo en Ethereum este proceso usa un protocolo basado en Kademlia. Esto le permite a Ethereum que cada elemento sea asociado con una clave y se almacena sólo en aquellos pares cuyo ID de nodo está «cerca» de su clave asociada. Esta «cercanía» se define como la distancia binaria de Hamming entre la clave y la ID del nodo.
De esta forma, la red se asegura de tener una serie de nodos bien identificados y relacionados unos con otros.
Controlar las conexiones entrantes y salientes
Otra medida de control aplicada en blockchain para controlar los Eclipse Attack es controlar las conexiones entrantes y salientes. Para ello se establecen límites de comunicación con los nodos de la red de forma que en caso de un ataque a un nodo éste no pueda afectar a buena parte de la red. Así se evita que el área de acción de un nodo sea muy grande y el atacante deba controlar varios nodos para realizar un ataque con éxito. Adicionalmente la medida se va fortaleciendo con la descentralización y ampliación de la red.
Estas tres protecciones en total son las más básicas que toda red blockchain aplica sobre sus protocolos. La finalidad de las mismas es clara: hacer altamente costoso un Eclipse Attack. La aplicación de todas estas mitigaciones conlleva que el atacante debe hacer un enorme esfuerzo por controlar la red y realizar su ataque. De hecho, mientras mayor sea la red a atacar más difícil es realizar este ataque. De allí que los promotores de una blockchain siempre pidan que se instalen nodos completos para fortalecer la red.
¿Cuánto sabes, criptonauta?
¿Los Eclipse Attack son fáciles de llevar a cabo?¡FALSO!
Bitcoin y el resto de redes blockchain tienen muy en claro los riesgos de los Ataques Eclipse en sus redes. Por esa razón, siempre buscan mecanismos que ayuden a contrarrestar estas fallas manteniendo el mayor nivel de seguridad posible.
Eclipse Attack vs Sybil Attack, diferencias entre estos ataques
Ahora bien existe una cierta relación entre lo que es un Sybil Attack y un Eclipse Attack, que explicaremos a continuación.
Un Eclipse Attack o Ataque Eclipse tiene lugar cuando la mayoría (si no todos) de sus pares son maliciosos y básicamente evitan que esté bien conectado a la red para obtener información sobre las transacciones que tienen lugar en la misma. Esto resulta útil cuando un atacante quiere manipular una transacción para hacerle creer que la misma se ha ejecutado con éxito, cuando realmente ha sido manipulado.
De esa forma, el atacante realizará un doble gasto y su víctima pensará que la transacción ha sido confirmada. Al final, cuando el ataque termina y la víctima contacta con nodos confiables, se da cuenta del ataque y que los fondos nunca fueron enviados. Mientras que un Sybil Attack o Ataque Sybil, por otro lado, es cuando un actor malintencionado intenta enviar spam a la red con nodos que controla intentando subvertir el sistema de reputación de la red.
Para resumir, un Ataque Eclipse está dirigido a una sola parte; mientras que un Ataque Sybil está dirigido a toda la red.
¿Cómo evitar ser víctimas de los Eclipse Attack o Ataque Eclipse?
La mejor manera de protegerse de este tipo de ataques es tener en cuenta una serie de recomendaciones. Entres estas podemos destacar:
- Asegúrese de usar un sistema de pago y wallets con buena reputación. De ser posible, trate de instalar un nodo propio y úselo para verificar sus transacciones. De esta forma no solo contribuirá a asegurar la red sino que creará una medida de seguridad para protegerse de este tipo de ataques.
- Evite en cualquier caso aceptar pagos 0-conf o sin confirmaciones. Recuerde que en este estado, las transacciones pueden ser manipuladas de muchas maneras y el ataque eclipse es una de ellas.
- Si tiene un nodo propio asegúrese de blindar el mismo. La forma más sencilla es limitar el número de conexiones entrantes, un firewall que evite estas conexiones es una buena forma de empezar.
- Asimismo también puede revisar de forma periódica las conexiones de su nodo o wallet y crear una lista de nodos confiables para que los uses en todo momento. Esto le evitará amargas sorpresas en caso de que su nodo este conectado a un nodo malicioso que libere este tipo de ataques hacia usted o cualquier otro usuario de la red.
- Mantenga actualizados sus wallets y nodos. Los desarrolladores son conscientes de los ataques eclipse y siempre buscan manera de fortalecer los protocolos de conexión. Una actualización en este sentido puede proporcionarles una mejor defensa contra este tipo de ataques.
Con estas sencillas recomendaciones usted podrá estar mejor protegido frente a este tipo de ataques y cuidar así de su dinero y privacidad.