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

Análise do Processo de Ataque

O atacante primeiro criou um contrato de Token e realizou operações de transferência e autorização para preparar o ataque subsequente. Em seguida, o atacante tomou emprestado 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 configurado como [USDC, Token criado pelo atacante, USDT].

Durante o processo de troca, devido à funcionalidade de callback do contrato Token criado pelo atacante, o atacante conseguiu realizar um ataque de reentrada ao continuar a chamar o método ExchangeWithAtomic.depositAsset através do Token.Transfer. Isso resultou em um acúmulo contínuo do montante depositado, e finalmente o atacante completou o lucro através da operação de saque.

Análise de ataque de reentrada do OrionProtocol com PoC

Fluxo de Fundos

Os fundos iniciais do atacante vêm da conta de uma carteira quente de uma plataforma de troca. Dos 1651 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 de reentrada do OrionProtocol com PoC

Análise de Vulnerabilidades

O problema central da vulnerabilidade aparece na função doSwapThroughOrionPool. Esta função atualiza a variável curBalance após a execução da transferência de tokens, o que cria uma oportunidade para os atacantes. Os atacantes adicionaram uma funcionalidade de callback à função transfer do token falso, chamando a função depositAsset, o que resulta na atualização incorreta de curBalance. No final, após reembolsar o empréstimo relâmpago, os atacantes retiraram fundos em excesso através da função withdraw.

Análise da 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

Repetição do ataque

Os pesquisadores forneceram parte do código POC que simula o processo de ataque. Os resultados dos testes mostraram que o atacante conseguiu explorar a vulnerabilidade do contrato para obter USDT adicional.

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de Ataques 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

Para projetos com funcionalidade de troca de tokens, é necessário considerar os riscos de segurança que podem surgir de múltiplos tokens e caminhos de troca. Recomenda-se seguir a norma de codificação "primeiro julgar, depois gravar variáveis, e em seguida realizar chamadas externas" (modelo Checks-Effects-Interactions), para aumentar a segurança e estabilidade do contrato. Além disso, os desenvolvedores do projeto devem, na medida do possível, eliminar os riscos do contrato fora da cadeia, garantindo a operação segura do ecossistema Web3.

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
  • 2
  • Partilhar
Comentar
0/400
HallucinationGrowervip
· 07-12 12:30
O que foi feito sem o trabalho de segurança?
Ver originalResponder0
degenonymousvip
· 07-12 12:23
Os contratos geralmente têm muitas falhas.
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)