Um ataque de repetição, às vezes também chamado de ataque de reprodução, é um ataque cibernético no qual a entidade maliciosa intercepta e repete uma transmissão de dados válida que passa por uma rede. Devido à validade dos dados originais (que normalmente vêm de um usuário autorizado), os protocolos de segurança da rede tratam o ataque como se fosse uma transmissão normal de dados. Como as mensagens originais são interceptadas e retransmitidas literalmente, os hackers que empregam ataques de repetição não precisam necessariamente descriptografá-las.


O que os hackers podem fazer com um ataque de repetição?

Os ataques de repetição podem ser usados ​​para obter acesso a informações armazenadas em uma rede protegida, passando-lhes credenciais aparentemente válidas. Eles também podem ser usados ​​para enganar instituições financeiras, levando-as a duplicar transações, permitindo que os invasores retirem dinheiro diretamente das contas das vítimas. Em alguns casos, os hackers combinam partes de diferentes mensagens criptografadas e passam o texto cifrado resultante para a rede, no que é conhecido como ataque de recortar e colar. A reação da rede a esse tipo de ataque geralmente fornece ao hacker informações valiosas que podem ser usadas para explorar ainda mais o sistema.

Apesar dos perigos óbvios associados a eles, há limites para o que os hackers podem alcançar apenas com ataques de repetição. Os invasores não podem alterar os dados que estão sendo enviados sem que a rede os rejeite, limitando a eficácia do ataque à repetição de ações passadas. Esses ataques também são relativamente fáceis de defender. Uma defesa tão básica quanto adicionar um carimbo de data/hora à transmissão de dados pode proteger contra tentativas simples de repetição. Os servidores também podem armazenar em cache mensagens repetidas e interrompê-las após um certo número de repetições para limitar o número de tentativas que um invasor pode fazer, reproduzindo mensagens em rápida sucessão.


Por que os ataques de repetição são importantes no mundo das criptomoedas

Embora estejam longe de ser exclusivos, esses ataques são particularmente relevantes para o ambiente de transações de criptomoedas e registros de blockchain. A razão para isso é que os livros-razão do blockchain às vezes passam por alterações ou atualizações de protocolo conhecidas como hard forks. Quando ocorre um hard fork, o razão existente se divide em dois, com um executando a versão legada do software e outro executando a versão nova e atualizada. Alguns hard forks destinam-se apenas a atualizar o livro-razão, enquanto outros se ramificam e formam efetivamente criptomoedas inteiramente novas. Um dos exemplos mais conhecidos de um hard fork deste último tipo é aquele que permitiu que o Bitcoin Cash se bifurcasse da blockchain principal do Bitcoin em 1º de agosto de 2017.

Quando esses hard forks ocorrem, torna-se teoricamente possível que os invasores empreguem ataques de repetição contra os livros-razão do blockchain. Uma transação processada em um razão por uma pessoa cuja carteira era válida antes do hard fork também será válida no outro. Como resultado, uma pessoa que recebeu um certo número de unidades de criptomoeda de outra pessoa através de um livro-razão poderia mudar para outro livro-razão, replicar a transação e transferir fraudulentamente um número idêntico de unidades para sua conta uma segunda vez. Como suas carteiras não fazem parte do histórico compartilhado dos livros-razão, os usuários que acessam um blockchain após a ocorrência de um hard fork não ficam vulneráveis ​​a esses ataques.


Como os Blockchains podem ser protegidos contra esses ataques?

Embora a vulnerabilidade dos livros-razão de blockchain bifurcados a ataques de repetição seja uma preocupação válida, a maioria dos hard forks inclui protocolos de segurança projetados especificamente para impedir que esses ataques sejam bem-sucedidos. Medidas eficazes contra ataques de repetição de blockchain se enquadram em duas categorias, conhecidas como proteção de repetição forte e proteção de repetição opcional. Na forte proteção de repetição, um marcador especial é adicionado ao novo livro-razão que emerge do hard fork para garantir que as transações realizadas nele não serão válidas no livro-razão legado, bem como vice-versa. Este é o tipo de proteção que foi implementado quando o Bitcoin Cash se bifurcou do Bitcoin.

Quando implementada, a forte proteção de repetição é executada automaticamente assim que ocorre o hard fork. No entanto, a proteção de repetição opcional exige que os usuários façam alterações manualmente em suas transações para garantir que elas não possam ser reproduzidas. A proteção opt-in pode ser útil em casos em que o hard fork se destina a ser uma atualização do razão principal de uma criptomoeda, em vez de uma divisão completa dele.

Além dessas soluções para todo o livro-razão, os usuários individuais também podem tomar medidas para se protegerem de serem vítimas de ataques de repetição. Um método para fazer isso é bloquear a transferência de moedas até que o livro-razão atinja um certo número de blocos, evitando assim que qualquer ataque de repetição envolvendo essas unidades de moeda seja verificado pela rede. Deve-se notar, porém, que nem todas as carteiras ou livros contábeis oferecem esta função.


Considerações finais

Os ataques de repetição representam uma ameaça real à segurança da rede quando bem-sucedidos. Ao contrário de muitos outros tipos de ataques, os ataques de repetição não dependem da desencriptação de dados, o que os torna uma solução alternativa eficaz para agentes maliciosos que são cada vez mais confrontados com protocolos de encriptação seguros. Devido aos hard forks usados ​​para atualizá-los ou dividi-los, os livros-razão de blockchain são especialmente vulneráveis ​​a esse tipo de ataque cibernético. No entanto, existem soluções robustas que são razoavelmente eficazes na proteção dos sistemas blockchain contra eles. Em particular, o emprego de uma forte proteção de repetição pode garantir que os invasores não conseguirão replicar as transações após a ocorrência de um hard fork.