Replay attack (ataque de repetição)

Um ataque de repetição assinado em um contrato inteligente é um tipo de vulnerabilidade de segurança em que um atacante intercepta uma mensagem assinada válida e, em seguida, a reproduz no contrato. A mensagem normalmente é assinada com uma chave privada e contém instruções executáveis para o contrato inteligente. Ao reproduzir a mensagem, um atacante pode enganar o contrato inteligente para que execute novamente as mesmas instruções, o que pode resultar em um comportamento indesejado ou até mesmo em perdas financeiras.

Exemplo:

Um contrato inteligente que permite aos usuários sacar fundos de sua conta por meio do envio de uma mensagem autorizada e assinada. Um atacante poderia interceptar uma mensagem de saque válida de um usuário legítimo e, em seguida, reproduzir essa mensagem posteriormente. Mesmo que o contexto tenha mudado, o contrato inteligente presumiria que a mensagem assinada ainda é válida, por ter sido assinada digitalmente. Isso poderia permitir ao atacante sacar fundos da conta do usuário.

Mitigação:

Para prevenir ataques de repetição assinados, os desenvolvedores de contratos inteligentes podem implementar diversas medidas de segurança, incluindo o uso de identificadores únicos para cada mensagem e a adição de restrições baseadas em tempo para a validade das mensagens assinadas.

Last updated