OrionProtocol sofreu um ataque de reentrância, resultando em uma perda de cerca de 2,9 milhões de dólares.

Análise do incidente de ataque de reentrada do OrionProtocol

No dia 2 de fevereiro de 2023, às 15:40:20 UTC, o OrionProtocol na Ethereum e na Binance Smart Chain sofreu um ataque de reentrada 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 uma perda de cerca de 2,9 milhões de dólares.

Análise do processo de ataque

Os atacantes primeiro implantaram um contrato de Token personalizado e realizaram uma série de preparações. Em seguida, os atacantes tomaram emprestados fundos através da função swap de um DEX e chamaram o método ExchangeWithAtomic.swapThroughOrionPool do OrionProtocol para realizar a troca de tokens. O caminho de troca incluía o endereço do contrato Token criado pelos atacantes, o que preparou o terreno para um ataque de callback subsequente.

Durante o processo de troca, devido à lógica de callback incluída no contrato Token do atacante, cada transferência desencadeia uma chamada de reentrada para o método ExchangeWithAtomic.depositAsset. Isso resulta na acumulação múltipla do valor do depósito, permitindo que o atacante obtenha lucros excessivos através da operação de retirada.

Análise de ataque Reentrante do OrionProtocol com PoC

Fluxo de Capital

O capital inicial do atacante veio da carteira quente de uma plataforma de negociação. Após o sucesso do ataque, dos 1.651 ETH obtidos, 657,5 ETH permanecem na 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 núcleo da vulnerabilidade reside nas funções doSwapThroughOrionPool e _doSwapTokens do contrato ExchangeWithAtomic. Essas funções atualizam a variável curBalance apenas após a execução da transferência de tokens, o que proporciona uma oportunidade para o atacante explorar um ataque de reentrada. O atacante, ao adicionar lógica de callback na função transfer do Token personalizado, faz com que curBalance seja atualizado incorretamente, permitindo a retirada de fundos adicionais mesmo após o reembolso 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

Análise de ataque de reentrada do OrionProtocol com PoC

Reproduzindo o ataque

Os pesquisadores forneceram parte do código POC, simulando o processo de ataque. Os resultados dos testes mostraram que o atacante conseguiu explorar uma 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 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

Para este tipo de ataque, recomenda-se que a equipe do projeto:

  1. Ao implementar a funcionalidade de troca de tokens em um contrato, é necessário considerar os riscos de segurança que podem ser trazidos por vários tipos de tokens e caminhos de troca.
  2. Seguir rigorosamente o padrão de codificação "Checks-Effects-Interactions", ou seja, primeiro realizar a verificação de condições, em seguida atualizar as variáveis de estado e, por fim, executar chamadas externas.
  3. Use bloqueios de reentrada ou mecanismos semelhantes antes de atualizar variáveis de estado críticas para evitar ataques de reentrada.
  4. Realizar auditorias de código e testes de segurança regularmente, identificando e corrigindo prontamente vulnerabilidades potenciais.

Este evento destaca novamente a importância da segurança dos contratos inteligentes. As partes do projeto devem continuar a prestar atenção às questões de segurança, adotando medidas de proteção abrangentes para garantir a segurança dos ativos dos usuários e o desenvolvimento estável a longo prazo do projeto.

TOKEN-1.72%
ETH-0.84%
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
  • 10
  • Repostar
  • Compartilhar
Comentário
0/400
ColdWalletGuardianvip
· 08-14 12:21
As vulnerabilidades são difíceis de evitar.
Ver originalResponder0
NestedFoxvip
· 08-14 11:36
Então isso explodiu, hein?
Ver originalResponder0
ImpermanentLossEnjoyervip
· 08-14 11:01
Perda impermanente的日常啦
Ver originalResponder0
rug_connoisseurvip
· 08-12 04:38
Mais um contrato inteligente falhou.
Ver originalResponder0
SchroedingerGasvip
· 08-11 18:57
de novo foi arrancado quem
Ver originalResponder0
DAOTruantvip
· 08-11 18:57
Mais um contrato foi roubado.
Ver originalResponder0
MainnetDelayedAgainvip
· 08-11 18:56
Mais um caso de entrada na base de dados estatística, realmente não deveria.
Ver originalResponder0
GateUser-5854de8bvip
· 08-11 18:51
Mais uma vez, o contrato foi roubado...
Ver originalResponder0
MEV_Whisperervip
· 08-11 18:51
Outra vez reentrada, escapuliu.
Ver originalResponder0
SignatureVerifiervip
· 08-11 18:37
*suspiro* mais uma falha de reentrância de livro didático. estatisticamente inevitável com verificações de validação insuficientes. vi isso a acontecer, para ser honesto.
Ver originalResponder0
Ver projetos
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)