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

robot
Geração de resumo em curso

Análise do incidente de ataque de reentrada do OrionProtocol

No dia 2 de fevereiro de 2023, o OrionProtocol sofreu um ataque de reentrada na Ethereum e na Binance Smart Chain, resultando em aproximadamente 2,9 milhões de dólares em perdas. Os atacantes exploraram uma vulnerabilidade do contrato, roubando 2.844.766 USDT na cadeia Ethereum e 191.606 BUSD na cadeia Binance Smart.

Processo de Ataque

O atacante primeiro criou um contrato de Token personalizado e realizou as operações de transferência e autorização relacionadas. Em seguida, o atacante contraiu um empréstimo através do método swap de um DEX e chamou o método ExchangeWithAtomic.swapThroughOrionPool para a troca de tokens. O caminho de troca incluía o endereço do contrato de Token criado pelo atacante.

Durante o processo de troca, devido à presença de um mecanismo de callback no contrato Token do atacante, o atacante conseguiu chamar novamente o método ExchangeWithAtomic.depositAsset através do Token.Transfer, resultando em um ataque de reentrada. Isso levou à acumulação duplicada do valor do depósito, e, finalmente, o atacante lucrou através da operação de retirada.

Análise de ataque de reentrada do OrionProtocol com PoC

Fluxo de Fundos

O capital inicial do atacante veio da conta da hot wallet de uma plataforma de negociação. Dos 1.651 ETH obtidos, 657,5 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 ocorre na função doSwapThroughOrionPool. Esta função chama a função _doSwapTokens, que atualiza a variável curBalance após a operação de transferência. O atacante aproveitou a funcionalidade de callback adicionada à função transfer do Token personalizado, chamando novamente a função depositAsset antes da atualização de curBalance, resultando em uma atualização incorreta de curBalance. Finalmente, após reembolsar o empréstimo relâmpago, o atacante retirou fundos adicionais através da função withdraw.

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 por 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 Reentrante do OrionProtocol com PoC

Análise de Ataques de Reentrada do OrionProtocol com PoC

Sugestões de Prevenção

Para evitar ataques semelhantes, recomenda-se que a equipe do projeto preste atenção aos seguintes pontos ao projetar o contrato:

  1. Considere as situações inesperadas que podem surgir devido a vários Tokens e múltiplos caminhos de troca.
  2. Seguir o padrão de codificação "Checagens-Efeitos-Interações" (Checks-Effects-Interactions), ou seja, primeiro realizar a verificação de condições, em seguida atualizar as variáveis de estado e, por último, executar chamadas externas.
  3. Use bloqueios de reentrada antes e depois de operações críticas para evitar ataques de reentrada.
  4. Realizar validação de segurança dos contratos Token de chamadas externas.
  5. Realizar auditorias de código e testes de segurança regularmente, para detectar e corrigir vulnerabilidades potenciais a tempo.

Ao adotar essas medidas, o projeto pode aumentar significativamente a segurança e a estabilidade dos contratos, minimizando o risco de sofrer ataques.

Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 7
  • Partilhar
Comentar
0/400
AirdropHunterXiaovip
· 5h atrás
O projeto de Blockchain foi novamente explorado.
Ver originalResponder0
MemecoinResearchervip
· 5h atrás
ngmi... parece que a maldição da reentrância ataca novamente fr fr
Ver originalResponder0
NightAirdroppervip
· 5h atrás
Todos os dias sendo atacado, que triste.
Ver originalResponder0
rugpull_survivorvip
· 5h atrás
fazer as pessoas de parvas uma vez e ainda há uma próxima vez
Ver originalResponder0
LightningLadyvip
· 5h atrás
A habilidade de programar é boa.
Ver originalResponder0
PrivacyMaximalistvip
· 5h atrás
Mais um projeto que puxou o tapete.
Ver originalResponder0
NotFinancialAdviservip
· 5h atrás
Mais um projeto foi roubado.
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)