Análise profunda da perda de 2,9 milhões de dólares devido a um ataque de reentrada ao OrionProtocol

robot
Geração do resumo em andamento

Análise do incidente de ataque de reentrada ao OrionProtocol

No dia 2 de fevereiro de 2023, à tarde, o projeto OrionProtocol na Ethereum e na Binance Smart Chain foi alvo de um ataque de reentrada devido a uma falha no contrato. O atacante roubou aproximadamente 2,84 milhões de USDT da cadeia Ethereum e cerca de 190 mil BUSD da Binance Smart Chain, totalizando uma perda de cerca de 2,9 milhões de dólares.

Análise do Processo de Ataque

Os atacantes primeiro implementaram um contrato de Token personalizado e realizaram uma série de preparações. Em seguida, os atacantes tomaram emprestado fundos através da funcionalidade de swap de um DEX, chamando o método ExchangeWithAtomic.swapThroughOrionPool do OrionProtocol para a troca de tokens. O caminho da troca incluía o endereço do contrato de Token criado pelos atacantes.

Durante o processo de troca, o atacante explorou a funcionalidade de retorno do contrato Token personalizado, chamando repetidamente o método ExchangeWithAtomic.depositAsset, o que resultou na adição múltipla do valor depositado. No final, o atacante obteve lucro através da operação de retirada.

Análise de ataque de reentrada do OrionProtocol com PoC

Fluxo de Fundos

De acordo com o rastreamento, os fundos iniciais do atacante vieram de uma carteira quente de uma plataforma de negociação. Dos 1651 ETH obtidos com o ataque, cerca de 657,5 ainda permanecem no endereço da carteira do atacante, enquanto o restante foi transferido através de serviços de mistura.

Análise de Ataque de Reentrada do OrionProtocol com PoC

Análise de Vulnerabilidades

A questão central reside na função doSwapThroughOrionPool do contrato ExchangeWithAtomic. Esta função atualiza a variável curBalance após a execução da transferência de tokens, o que cria uma oportunidade de reentrada para o atacante. O atacante, adicionando lógica de callback na função transfer do Token personalizado, chama repetidamente a função depositAsset, resultando em uma atualização incorreta de curBalance.

Os atacantes exploraram esta vulnerabilidade e conseguiram retirar fundos em excesso após a devolução do empréstimo relâmpago.

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de Ataque de Reentrada do OrionProtocol com PoC

Análise de ataque de reentrada do OrionProtocol com PoC

Reproduzindo o Ataque

Os pesquisadores forneceram parte do código PoC que simula o processo de ataque. O código inclui etapas como a criação de Token personalizado, a criação de um pool de liquidez, a autorização de operações e a execução do ataque. Os resultados dos testes mostram que o ataque foi reproduzido com sucesso, consistente com os resultados da pilha de chamadas do ataque real.

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de Ataque de Reentrada do OrionProtocol com PoC

Análise de ataque de reentrada do OrionProtocol com PoC

Sugestões de segurança

  1. No design de contratos, é necessário considerar os riscos de segurança que podem surgir de diversos Tokens e caminhos de troca.

  2. Seguir o padrão de codificação "Verificações-Efeitos-Interações" (Checks-Effects-Interactions), ou seja, realizar primeiro a verificação das condições, depois atualizar as variáveis de estado e, por último, interagir com contratos externos.

  3. Deve ter especial cuidado ao lidar com chamadas externas, especialmente em operações que envolvem transferências de fundos.

  4. Realizar auditorias de segurança regularmente para identificar e corrigir vulnerabilidades potenciais.

  5. Implementar um controle de permissões e um mecanismo de limites razoáveis para reduzir as perdas potenciais de um único ataque.

Este evento lembra novamente as equipas de desenvolvimento de projetos Web3 que, ao buscar inovação, devem dar especial atenção à segurança dos contratos inteligentes. Somente construindo infraestruturas mais seguras e fiáveis é que podemos promover o desenvolvimento saudável de toda a indústria.

Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 8
  • Compartilhar
Comentário
0/400
ShadowStakervip
· 07-08 21:29
mais um dia, mais uma exploração de defi... quando é que os desenvolvedores aprenderão a verificar a reentrância smh
Ver originalResponder0
TokenTherapistvip
· 07-07 15:54
Mais um que caiu.
Ver originalResponder0
GasWastervip
· 07-06 14:26
Outra vez foi roubado.
Ver originalResponder0
SigmaBrainvip
· 07-05 22:13
Outra vez um ataque de reentrada, a situação está vulnerável.
Ver originalResponder0
ponzi_poetvip
· 07-05 22:13
E a segurança? Para onde foi?
Ver originalResponder0
GetRichLeekvip
· 07-05 22:13
Na frente a comer melancia, nem conseguem fazer uma auditoria de contrato, estão a perder muito.
Ver originalResponder0
BearMarketGardenervip
· 07-05 22:07
O contrato explodiu novamente, ai.
Ver originalResponder0
DaoGovernanceOfficervip
· 07-05 22:00
*suspiro* empiricamente falando, 99% desses hacks decorrem de descuidos básicos na gestão de estado...
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)