OrionProtocol sofreu um ataque de reentrada resultando em uma perda de 2.9 milhões de dólares
No dia 2 de fevereiro de 2023, o OrionProtocol sofreu um ataque de reentrada devido a uma vulnerabilidade de contrato na Ethereum e na Binance Smart Chain, resultando em uma perda total de cerca de 2,9 milhões de dólares. O atacante utilizou um contrato Token criado por ele para realizar callbacks, conseguindo contornar os mecanismos de segurança do contrato.
Análise do Processo de Ataque
O atacante primeiro criou um contrato de Token personalizado e fez uma série de preparativos. Em seguida, o atacante pegou um empréstimo através do método swap de algum DEX e chamou o método swapThroughOrionPool do OrionProtocol para a troca de tokens. O caminho de troca incluía o endereço do contrato Token criado pelo atacante.
Durante o processo de troca, o atacante utiliza o método transfer do Token criado por ele para ativar o callback, chamando novamente o método depositAsset do OrionProtocol. Isso resulta na contagem duplicada do montante depositado, permitindo que o atacante retire fundos que excedem o valor realmente depositado.
Fluxo de Fundos
Os fundos iniciais do atacante vieram da carteira quente de uma plataforma de negociação. Dos 1651 ETH obtidos com o ataque, 657,5 ainda estão no endereço da carteira do atacante, enquanto o restante foi transferido através de serviços de mistura.
Análise de Vulnerabilidades
O cerne da vulnerabilidade está nas funções doSwapThroughOrionPool e _doSwapTokens. O contrato atualiza a variável curBalance apenas após a execução da operação de transferência, o que dá ao atacante a oportunidade de 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, levando à retirada excessiva.
Repetição de Ataque
Os pesquisadores forneceram parte do código POC, demonstrando como explorar a vulnerabilidade para realizar ataques. Os resultados dos testes coincidem com a pilha de chamadas de ataques reais, confirmando a existência e a explorabilidade da vulnerabilidade.
Sugestões de Segurança
Para contratos inteligentes com funcionalidade de troca de tokens, os desenvolvedores precisam 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 "verificar primeiro, depois gravar variáveis, e, em seguida, realizar chamadas externas" (modelo Checks-Effects-Interactions) para aumentar a segurança e estabilidade do contrato.
Este evento enfatiza novamente a importância de dar atenção à segurança no desenvolvimento de contratos inteligentes, especialmente ao lidar com a movimentação de fundos. As equipes de projeto devem reforçar a auditoria de código e considerar a contratação de uma equipe de segurança em blockchain especializada para uma avaliação completa, a fim de minimizar os riscos potenciais.
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.
10 Curtidas
Recompensa
10
3
Repostar
Compartilhar
Comentário
0/400
ZeroRushCaptain
· 10h atrás
Mais um cartão de saque que me ensinou a recuar no campo de batalha
Ver originalResponder0
AirdropChaser
· 10h atrás
Mais um?
Ver originalResponder0
ForkLibertarian
· 10h atrás
Se foi aproveitado, é o que mereceu, quem mandou ser tão arrogante.
OrionProtocol sofreu um ataque de reentrada, com perdas de 2,9 milhões de dólares.
OrionProtocol sofreu um ataque de reentrada resultando em uma perda de 2.9 milhões de dólares
No dia 2 de fevereiro de 2023, o OrionProtocol sofreu um ataque de reentrada devido a uma vulnerabilidade de contrato na Ethereum e na Binance Smart Chain, resultando em uma perda total de cerca de 2,9 milhões de dólares. O atacante utilizou um contrato Token criado por ele para realizar callbacks, conseguindo contornar os mecanismos de segurança do contrato.
Análise do Processo de Ataque
O atacante primeiro criou um contrato de Token personalizado e fez uma série de preparativos. Em seguida, o atacante pegou um empréstimo através do método swap de algum DEX e chamou o método swapThroughOrionPool do OrionProtocol para a troca de tokens. O caminho de troca incluía o endereço do contrato Token criado pelo atacante.
Durante o processo de troca, o atacante utiliza o método transfer do Token criado por ele para ativar o callback, chamando novamente o método depositAsset do OrionProtocol. Isso resulta na contagem duplicada do montante depositado, permitindo que o atacante retire fundos que excedem o valor realmente depositado.
Fluxo de Fundos
Os fundos iniciais do atacante vieram da carteira quente de uma plataforma de negociação. Dos 1651 ETH obtidos com o ataque, 657,5 ainda estão no endereço da carteira do atacante, enquanto o restante foi transferido através de serviços de mistura.
Análise de Vulnerabilidades
O cerne da vulnerabilidade está nas funções doSwapThroughOrionPool e _doSwapTokens. O contrato atualiza a variável curBalance apenas após a execução da operação de transferência, o que dá ao atacante a oportunidade de 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, levando à retirada excessiva.
Repetição de Ataque
Os pesquisadores forneceram parte do código POC, demonstrando como explorar a vulnerabilidade para realizar ataques. Os resultados dos testes coincidem com a pilha de chamadas de ataques reais, confirmando a existência e a explorabilidade da vulnerabilidade.
Sugestões de Segurança
Para contratos inteligentes com funcionalidade de troca de tokens, os desenvolvedores precisam 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 "verificar primeiro, depois gravar variáveis, e, em seguida, realizar chamadas externas" (modelo Checks-Effects-Interactions) para aumentar a segurança e estabilidade do contrato.
Este evento enfatiza novamente a importância de dar atenção à segurança no desenvolvimento de contratos inteligentes, especialmente ao lidar com a movimentação de fundos. As equipes de projeto devem reforçar a auditoria de código e considerar a contratação de uma equipe de segurança em blockchain especializada para uma avaliação completa, a fim de minimizar os riscos potenciais.