Eclipse Attack

O eclipse attack tem como objetivo isolar um usuário e o que ele vê em uma rede P2P, como parte de um ataque mais elaborado. Este ataque também pode ser usado para causar uma ruptura na estrutura da rede.

Eles são similares aos ataques sybil, onde o invasor cria um grande número de identidades pseudônimas na rede, para obter controle ou exercer grande influência sobre a mesma.

No ataque sybil, uma rede é inundada com agentes falsos, sendo estes agentes um computador ou um software que emulam outros computadores ou softwares, de modo que a rede pense que são legítimos - quando na verdade são falsos.

A principal diferença entre um ataque sybil e um eclipse attack é que no ataque sybil o ataque é direcionado à rede, enquanto o eclipse attack é direcionado a apenas um ponto dessa rede.

Muitas vezes os atacantes iniciam o eclipse attack através de um ataque sybil, que inunda a rede com pontos falsos com a intenção de enganar um único nó.

O eclipse attack tem a intenção de isolar um ponto de uma rede, fazendo que ele pense que continua conectado a nós legítimos da rede original, porém este ponto estará conectado a nós falsos, enviando e recebendo informações de nós maliciosos nesta rede.

post image

A intenção é manipular o que o nó alvo enxerga tão logo ele seja desconectado da rede original. Em um eclipse attack bem sucedido, o alvo não percebe que está conectado a nós maliciosos e continua transferindo dados normalmente, achando que ainda está conectado à rede original.

Como este ataque acontece?

Em uma rede P2P, os nós não se conectam a todos os outros nós da rede, mas apenas a alguns nós para limitar o uso intensivo de banda de internet. Então é comum que um nó apenas se comunique a outros nós mais próximos.

Então esse ataque mira os nós aos quais o alvo está se conectando, com a intenção de se fazer passar por eles, para então controlar o tráfego de informações para dentro e fora do alvo.

Normalmente são utilizadas redes zumbis ou botnets para que esse ataque seja bem sucedido. Para isto eles inundam a rede com endereços IP da rede alvo, na tentativa do nó alvo se conectar aos nós do atacante ao invés de se conectar aos nós da rede original.

O que acontece quando o ataque tem sucesso?

Esse tipo de ataque é direcionado tanto a usuários como a mineradores.

No caso de usuários, quando os nós onde ele está conectado é controlado por agentes maliciosos, pode ser que ele receba uma transação que tenha sido preparada somente para ele. Dessa forma, o restante da rede não enxerga a transação e ela acaba nunca sendo confirmada na rede original.

Por exemplo: se o usuário for um comerciante, efetivar a entrega de um produto mediante pagamento em cripto e estiver sendo alvo de um eclipse attack, ele terá entregue o produto e o pagamento não será confirmado por mineradores legítimos da rede - levando à perda do produto. Isso mostra a importância de se aguardar por mais confirmações antes de considerar a transação como bem sucedida.

O atacante então terá o recurso ainda disponível em sua wallet na rede original, para ser gasto em outro lugar. A isso damos o nome de double-spending, pois ele poderá efetivar 2 pagamentos com o mesmo recurso em cripto.

Uma versão mais elaborada deste ataque faz a inclusão de um minerador (funcional, mas participante do ataque) nesta rede falsa a que o comerciante está conectado. Assim, mesmo que o comerciante aguarde por mais confirmações o golpe seria executado com sucesso, pois o bloco seria minerado e as transações confirmadas. Porém, com o bloco tendo sido minerado em uma rede falsa, ele não seria confirmado na rede principal.

Outro alvo visado pelo eclipse attack seriam os mineradores.

Isolando mineradores em uma rede falsa, isso faria com que eles continuassem minerando normalmente, acreditando estarem conectados à rede original.

Todos os blocos minerados acabariam não sendo propagados na rede principal, e assim não receberiam a recompensa pela mineração.

Este tipo de ataque, quando feito em larga escala, poderia levar a um ataque de maioria da rede, popularmente conhecido como ataque de 51% (na verdade 50% + 1). Vale aqui lembrar que esse tipo de ataque é impraticável na rede do Bitcoin, por causa do poder computacional investido e que está muito próximo de bater o recorde de alta do hashrate.

Como mitigar esses ataques

Operadores de nodes devem bloquear a entrada de tráfego não necessário, e bloquear a saída de tráfego apenas para nós de sua confiança. Embora você potencialmente resolva este tipo de ataque, poderia acabar fechando a rede para novos nós, que encontrarão dificuldade para se conectar à rede.

Mais informações sobre o eclipse attack podem ser encontradas neste paper, um estudo que detalha bastante o método.