¿Qué es un Eclipse Attack (Ataque Eclipse)?
HomeArticles

¿Qué es un Eclipse Attack (Ataque Eclipse)?

Avanzado
2mo ago
6m

Contenido


Un eclipse attack es un tipo de ataque relativamente simple, que un actor malicioso puede ejecutar para interferir con los nodos de una red. Como el nombre sugiere, el ataque pretende ofuscar la visibilidad que un participante tiene de la red peer-to-peer, para así provocar una perturbación generalizada, o con el objetivo de preparar ataques más sofisticados.

Los eclipse attacks pueden resultar parecidos, en apariencia, a los ataques Sybil. Pero a pesar de compartir ciertas similitudes -el actor malicioso inunda la red con "peers" (pares) falsos-, su objetivo final es, en último término, distinto. Un eclipse attack establece como objetivo a un único nodo (por motivos que se explicarán en la última sección), mientras que un Sybil attack es un ataque que afecta a toda la red y ha sido diseñado para engañar al sistema reputacional del protocolo.

El concepto fue examinado a fondo en un artículo del 2015 titulado Eclipse Attacks on Bitcoin's Peer-to-Peer Network, en el que investigadores de la Boston University y de la Hebrew University presentaban sus hallazgos tras experimentar con el lanzamiento de eclipse attacks, así como con posibles contramedidas para combatirlos.


Cómo funciona un eclipse attack

Los mineros de Bitcoin requieren de un equipamiento especializado para poder generar nuevos bloques, pero los nodos no mineros (llamados en inglés "full", es decir, completos) son fácilmente ejecutables con una potencia computacional mínima. Esto ayuda a la descentralización de Bitcoin, ya que cualquiera puede hacer funcionar un nodo en un dispositivo de bajo rendimiento. El software mantiene una base de datos de transacciones que éste sincroniza con sus pares directos, para así mantener el paso con el resto de la red.

Un factor limitante para muchos nodos es el ancho de banda (bandwith). A pesar de que existen una enorme cantidad de dispositivos que ejecutan el software, el dispositivo medio es incapaz de conectarse directamente con muchos de ellos debido a limitaciones determinadas por el software de Bitcoin (que solo permite un máximo de 125 conexiones).

En un eclipse attack, el actor malicioso se asegurará de que todas las conexiones del objetivo se produzcan con nodos controlados por el primero. En un primer momento, el ente inundará al objetivo con sus propias direcciones IP; y la víctima probablemente se conectará a ellas al reiniciar su software. El reinicio puede ser forzado (esto es, con un ataque DDoS al objetivo), o, por el contrario, el atacante puede simplemente esperar a que se produzca. 

Una vez esto ocurre, la desprevenida víctima se halla a merced de los nodos maliciosos; sin visibilidad de la red general, la primera podrá ser alimentada con datos incorrectos por parte del atacante.


Consecuencias de un eclipse attack

Si un atacante está gastando recursos para alienar a un "peer" del resto de la red, probablemente tenga un motivo para hacerlo. Existen una serie de ataques que pueden ser lanzados de un modo más fácil una vez un nodo ha sido sofocado.


Dobles gastos (double spends) de 0 confirmaciones

Si un individuo acepta una transacción sin confirmaciones, se halla en riesgo de sufrir un doble gasto (double spend). La transacción puede haber sido transmitida, pero hasta que no ha sido incluida en un bloque (y, por lo tanto, asignada a la blockchain), el emisor puede generar con facilidad una nueva transacción que gaste los mismos fondos en cualquier otro lugar. Si la nueva transacción presenta una comisión (fee) más alta, es probable que un minero la incluya antes que la original -invalidándola. 

Algunas empresas e individuos aceptan este tipo de transacciones de 0 confirmaciones. Pongamos el caso de un comerciante, al que llamaremos Bob, que se dedica a la venta de vehículos de alta gama. Bob no es consciente de que Alice ha eclipsado su nodo, por lo que no sospecha nada cuando ella coloca una orden por un lujoso coche deportivo. Alice crea una transacción que Bob luego transmite a la red. Contento por el hecho de que el pago se halla en camino, Bob le entrega las llaves del coche a Alice y ésta se marcha a gran velocidad.

