OrionProtocol sofre ataque de reentrada, 2,9 milhões de dólares em fundos roubados

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:20 (horário UTC), o OrionProtocol na Ethereum e na Binance Smart Chain sofreu um ataque de reentrada devido a uma vulnerabilidade do contrato. O atacante conseguiu roubar cerca de 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 implantou um contrato de Token personalizado e realizou as operações de transferência e autorização relacionadas, preparando-se para o ataque subsequente. Em seguida, o atacante fez um empréstimo através da função swap do Uniswap V2 e chamou o método ExchangeWithAtomic.swapThroughOrionPool do OrionProtocol para a troca de tokens.

O caminho de troca foi definido como [USDC, Token do Atacante, USDT], onde o Token do Atacante é crucial. Durante o processo de troca, devido à presença de uma função de callback neste contrato de Token personalizado, o atacante consegue acionar o método ExchangeWithAtomic.depositAsset durante a transferência do Token, permitindo assim um ataque de reentrada. Isso resulta na adição incorreta do montante depositado, e, no final, o atacante lucra através da operação de retirada.

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de ataque de reentrada do OrionProtocol com PoC

Fluxo de Capital

O capital inicial do atacante vem da carteira quente de uma plataforma de troca. Dos 1.651 ETH obtidos no ataque, 657,5 ETH ainda estão na carteira do atacante, enquanto o restante já foi transferido através de serviços de mistura.

Análise de ataque de reentrada do OrionProtocol com PoC

Análise de Vulnerabilidades

O cerne da vulnerabilidade reside nas funções doSwapThroughOrionPool e _doSwapTokens do contrato ExchangeWithAtomic. Essas funções atualizam a variável curBalance somente após a execução da transferência de tokens, criando condições para um ataque de reentrada. O atacante, ao adicionar lógica de callback na função transfer do Token personalizado, acionou com sucesso a função depositAsset, resultando na atualização incorreta de curBalance. No final, após reembolsar o empréstimo relâmpago, o atacante retirou fundos em excesso 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 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. Seguir o modelo "Verificações-Efeitos-Interações" (Checks-Effects-Interactions): atualizar o estado do contrato antes de realizar chamadas externas.

  2. Usar um bloqueio de reentrada: bloqueie antes de iniciar operações sensíveis e desbloqueie após a conclusão, para evitar reentradas.

  3. Considerar cuidadosamente todos os tipos de tokens e caminhos de troca: ao projetar a funcionalidade de troca, é necessário levar em conta todas as possíveis situações e condições limites.

  4. Limitar o valor de cada transação: definir limites de transação razoáveis para reduzir perdas potenciais.

  5. Realizar auditorias de segurança regularmente: contratar uma equipe de segurança profissional para realizar uma auditoria completa do contrato, identificando e corrigindo rapidamente vulnerabilidades potenciais.

  6. Implementar um mecanismo de assinatura múltipla: operações críticas requerem a confirmação de várias partes, aumentando a dificuldade de ataque.

  7. Otimizar a lógica do código: garantir que as chamadas externas sejam feitas apenas após a atualização das variáveis de estado críticas.

  8. Aumentar os mecanismos de resposta a emergências: elaborar planos de emergência completos que permitam uma resposta rápida em caso de ataque, minimizando as perdas.

Este evento destaca mais uma vez a importância da segurança dos contratos inteligentes. As equipas de projeto precisam manter-se vigilantes durante o processo de desenvolvimento, adotando medidas de segurança abrangentes para proteger os ativos dos usuários e a reputação do projeto. Ao mesmo tempo, isto também lembra os investidores a serem cautelosos na escolha de projetos, prestando atenção à segurança e à solidez técnica dos mesmos.

TOKEN2.03%
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
  • 5
  • Partilhar
Comentar
0/400
ZenMinervip
· 12h atrás
A segurança do contrato ainda depende da auditoria.
Ver originalResponder0
DAOplomacyvip
· 12h atrás
mais uma falha de governança sub-ótima smh...
Ver originalResponder0
GweiTooHighvip
· 12h atrás
又一个 fazer as pessoas de parvas 的
Ver originalResponder0
DeFiAlchemistvip
· 12h atrás
*ajusta os óculos etéreos* outra alma cai nas artes sombrias da reentrada... as barreiras místicas do protocolo eram demasiado fracas
Ver originalResponder0
PessimisticLayervip
· 13h atrás
Mais 300w? Facinho!
Ver originalResponder0
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)