Ataque eclipse: doble gasto que afectaba a Ethereum

El concepto de doble gasto hace referencia a un defecto en el que una misma moneda digital puede gastarse más de una vez; lo más parecido a falsificar criptomonedas (es como si pudiéramos gastar dos veces el mismo billete). Entre los descubridores del ataque se encuentra Ethan Heilman, que fue el primero en ejecutar uno de estos ataques a la red de Bitcoin en 2015.

Hay varias maneras de hacer estos ataques, pero la más efectiva consiste en aislar un nodo de la red de Ethereum de otros nodos legítimos de la red, lo cual trunca su seguridad, la cual está basada en el “consenso” entre los nodos que constantemente comparten información. Cuando un nodo está desconectado de la red puede engañarse para hacer el doble gasto.

Lo realmente peligroso de este ataque es que no hacían falta una gran cantidad de recursos para llevarlo a cabo. Con el de 2015 a Bitcoin sí se necesitaba una botnet de cientos de máquinas bajo una misma dirección IP. Pero con el ataque eclipse para Ethereum sólo hacían falta dos ordenadores conectados con una misma dirección IP, ya que técnicamente un ordenador puede alojar infinitos nodos. Así, prácticamente cualquier persona podía llevarlo a cabo.

La red de Ethereum está formada por unos 21.000 nodos, cada uno con su dirección pública única. Estos nodos registran y validan las transacciones de la red comparando la información entre sí. Cada nodo conecta con otros 13 nodos para validar esta información. Para elegir qué 13 nodos son los más eficientes se usa el protocolo DHT descentralizado llamado Kademlia, usado por The Pirate Bay, entre otros. En TPB esto permite encontrar archivos en la red sin tener que encontrarlos al completo, sino que con encontrar un trozo es suficiente.

La red fue vulnerable a este ataque hasta el 14 de febrero

Algunos nodos de Ethereum tienen más probabilidad de ser elegidos que otros, a diferencia de lo que ocurre con bitcoin. Por ello, es posible predecir qué nodos van a usarse con bastante certeza. Tan sólo hay que generar varios ID de nodos con alta probabilidad de ser usados, y monopolizando y falsificando todas las conexiones salientes de un nodo.

ethereum

Gracias a esto, el nodo atacado ve la red de Ethereum que el atacante quiere, “eclipsando” una parte del total de la red (que sería el sol). Con esto, se pueden hacer ataques de doble gasto y falsificar la información de las transacciones. En las pruebas, los investigadores consiguieron falsificar transacciones dejando el nodo encendido durante unas pocas horas o varias semanas, o alejando los nodos entre sí. En prácticamente todos los casos el ataque funcionó.

En enero los investigadores pusieron esta información en disposición de la Ethereum Foundation, encargada de mantener la red de Ethereum. Unas semanas después, el 14 de febrero, se lanzó una nueva versión de geth (la interfaz de los nodos), que limitaba el número de conexiones entrantes por nodo tal y como sugerían los investigadores.

Gracias a esto, ahora es necesario usar miles de ordenadores con una dirección IP única para realizar este tipo de ataques, por lo que la red de Ethereum es mucho más segura a día de hoy. Además, no fue necesario modificar el código fundamental de Ethereum.

 

Fuente: Motherboard | adslzone