OrionProtocol sofreu um ataque de reentrada, resultando na perda de 2,9 milhões de dólares em encriptaçã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 à tarde, o OrionProtocol na Ethereum e na Binance Smart Chain sofreu um ataque de reentrada devido a uma vulnerabilidade no contrato, resultando em perdas de aproximadamente 2,9 milhões de dólares, incluindo 2.844.766 USDT na Ethereum e 191.606 BUSD na Binance Smart Chain.

Análise de ataque de reentrada do OrionProtocol com PoC

Análise do processo de ataque

O atacante primeiro criou um contrato Token e realizou as operações de transferência e autorização relacionadas, preparando-se para o ataque subsequente. Depois, o atacante tomou um empréstimo através do método swap do UNI-V2 e chamou o método swapThroughOrionPool do contrato ExchangeWithAtomic para realizar a troca de tokens. O caminho de troca foi definido como USDC → Token criado pelo atacante → USDT.

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, quando o método ExchangeWithAtomic.swapThroughOrionPool é executado, o Token.Transfer continua a chamar o método ExchangeWithAtomic.depositAsset, resultando em um ataque de reentrada. Isso faz com que o montante do depósito continue a acumular, permitindo que o atacante finalize o lucro 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 vem da conta da carteira quente 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 serviços de mistura.

Análise de ataque de reentrada 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, onde a operação de transferência de tokens acontece antes da atualização de curBalance. Um atacante aproveita a funcionalidade de callback adicionada à função transfer do Token personalizado para chamar novamente a função depositAsset antes da atualização de curBalance, levando a uma atualização incorreta de curBalance. No final, após reembolsar o empréstimo relâmpago, o atacante extrai os fundos chamando a função withdraw para completar o ataque.

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. O design do contrato deve considerar os potenciais riscos que podem advir de várias Tokens e caminhos de troca.

  2. Seguir a norma de codificação "primeiro avaliar, depois atualizar variáveis e, por último, realizar chamadas externas" (modelo Checks-Effects-Interactions) pode aumentar efetivamente a segurança do contrato.

  3. Ao implementar a funcionalidade de troca de tokens, é necessário ter especial atenção ao risco de ataques de reentrada, podendo considerar o uso de mecanismos como bloqueios de reentrada para proteção.

  4. Para funções críticas que envolvem operações financeiras, recomenda-se realizar uma auditoria de segurança abrangente e testes, incluindo simulações de várias condições limite e cenários de exceção.

  5. Realizar verificações de segurança de contratos regularmente, atualizando e corrigindo prontamente potenciais vulnerabilidades.

Tomando essas medidas, é possível reduzir significativamente o risco de ataques a contratos inteligentes e aumentar a segurança geral do projeto. No ecossistema Web3, a segurança é sempre uma das considerações mais importantes.

TOKEN-3.06%
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
  • 6
  • Republicar
  • Partilhar
Comentar
0/400
GasFeeCriervip
· 19h atrás
Não faz bem a proteção do contrato? Bem feito!
Ver originalResponder0
AirdropBuffetvip
· 08-12 21:06
Outro contrato inteligente falhou~
Ver originalResponder0
ZenMinervip
· 08-12 21:05
A vulnerabilidade é tão grande, por que não me chamam para auditar?
Ver originalResponder0
HallucinationGrowervip
· 08-12 21:00
Outra oportunidade de puxar o tapete
Ver originalResponder0
TokenStormvip
· 08-12 20:57
Ai, o script está todo escrito, falta apenas um passo.
Ver originalResponder0
ZKProofEnthusiastvip
· 08-12 20:36
Outra operação de puxar o tapete?
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)