Um ataque de repetição ou ataque de repetição é uma das vulnerabilidades mais comuns que afetam os blockchains. Estes ataques são normalmente executados durante a implementação de um hard fork, pois é nesses momentos que se encontram as melhores condições para a sua implementação.
Un Replay Attack ou Replay Attack, ocorre quando um agente malicioso intercepta e, em seguida, repete uma transmissão de dados válida que passa por uma rede. Isso é possível porque o invasor obteve acesso a credenciais válidas para a rede. Por causa disso, os protocolos de segurança de rede tratam o ataque como se fosse uma transmissão normal de dados. Desta forma, o atacante pode realizar seu ataque sem maiores problemas.
Os Replay Attacks afetam especialmente a tecnologia blockchain, devido à sua operação como um sistema distribuído. Isso ocorre porque justamente essa estrutura operacional facilita esses tipos de ações maliciosas. Basta ter acesso a credenciais válidas e que o ataque seja realizado no momento certo, com o suficiente para ter sucesso.
Uma explicação mais profunda
Para ilustrar mais facilmente esse problema, podemos considerar o seguinte exemplo:
Juan tem várias criptomoedas na blockchain do Bitcoin Cash. No entanto, o blockchain está prestes a passar por um hard fork que dividirá o blockchain em duas partes, o legado e o novo blockchain. Após a divisão, Juan possui a mesma quantidade de criptomoeda em ambos os blockchains. Nessa situação, Juan, que havia recebido várias transações importantes de Cristina antes do hard fork, decide agir de forma maliciosa junto com ela. Para fazer isso, eles executam operações passadas (no blockchain legado) novamente, dentro do novo blockchain. Essa "repetição" das transações é validada pelos mineradores na nova blockchain. Essa ação permite que eles obtenham novas criptomoedas pelo mesmo valor de transações anteriores. Com isso, Juan e Cristina realizaram com sucesso um ataque de repetição.
Dessa maneira, os invasores podem capturar novos fundos sem escrúpulos, revelando as terríveis conseqüências que esse tipo de ataque pode ter em toda a rede.
Escopo e consequências de um ataque de repetição
Um ataque de repetição pode ter, em primeira instância, o seguinte escopo:
- Permite suplantar a identidade de mais um usuário do sistema. Neste ponto, um invasor pode efetivamente roubar credenciais de acesso à rede e representar a identidade de um usuário. Ao fazer isso, o invasor tem acesso a todo o histórico de ações do usuário. Este ponto é uma condição suficiente e necessária para realizar um ataque de repetição com consequências desastrosas.
- Permite que você crie ataques de negação de serviços (DoS). Um invasor pode tornar o ataque de repetição massivo dentro do blockchain. Esse cenário é possível devido à perda do poder de computação do blockchain legado. À medida que o poder de mineração do blockchain legado cai, abre-se espaço para um Ataque de 51%. Isso permite a criação de novas transações que podem ir para o novo blockchain e desativá-lo se sua energia for excedida. Outra forma de realizar este tipo de ação é aproveitar uma fraqueza no protocolo de mensagens do Rede P2P. Por meio dessa vulnerabilidade, você pode não apenas fazer o ataque de repetição, mas também controlar a rede para que ela ouça apenas as mensagens formatadas de uma maneira específica.
Nos dois casos, existem limitações nas ações maliciosas que podem ser executadas. Mas talvez o mais importante seja que os dados enviados não possam ser alterados sem serem rejeitados pela rede. Isso limita a eficácia do ataque à repetição de ações passadas, a menos que seja acompanhado por um ataque de 51%.
Importância e implicações de ataques de repetição
Esses tipos de ataques são muito importantes a serem considerados na tecnologia blockchain. Especialmente quando o blockchain está passando por um processo de hard fork. Isto é porque hard fork abrir a possibilidade de realizar com mais facilidade esse tipo de ação.
Isso ocorre porque, nessas horas, existem duas cadeias de blocos com informações idênticas ao mesmo tempo. Isso significa que; uma transação processada antes do hard fork também será válida na outra. Como resultado, uma pessoa que recebeu uma certa quantia de criptomoeda de outra pessoa na blockchain antiga, poderia mudar para outra, replicar a transação e transferir fraudulentamente um número idêntico de unidades para sua conta pela segunda vez.
No entanto, essa situação só é possível para usuários que participaram do garfo rígido. Em outras palavras, novos usuários que criaram um carteira depois do garfo duro, eles não são vulneráveis nem podem realizar esse tipo de ataque.
Mas esses tipos de ataques podem ser realizados em espaços além da tecnologia blockchain. Por exemplo, sistemas de pagamento sem contato ou NFC eles também são suscetíveis. Para lidar com eles, eles devem ter contramedidas que impeçam um usuário de executá-los e roubar fundos dessa maneira.
Quanto você sabe, cryptonuta?
Um ataque de repetição significa que o invasor está no controle de toda a rede?FALSO!
Um Replay Attack apenas faz com que o invasor tenha a capacidade de falsificar identidades dentro da rede e realizar ações já realizadas nela. Em nenhum momento o invasor tem controle total da rede ou a capacidade de sobrescrever todo o blockchain.
Medidas de proteção contra esse tipo de ataque
Os medidas eficaz Os ataques de repetição anti-blockchain se enquadram em duas categorias: forte proteção contra repetição y proteção contra repetição opt-in.
Em forte proteção contra repetição, a marcador especial para o novo blockchain que emerge do hard fork. Isso para garantir que as transações realizadas não serão válidas no blockchain legado, não o contrário. Esse é o tipo de proteção implementada quando Bitcoin Cash separado de Bitcoin. Quando implementada, a proteção é executada automaticamente assim que o garfo rígido ocorre.
Além disso, proteção de reprodução opt-in requer que os usuários fazem alterações manualmente nas suas transações. Isso para garantir que eles não possam ser suscetíveis a repetir ataques. Essa proteção pode ser útil nos casos em que o fork é destinado a uma atualização para o blockchain de um criptomoeda, em vez de uma divisão completa.
Além dessas soluções, usuários individuais também podem tomar medidas para se protegerem. Um método para fazer isso é impedir a transferência de moedas até um certo número de blocos no novo blockchain. Isso impede que a rede verifique quaisquer ataques de repetição envolvendo essas unidades de moedas. No entanto, este é um opção que não é disponível em muitas bolsas ou cadeias.