O Que é Replay Attack?

Compartilhar
Copied to clipboard!
O Que é Replay Attack?
Ouça este artigo
00:00 / 00:00

Um replay attack (ataque de repetição), às vezes também chamado de playback attack (ataque de reprodução), é um ataque no qual uma entidade maliciosa intercepta e repete uma transmissão de dados válida que trafega 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 de dados normal. Já que as mensagens originais são interceptadas e retransmitidas textualmente, os hackers que empregam replay attacks não precisam necessariamente descriptografá-las.


O que os hackers podem fazer com um replay attack?

Os replay attacks podem ser usados para obter acesso a informações armazenadas em uma rede protegida, usando credenciais aparentemente válidas. Eles também podem ser usados para enganar as instituições financeiras a fim de duplicar transações, permitindo que os invasores retirem dinheiro diretamente das contas de suas 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 cut-and-paste attack (ataque de recortar e colar). A reação da rede a esse tipo de ataque muitas vezes dará 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 conseguem alcançar usando unicamente replay attacks. As entidades maliciosas não podem alterar os dados que estão sendo enviados sem que a rede as rejeite, limitando a eficácia do ataque à repetição de ações passadas. Estes ataques também são relativamente fáceis de defender. Uma defesa tão básica quanto adicionar um registro de data e hora à transmissão de dados pode proteger contra simples tentativas de repetição. Os servidores também podem armazenar mensagens repetidas em cache e interrompê-las após um determinado número de repetições para limitar o número de tentativas que um invasor pode fazer reproduzindo mensagens em uma sucessão rápida.


Por que os replay attacks têm importância no mundo das criptomoedas?

Embora estejam longe de ser exclusivos, esses ataques são particularmente relevantes para o ambiente de transações das criptomoedas e registros das Blockchains. A razão para isso é que os registros das Blockchains às vezes passam por mudanças de protocolo ou atualizações conhecidas como hard forks (bifurcação de rede). Quando um hard fork ocorre, o ledger (livro razão) existente se divide em dois, com um executando a versão antiga do software e outro executando a versão nova e atualizada. Alguns hard forks são destinados apenas a atualizar o ledger, enquanto outros se ramificam e efetivamente formam criptomoedas inteiramente novas.  Um dos exemplos mais conhecidos de um hard fork da última variedade foi o que permitiu que a Bitcoin Cash fosse criada apartir da Bitcoin em 1º de agosto de 2017.

Quando esses hard forks ocorrem, torna-se teoricamente possível que os hackers utilizem replay attacks contra ledgers de blockchains. Uma transação processada em um ledger 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 moedas de outra pessoa através de um ledger poderia mudar para o outro ledger, replicar a transação e transferir fraudulentamente um número idêntico de unidades para a conta dele novamente. Como suas carteiras não fazem parte do histórico compartilhado dos ledgers, os usuários que chegam a uma blockchain depois que um hard fork ocorre não são vulneráveis a esses tipos de ataque.


Como as redes blockchains podem se proteger desses ataques?

Embora a vulnerabilidade das ledgers bifurcadas contra replay attacks seja uma preocupação recorrente, a maioria dos forks inclui protocolos de segurança especificamente projetados para evitar que esses ataques sejam bem-sucedidos. Medidas efetivas contra replay attacks em blockchains estão divididos em duas categorias, conhecidas como Strong Replay Protection (Proteção de Repetição Forte) e Opt-in Replay Protection (Proteção de Repetição Opcional). No caso da Strong Replay Protection, um marcador especial é adicionado à nova blockchain (oriunda do hard fork) para garantir que as transações realizadas nela não sejam válidas na blockchain antiga - e vice-versa. Este é o tipo de proteção implementada após o hard do fork da Bitcoin que gerou a Bitcoin Cash.

Quando implementada, a Proteção de Reprodução Forte é executada automaticamente assim que o hard fork ocorre. No entanto, a Proteção de Reprodução Opcional exige que os usuários façam alterações manuais em suas transações para garantir que elas não possam ser repetidas. A proteção opcional pode ser útil nos casos em que o hard fork é planejado como uma atualização do ledger principal de uma criptomoeda, ao invés de uma divisão completa a partir dele.

Além dessas soluções para todos os ledgers, os usuários individuais também podem tomar medidas para se protegerem contra os replay attacks. Uma forma de fazer isso é bloquear as moedas de serem transferidas até que o ledger atinja um certo número de blocos, evitando assim que qualquer replay attacks envolvendo essas unidades seja verificado pela rede. Deve-se notar, no entanto, que nem todas as carteiras ou ledgers oferecem essa função.


Considerações finais

Os replay attacks representam uma ameaça real à segurança da rede quando são bem-sucedidos. Ao contrário de muitos outros tipos de ataque, os replay attacks não dependem da descriptografia de dados, tornando-os uma solução eficaz para os agentes mal-intencionados que são cada vez mais confrontados por protocolos de criptografia seguros. Por causa dos hard forks usados para atualizá-los ou dividi-los, as ledgers de Blockchains são especialmente vulneráveis a esse tipo de ataque. No entanto, existem soluções robustas que são eficazes em proteger esses sistemas. Em particular, o uso de uma Proteção de Repetição Forte garante que os invasores não repliquem as transações depois que um hard fork é concluído.

Loading