O que é um Eclipse Attack?
HomeArticles

O que é um Eclipse Attack?

Avançado
2mo ago
6m

Conteúdo


Um eclipse attack é um ataque relativamente simples que um agente mal-intencionado pode executar para interferir com os nós de uma rede. Como o nome sugere, o ataque visa ofuscar a visão de um participante da rede peer-to-peer, para provocar interrupções gerais ou com o objetivo de preparação para ataques mais sofisticados.

A principio, os eclipse attacks podem parecer semelhantes aos ataques Sybil. Apesar de compartilharem certas semelhanças – em ambos, o agente malicioso inunda a rede com peers falsos – seu objetivo final é diferente. Um eclipse attack visa um único nó (por razões que serão explicadas em seção posterior), enquanto um ataque Sybil é um ataque em toda a rede projetado para desvendar e manipular o sistema de reputação do protocolo.

O conceito é discutido com mais detalhes no artigo de 2015 Eclipse Attacks na Rede Peer-to-Peer da Bitcoin, em que pesquisadores da Universidade de Boston e da Universidade Hebraica relatam as descobertas de suas experiências em simulações de eclipse attacks e possíveis medidas para combatê-los.


Como funciona um eclipse attack

Os mineradores de Bitcoin exigem equipamentos especializados para gerar novos blocos, mas os nós que não fazem parte da mineração (conhecidos como full nodes) são facilmente executados com o mínimo de poder computacional. Isso ajuda na descentralização da Bitcoin, pois qualquer pessoa pode criar um nó em um dispositivo de menor capacidade. O software mantém um banco de dados de transações que sincroniza com seus peers diretos, para manter a sincronia com a rede.

Um fator limitante para muitos dos nós é a largura de banda. Embora exista uma quantidade enorme de dispositivos executando o software, um dispositivo mediano é incapaz de se conectar diretamente a muitos deles devido às limitações estabelecidas pelo software da Bitcoin (que permite apenas um máximo de 125 conexões).

Em um eclipse attack, o agente malicioso garantirá que todas as conexões do alvo sejam feitas por nós controlados pelo invasor. Primeiramente, o agente inundará o alvo com seus próprios endereços de IP, aos quais a vítima irá provavelmente se conectar ao reiniciar seu software. Pode haver uma reinicialização forçada (ou seja, através de um ataque DDoS no alvo) ou o invasor pode simplesmente esperar até que a reinicialização ocorra. 

Depois que ela ocorre, a vítima, sem perceber, fica à mercê dos nós maliciosos – sem visão da rede mais ampla, a vítima pode receber dados incorretos e do invasor.


Consequências de um eclipse attack

Se um invasor está gastando recursos para alienar um peer da rede, ele provavelmente tem um motivo para fazê-lo. Existem vários ataques sucessivos que podem ser realizados mais facilmente depois que um nó é afetado.


gastos duplos com 0 confirmações

Se um indivíduo aceitar uma transação sem confirmações, ele corre o risco de ter um gasto duplo. A transação pode ter sido transmitida, mas até ser incluída em um bloco (e, portanto, ser vinculada à blockchain), o remetente poderá criar uma nova transação que gaste os mesmos fundos em outro lugar. Se a nova transação tiver uma taxa mais alta, é provável que um minerador a inclua na blockchain antes da original, o que tornaria a transação anterior inválida. 

Algumas empresas e indivíduos aceitam essas transações de confirmação 0. Considere um comerciante, Bob, que vende veículos de luxo. Ele não sabe que Alice efetuou um eclipse attack em seu nó e não suspeita de nada enquanto faz uma ordem de um carro de luxo esportivo. Ela cria uma transação, que Bob transmite para a rede. Satisfeito com o pagamento, Bob entrega as chaves do carro e Alice vai embora.

Obviamente, a transação não foi transmitida para a rede – Bob simplesmente a retransmitiu para os nós maliciosos de Alice, que não farão a retransmissão para os nós honestos da rede. Enquanto essa transação fica no limbo, Alice gasta os mesmos fundos na rede (real), seja para outra parte ou para um endereço que ela possui. Mesmo que a transação inicial tenha sido visualizada por Bob, ela será rejeitada porque as moedas já foram gastas por Alice.


