O OrionProtocol sofreu um ataque de reentrada de 2,9 milhões de dólares: Análise da vulnerabilidade e recomendações de prevenção.

robot
Geração do resumo em andamento

Análise do incidente de ataque de reentrada ao OrionProtocol

Resumo do Evento

De acordo com os dados de monitoramento da blockchain, em 2 de fevereiro de 2023 às 15:40:20 UTC, o OrionProtocol sofreu um ataque de reentrada na Ethereum e na Binance Smart Chain devido a uma vulnerabilidade no contrato. O atacante lucrou 2.844.766 USDT da rede Ethereum e 191.606 BUSD da Binance Smart Chain, totalizando cerca de 2,9 milhões de dólares.

Análise de ataque de reentrada do OrionProtocol com PoC

Análise do Processo de Ataque

Detalhes do ataque na cadeia Ethereum

Token personalizado

Análise de ataque de reentrada do OrionProtocol com PoC

Durante o processo de troca, devido à funcionalidade de callback incluída no contrato Token criado pelo atacante, o atacante foi capaz de chamar repetidamente a função ExchangeWithAtomic.depositAsset através do método Token.Transfer durante a execução de ExchangeWithAtomic.swapThroughOrionPool. Isso resultou em um aumento contínuo do montante depositado, e, finalmente, o atacante conseguiu lucrar através da operação de retirada.

Análise de ataque de reentrada do OrionProtocol com PoC

Fluxo de Fundos

A fonte inicial de financiamento do atacante vem de uma grande plataforma de troca, através da sua carteira quente. Dos 1.651 ETH obtidos no ataque, 657,5 ETH ainda permanecem no endereço da carteira do atacante, enquanto o restante foi transferido através de um serviço de mistura.

Análise de Ataque Reentrante do OrionProtocol com PoC

Análise de Vulnerabilidades

O problema central da vulnerabilidade surge na função doSwapThroughOrionPool. Esta função atualiza a variável curBalance após a execução da transferência de tokens, sem seguir o padrão de "verificação-efeito-interação" (Checks-Effects-Interactions). Um atacante aproveitou o mecanismo de callback adicionado à função transfer do Token personalizado, chamando repetidamente a função depositAsset antes da atualização de curBalance, resultando em um erro no cálculo do saldo.

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

Análise de ataque de reentrada do OrionProtocol com PoC

Sugestões de Prevenção

  1. A equipe do projeto, ao desenhar contratos que envolvem funcionalidades de troca de tokens, deve considerar os riscos de segurança que podem surgir de vários tipos de tokens e caminhos de troca.

  2. Seguir rigorosamente as normas de codificação "verificação-efeito-interação", ou seja, primeiro realizar a verificação de condições, depois atualizar as variáveis de estado e, por último, executar chamadas externas.

  3. Para funções que podem ter risco de reentrada, utilize mecanismos de proteção como bloqueios de reentrada.

  4. Adicione verificações de saldo antes e depois de operações críticas para garantir a atomicidade e a consistência das transações.

  5. Realizar auditorias de código e testes de segurança regularmente, detectando e corrigindo rapidamente potenciais vulnerabilidades.

  6. Considerar a implementação de limites de montante de transação ou limites de frequência de transação, para reduzir as perdas causadas por ataques únicos.

Ao tomar essas medidas, o projeto pode aumentar significativamente a segurança dos contratos e reduzir o risco de sofrer ataques semelhantes. No ecossistema Web3 em rápida evolução, a segurança deve sempre ser a principal consideração.

TOKEN1.01%
ETH1.97%
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
  • 4
  • Compartilhar
Comentário
0/400
BearMarketGardenervip
· 2h atrás
Mais uma reentrada, todos os legumes foram tirados.
Ver originalResponder0
Token_Sherpavip
· 11h atrás
ugh... mais um dia, mais um ataque de reentrância. quando é que os devs aprenderão a verificar os efeitos e interações smh
Ver originalResponder0
SmartContractWorkervip
· 11h atrás
Outra vez foi reentrado, está bem
Ver originalResponder0
gas_fee_therapistvip
· 11h atrás
É novamente uma reentrada, uma rua sem saída.
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)