OrionProtocol sofreu um ataque de reentrada, com perdas de quase 2,9 milhões de dólares.

robot
Geração de resumo em curso

Análise do incidente de ataque de reentrada do OrionProtocol

No dia 2 de fevereiro de 2023, às 15:40, o OrionProtocol na Ethereum e na Binance Smart Chain sofreu um ataque de reentrada devido a uma vulnerabilidade no contrato, com perdas totais de aproximadamente 2,9 milhões de dólares, das quais 2.844.766 USDT foram perdidos na cadeia Ethereum e 191.606 BUSD na cadeia Binance Smart.

Análise do Processo de Ataque

O atacante primeiro implantou um contrato de Token personalizado e realizou operações de transferência e autorização relevantes, preparando-se para o ataque subsequente. Em seguida, o atacante tomou emprestado usando o método swap do UNI-V2 e chamou o método swapThroughOrionPool do contrato ExchangeWithAtomic para a troca de tokens. O caminho de troca foi configurado como [USDC, Token do atacante, USDT].

Durante o processo de troca, devido à funcionalidade de callback incluída no contrato do Token do atacante, foi feita uma nova chamada ao método ExchangeWithAtomic.depositAsset durante o processo de Token.Transfer, resultando em um ataque de reentrada. Isso fez com que o montante do depósito fosse acumulado, e, no final, o atacante obteve lucro através da operação de retirada.

Análise de ataque de reentrada do OrionProtocol com PoC

Fluxo de Capital

O capital inicial do atacante vem da conta de uma carteira quente de uma grande plataforma de negociação. Dos 1.651 ETH obtidos com o ataque, 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 núcleo da vulnerabilidade está na função doSwapThroughOrionPool do contrato ExchangeWithAtomic e na função _doSwapTokens que ela chama. Essas funções atualizam a variável curBalance somente após a execução da transferência de Token, dando ao atacante a oportunidade de explorar um ataque de reentrância.

Análise de Ataque de Reentrada do OrionProtocol com PoC

Os atacantes adicionaram lógica de callback à função transfer do Token personalizado, fazendo com que a função depositAsset fosse chamada novamente durante o processo de transferência. Isso levou a uma atualização incorreta da variável curBalance, permitindo que os atacantes retirassem fundos em excesso através da função withdraw após reembolsar o empréstimo relâmpago.

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

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 projetos com funcionalidade de troca de tokens, é necessário considerar os seguintes pontos:

  1. Considere os riscos de segurança que podem surgir de múltiplos Tokens e caminhos de troca.
  2. Seguir o padrão de codificação "Verificações-Efeitos-Interações" (Checks-Effects-Interactions), ou seja, primeiro realizar a verificação de estado, em seguida atualizar o estado do contrato e, por último, interagir com contratos externos.
  3. Utilize bloqueios de reentrada ou mecanismos semelhantes ao executar operações críticas para prevenir ataques de reentrada.
  4. Realizar uma verificação e tratamento rigorosos dos valores de retorno das chamadas externas.
  5. Realizar auditorias de código e testes de segurança regularmente, corrigindo prontamente as vulnerabilidades encontradas.

Ao tomar essas medidas, o projeto pode reduzir significativamente o risco de sofrer ataques semelhantes, melhorando a segurança e a estabilidade do contrato.

TOKEN1.69%
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
  • 4
  • Partilhar
Comentar
0/400
CryptoSurvivorvip
· 07-09 04:25
Chega, mais uma empresa cancerígena.
Ver originalResponder0
GateUser-5854de8bvip
· 07-06 19:22
Ai, fui apanhado a usar Cupões de Recorte novamente.
Ver originalResponder0
SurvivorshipBiasvip
· 07-06 19:21
É outro buraco de contrato...
Ver originalResponder0
CoconutWaterBoyvip
· 07-06 19:08
Se não fizer auditoria de código, merece perder dinheiro.
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)