Quais são as vulnerabilidades comuns de segurança nas pontes de interoperabilidade entre blockchains?

Resumo

As pontes blockchain são a base para alcançar interoperabilidade no universo das blockchains. Portanto, a segurança das tecnologias de ponte entre cadeias é fundamental. Algumas vulnerabilidades comuns de segurança em pontes blockchain incluem validações insuficientes na cadeia e fora dela, manejo inadequado de tokens nativos e configurações incorretas. Para garantir uma lógica de validação adequada, recomenda-se testar todas as possíveis vetores de ataque às pontes entre cadeias antes do lançamento.

Introdução

As pontes blockchain conectam duas blockchains, permitindo que elas interajam por meio de um protocolo. Com uma ponte blockchain, os usuários que desejam participar de atividades DeFi na rede Ethereum, por exemplo, podem simplesmente possuir Bitcoin, sem precisar vendê-los, para alcançar seu objetivo.

As pontes blockchain representam a base para a interoperabilidade no setor. Elas utilizam diversas validações on-chain e off-chain para funcionar, o que também as torna suscetíveis a diferentes vulnerabilidades de segurança.

Por que a segurança das pontes blockchain é tão importante?

Normalmente, as pontes blockchain mantêm tokens que os usuários desejam transferir de uma cadeia para outra. Essas pontes geralmente são implantadas na forma de contratos inteligentes e, à medida que as transferências entre cadeias aumentam, elas passam a deter uma grande quantidade de tokens, tornando-se alvos cobiçados por hackers.

Além disso, devido à complexidade de seus componentes, a superfície de ataque das pontes blockchain costuma ser bastante ampla. Assim, indivíduos mal-intencionados têm forte motivação para direcionar ataques a essas aplicações, na esperança de obter grandes quantias de fundos.

De acordo com estimativas da CertiK, em 2022, ataques a pontes blockchain causaram perdas superiores a 1,3 bilhão de dólares, representando 36% do total de perdas daquele ano.

Vulnerabilidades comuns na segurança de pontes entre cadeias

Para fortalecer a segurança das pontes blockchain, é fundamental entender as vulnerabilidades mais comuns e testá-las antes do lançamento. Essas vulnerabilidades geralmente derivam de quatro aspectos principais:

Validação insuficiente na cadeia

Para pontes simples, especialmente aquelas projetadas para dApps específicos, normalmente há validações mínimas na cadeia. Essas pontes dependem de backends centralizados para realizar operações básicas, como cunhagem, queima e transferência de tokens, sendo todas as validações feitas fora da cadeia.

Outros tipos de pontes utilizam contratos inteligentes para validar mensagens e realizar verificações na cadeia. Nesse caso, quando o usuário deposita fundos na cadeia, o contrato inteligente gera uma mensagem assinada e a devolve na transação. Essa assinatura serve como prova de recarga, validando a solicitação de saque do usuário em outra cadeia. Esse processo deve ser capaz de prevenir ataques de repetição e falsificação de registros de recarga.

Porém, se houver vulnerabilidades nesse processo de validação na cadeia, ataques podem causar perdas graves. Por exemplo, se a blockchain usar uma árvore de Merkle para verificar registros de transações, um atacante pode gerar provas falsificadas. Isso significa que, se a validação tiver falhas, o invasor pode contornar a verificação de provas e cunhar novos tokens em sua conta.

Algumas pontes utilizam o conceito de “tokens embrulhados(wrapped tokens)”. Por exemplo, ao transferir DAI da Ethereum para a BNB Chain, o DAI é retirado do contrato na Ethereum e uma quantidade equivalente de DAI embrulhado é emitida na BNB Chain.

Porém, se essa transação não for validada corretamente, um invasor pode implantar contratos maliciosos e manipular essa funcionalidade para redirecionar tokens embrulhados para endereços incorretos.

Além disso, o invasor precisa que a vítima aprove previamente o contrato da ponte para usar a função “TransferFrom” e transferir tokens, podendo assim roubar ativos do contrato de ponte.

O problema é que muitas pontes pedem aos usuários de dApps que aprovem ilimitadamente tokens, uma prática comum que reduz custos de gás, mas que também permite que contratos inteligentes acessem tokens no wallet do usuário sem limite, aumentando o risco. Os atacantes podem explorar essas validações insuficientes e aprovações excessivas para transferir tokens de outros usuários para si.

Validação fora da cadeia

Em alguns sistemas de pontes entre cadeias, servidores de backend fora da cadeia desempenham papel crucial na validação da legitimidade das mensagens enviadas a partir da blockchain. Nesse cenário, a validação das transações de recarga é especialmente importante.

O funcionamento de pontes com validação off-chain é o seguinte:

  • O usuário interage com o dApp, depositando tokens no contrato inteligente na cadeia de origem.
  • O dApp envia o hash da transação de recarga ao backend via API.
  • O hash da transação passa por múltiplas validações no servidor. Se considerado válido, o assinante assina uma mensagem e a envia de volta ao usuário via API.
  • Após receber a assinatura, o dApp a valida e permite que o usuário retire tokens na cadeia de destino.

O backend deve garantir que a transação de recarga seja autêntica e não falsificada. Ele decide se o usuário pode retirar os tokens na cadeia de destino, tornando-se um alvo primário de ataques.