Gastos duplos com N confirmações

O gasto duplo com N confirmações é semelhante ao gasto com 0 confirmações, mas envolve mais etapas de preparação. Muitas empresas preferem aguardar um certo número de confirmações antes de marcar um pagamento como válido. Para contornar isso, o autor do ataque deve "eclipsar" os mineradores e o comerciante. Depois que o invasor estabelece o pedido com o comerciante, eles transmitem uma transação para os mineradores (eclipsados). A transação é confirmada e incluída na blockchain – mas essa não é a blockchain correta que a maioria da rede observa, pois o minerador foi manipulado.

A partir daí, o invasor transmite esta versão da blockchain ao comerciante, que libera as mercadorias acreditando que a transação foi confirmada. Depois que os nós "eclipsados" se juntam novamente à rede real, a blockchain que eles acreditam erroneamente ser válida é rejeitada pela blockchain real pela qual todo o restante da rede está trabalhando (esse tipo de ataque tem algumas semelhanças com o ataque de 51%).


Enfraquecimento de mineradores concorrentes

Um nó "eclipsado" continuará operando, ignorando o fato de ter sido isolado da rede. Os mineradores continuarão a extrair blocos dentro das regras estabelecidas pelo protocolo, mas os blocos adicionados serão descartados à medida que for feita a sincronização com peers honestos. 

Teoricamente, um eclipse attack de larga escala a grandes mineradores poderia ser usado para facilitar um ataque de 51%. Atualmente, o custo para assumir a maior parte do poder de hash da Bitcoin é simplesmente alto demais para até o mais engenhoso dos invasores – com uma taxa de ~80TH/s, o invasor precisaria de mais de 40TH/s para tentar um ataque desse tipo. 

Em um cenário hipotético, em que esse poder de hash é distribuído entre 10 partes (de modo que cada uma possua 8TH/s), os invasores pode reduzir significativamente os requisitos para um ataque de 51%, excluindo cada uma dessas partes da rede. Se cinco partes são "eclipsadas", 40TH/s são removidos da disputa para encontrar o próximo bloco. Dessa forma, o invasor precisaria adquirir apenas mais de 20TH/s para assumir o controle.

Outras técnicas de sabotagem que podem acontecer "eclipsando" alvos, inclui a manipulação de nós para o chamado selfish mining (mineração egoísta) ou ainda, a engenharia associada à disputa entre mineradores para encontrar o próximo bloco.


Mitigação

Com endereços de IP suficientes, um invasor pode "eclipsar" qualquer nó. O método mais simples de impedir que isso aconteça é o operador bloquear conexões de entrada e fazer conexões de saída apenas para nós específicos (como os que foram incluídos na lista de confiáveis por outros peers). Como as pesquisas apontam, no entanto, essa não é uma abordagem que funcione em grande escala – se todos os participantes adotarem essas medidas, novos nós não serão capazes de se unir à rede.

Os autores propõem um conjunto de ajustes no software da Bitcoin, alguns dos quais já foram realizados desde o lançamento do artigo. Os ajustes tornam os eclipse attacks mais caros por meio de pequenas alterações no código, como seleção aleatória de novas conexões e maior capacidade de armazenamento de endereços.


Considerações finais

Os eclipse attacks são realizados a nível da peer-to-peer na rede. Implantados como um ataque independente, eles podem ser um grande incômodo. Sua real eficácia está em potencializar outros ataques que afetam financeiramente os alvos ou fornecem ao invasor uma vantagem no processo de mineração.

Até hoje, ainda não houveram graves conseqüências resultantes de um eclipse attack. Entretanto, apesar das medidas de contenção adicionadas à rede, a ameaça ainda existe. Como na maioria dos vetores de ataque existentes para a Bitcoin e outras criptomoedas, a defesa mais eficiente é a que consegue tornar os ataques financeiramente inviáveis para os agentes mal-intencionados.