Por supuesto, la transacción no se transmitió a la red: Bob simplemente la transmitió a los nodos maliciosos de Alice, que no la transmitirá a los nodos honestos. Mientras esta transacción se cuelga en el limbo, Alice gasta los mismos fondos en la red (real), ya sea a otra parte o a una dirección que posee. Incluso si finalmente se ve la transacción inicial con Bob, será rechazada ya que las monedas ya se han gastado.


Dobles gastos (double spends) de N confirmaciones

El doble gasto de N confirmaciones es similar al de confirmación 0, pero implica más preparación. Muchas empresas prefieren esperar un cierto número de confirmaciones antes de marcar un pago como válido. Para evitar esto, el atacante debe eclipsar a los mineros y al trader. Una vez que el atacante ha establecido la orden con el trader, transmiten una transacción a los mineros (eclipsados). La transacción se confirma e incluye en la blockchain, pero esta blockchain no es la cadena que observa la mayoría de la red, ya que el minero está cortado.

A partir de ahí, el atacante transmite esta versión de la blockchain al trader, que libera los productos bajo la creencia de que la transacción ha sido confirmada. Una vez que los nodos eclipsados vuelven a unirse a la red real, la blockchain que creen erróneamente que es válida queda huérfana por la que el resto de la red ha estado trabajando (esto tiene algunas similitudes con un ataque del 51%).


Debilitar a los mineros competidores

Un nodo eclipsado continuará funcionando, ajeno al hecho de que han sido segregados de la red. Los mineros continuarán minando bloques dentro de las reglas establecidas por el protocolo, pero los bloques agregados se descartarán a medida que se sincronicen con pares honestos.

Teóricamente, un ataque de eclipse a gran escala contra los principales mineros podría usarse para facilitar un ataque del 51%. Tal como está, el costo de hacerse cargo de la mayoría del poder de hashing de Bitcoin es simplemente demasiado alto incluso para los atacantes más ingeniosos: a ~ 80TH / s, la entidad necesitaría más de 40TH / s para intentar tal maniobra. 

En un escenario hipotético en el que este poder de hashing se distribuye entre 10 partes (de modo que cada una posee 8TH / s), el atacante puede reducir significativamente los requisitos para un ataque del 51% cortando a estas partes de la red. Si se eclipsan cinco, se eliminan 40TH / s de la carrera para encontrar el siguiente bloque, y el atacante ahora solo necesita adquirir un poco más de 20TH / s para tomar el control.

Otro sabotaje que se puede lograr eclipsando objetivos incluye la manipulación de nodos para la minería egoísta, o la ingeniería de razas entre mineros para encontrar el siguiente bloque.


Mitigación

Con suficientes direcciones IP, un atacante puede eclipsar cualquier nodo. El método más directo para evitar que esto suceda es que un operador bloquee las conexiones entrantes y solo realice conexiones salientes a nodos específicos (como los que han sido incluidos en la lista blanca por otros pares). Sin embargo, como señala el trabajo de investigación, este no es un enfoque que funcione a escala: si todos los participantes adoptan estas medidas, los nuevos nodos no podrán unirse a la red.

Los autores proponen algunos ajustes al software de Bitcoin, algunos de los cuales se han integrado desde el lanzamiento del documento. Esto hace que los eclipse attacks sean más costosos a través de modificaciones menores en el código, como la selección aleatoria de nuevas conexiones y una mayor capacidad para almacenar direcciones.


En conclusión

Los Eclipse attacks se llevan a cabo en el nivel de red de peer to peer. Desplegados como un ataque independiente, pueden ser una molestia. Su verdadera efectividad consiste en potenciar otros ataques que impactan financieramente a los objetivos, o proporcionan al atacante una ventaja en el frente minero.

En la naturaleza, aún no se han producido graves consecuencias como resultado de un eclipse attack, pero la amenaza aún existe a pesar de las contramedidas integradas en la red. Al igual que con la mayoría de los vectores de ataque que existen para Bitcoin y otras criptomonedas, la defensa más fuerte será la que hace que sea financieramente prohibitivo que las partes maliciosas los intenten.