O servidor precisa validar a estrutura do evento de início da transação e o endereço do contrato que a iniciou. Se essa validação for negligenciada, um invasor pode implantar contratos maliciosos que falsifiquem eventos de recarga com a mesma estrutura de eventos legítimos.

Se o backend não verificar qual endereço iniciou o evento, ele pode aceitar uma transação inválida e assinar a mensagem. Assim, o invasor pode enviar hashes de transações ao backend, contornando a validação, e retirar tokens na cadeia de destino.

Manipulação inadequada de tokens nativos

As pontes entre cadeias usam diferentes métodos para lidar com tokens nativos e tokens de utilidade. Por exemplo, na rede Ethereum, o token nativo é ETH, enquanto a maioria dos tokens de utilidade segue o padrão ERC-20.

Se o usuário deseja transferir ETH para outra cadeia, deve primeiro depositá-lo na ponte. Para isso, basta incluir ETH na transação, que pode ser recuperada lendo o campo “msg.value”.

Depositar tokens ERC-20 difere bastante de depositar ETH. Para tokens ERC-20, o usuário precisa aprovar a ponte para gastar seus tokens. Após aprovar e depositar os tokens na ponte, o contrato pode queimar os tokens usando a função “burnFrom(” ou transferi-los usando “transferFrom)”.

Para distinguir essas operações, pode-se usar uma estrutura condicional if-else na mesma função ou criar duas funções separadas para cada cenário. Como os procedimentos são diferentes, tentar usar a função de recarga ERC-20 para depositar ETH pode resultar na perda dos fundos.

Ao lidar com solicitações de recarga de ERC-20, o usuário geralmente fornece o endereço do token como parâmetro de entrada. Isso apresenta riscos significativos, pois chamadas externas não confiáveis podem ocorrer durante a transação. Uma prática comum para minimizar riscos é usar uma lista de permissões (whitelist) contendo apenas tokens suportados pela ponte. Assim, apenas endereços na whitelist são passados como parâmetros, evitando chamadas externas não confiáveis.

Por outro lado, ao tratar tokens nativos, há um problema adicional: eles não possuem endereço. Pode-se usar um endereço especial, como o “zero address(0x000…)”, para representá-los. Contudo, se a lógica de validação da whitelist não for implementada corretamente, passar o endereço zero pode contornar a validação.

Quando o contrato da ponte chama “TransferFrom” para mover ativos do usuário para o contrato, chamadas externas ao endereço zero retornam false, pois esse endereço não possui implementação de “transferFrom”. Mas, se o contrato não tratar corretamente o valor de retorno, a transação pode continuar, criando uma brecha para o invasor executar transações sem transferir tokens.

Configuração incorreta

Na maioria das pontes, há um papel de privilégio responsável por incluir ou excluir tokens e endereços na whitelist ou blacklist, além de atribuir ou alterar os signatários e outras configurações críticas. Garantir que todas as configurações estejam corretas é essencial, pois uma negligência aparentemente pequena pode causar perdas significativas.

Na verdade, já ocorreram casos em que um invasor conseguiu contornar a validação de registros de transações devido a uma configuração incorreta. Em um desses casos, a equipe do projeto realizou uma atualização de protocolo dias antes do ataque, alterando uma variável que representa o valor padrão de mensagens confiáveis. Essa mudança fez com que todas as mensagens fossem automaticamente consideradas validadas, permitindo que um invasor enviasse qualquer mensagem e ela fosse aceita.

Como melhorar a segurança das pontes entre cadeias

Os quatro vulnerabilidades comuns mencionadas acima demonstram que os desafios de segurança no ecossistema de blockchains interligadas são consideráveis. Para enfrentá-los, é necessário adotar uma abordagem “contextualizada”, pois não há uma solução única capaz de resolver todos os problemas.

Por exemplo, cada ponte entre cadeias possui requisitos de validação específicos, e oferecer apenas diretrizes genéricas para garantir que o processo de validação seja livre de erros é difícil. A maneira mais eficaz de evitar contornar validações é realizar testes abrangentes em todas as possíveis vetores de ataque e assegurar que a lógica de validação seja razoável.

Em suma, é imprescindível realizar testes rigorosos contra ataques potenciais e prestar atenção especial às vulnerabilidades mais comuns em pontes entre cadeias.

Conclusão

Devido ao grande volume de fundos envolvidos, as pontes entre cadeias têm sido alvos frequentes de ataques. Os desenvolvedores podem fortalecer a segurança dessas pontes realizando testes completos antes do deployment e incluindo auditorias de terceiros, reduzindo assim o risco de ataques catastróficos que têm ocorrido nos últimos anos. As pontes entre cadeias são essenciais no mundo multi-chain, mas, ao projetar e construir uma infraestrutura Web3 eficaz, a segurança deve ser prioridade máxima. ($STO

ETH0,17%
BTC0,05%
DAI-0,04%
BNB2,41%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • Fixar

Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • بالعربية
  • Português (Brasil)
  • 简体中文
  • English
  • Español
  • Français (Afrique)
  • Bahasa Indonesia
  • 日本語
  • Português (Portugal)
  • Русский
  • 繁體中文
  • Українська
  • Tiếng Việt