Análise do incidente de ataque de reentrada do OrionProtocol
No dia 2 de fevereiro de 2023, uma plataforma DEX foi alvo de um ataque de reentrada devido a uma vulnerabilidade no contrato, na Ethereum e na Binance Smart Chain, resultando em uma perda total de cerca de 2,9 milhões de dólares em ativos criptográficos, incluindo 2.844.766 USDT na Ethereum e 191.606 BUSD na Binance Smart Chain.
Visão Geral do Processo de Ataque
Os atacantes primeiro implantaram um contrato de token personalizado e realizaram operações de transferência e autorização relacionadas. Em seguida, os atacantes tomaram emprestado fundos através da funcionalidade de swap de um determinado DEX e invocaram o método swapThroughOrionPool da plataforma-alvo para trocar tokens. O caminho de troca incluía o endereço do contrato de token criado pelos atacantes, o que permitiu que os atacantes executassem operações de callback durante o processo de transação.
Durante o processo de troca, o atacante aproveitou a funcionalidade de callback no contrato de token que criou, chamando repetidamente o método depositAsset da plataforma-alvo, resultando na acumulação do montante depositado. No final, o atacante completou o lucro através da operação de retirada.
Fluxo de Capital
A fonte inicial de fundos do atacante veio de uma carteira quente de uma grande plataforma de negociação. Dos 1.651 ETH obtidos com o ataque, 657,5 ETH ainda permanecem no endereço da carteira do atacante, enquanto a parte restante foi transferida através de serviços de mistura.
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, mas não considera o risco potencial de ataques de reentrada. Um atacante conseguiu realizar uma chamada de reentrada à função depositAsset, adicionando lógica de callback na função transfer do token personalizado, resultando na atualização incorreta da variável curBalance.
Reproduzir Ataques
Os pesquisadores conseguiram reproduzir o processo de ataque e forneceram o código POC relevante. Os resultados dos testes mostraram que os atacantes podiam obter fundos adicionais explorando a vulnerabilidade do contrato.
Sugestões de Segurança
Para contratos inteligentes com funcionalidade de troca de tokens, os desenvolvedores precisam considerar os seguintes pontos:
Considerar plenamente as possíveis situações inesperadas que diferentes tipos de tokens e caminhos de troca podem trazer.
Seguir o padrão de codificação "Checks-Effects-Interactions" (Verificações-Efeitos-Interações), ou seja, primeiro realizar a verificação do estado, em seguida atualizar o estado do contrato e, por último, interagir com contratos externos.
Implementar mecanismos de segurança como locks de reentrada para prevenir ataques de reentrada.
Para chamadas externas, especialmente aquelas que envolvem a transferência de fundos, deve-se ter um cuidado especial e realizar uma auditoria de segurança abrangente.
Ao adotar essas medidas, é possível reduzir significativamente o risco de ataques a contratos inteligentes, aumentando a segurança e a estabilidade do projeto. No ecossistema Web3, garantir a segurança dos contratos é fundamental para manter a confiança dos usuários e a segurança dos ativos.
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.
20 gostos
Recompensa
20
7
Republicar
Partilhar
Comentar
0/400
NftRegretMachine
· 08-09 01:43
Ataque de reentrada novamente
Ver originalResponder0
AirDropMissed
· 08-08 20:39
O auditor ficou confuso, não ficou?
Ver originalResponder0
TokenVelocity
· 08-07 01:39
Sem palavras, fui enganado.
Ver originalResponder0
LiquidatedNotStirred
· 08-06 03:45
A vulnerabilidade de reentrada é realmente dolorosa
OrionProtocol sofreu um ataque de reentrada, perdendo 2,9 milhões de dólares em encriptação.
Análise do incidente de ataque de reentrada do OrionProtocol
No dia 2 de fevereiro de 2023, uma plataforma DEX foi alvo de um ataque de reentrada devido a uma vulnerabilidade no contrato, na Ethereum e na Binance Smart Chain, resultando em uma perda total de cerca de 2,9 milhões de dólares em ativos criptográficos, incluindo 2.844.766 USDT na Ethereum e 191.606 BUSD na Binance Smart Chain.
Visão Geral do Processo de Ataque
Os atacantes primeiro implantaram um contrato de token personalizado e realizaram operações de transferência e autorização relacionadas. Em seguida, os atacantes tomaram emprestado fundos através da funcionalidade de swap de um determinado DEX e invocaram o método swapThroughOrionPool da plataforma-alvo para trocar tokens. O caminho de troca incluía o endereço do contrato de token criado pelos atacantes, o que permitiu que os atacantes executassem operações de callback durante o processo de transação.
Durante o processo de troca, o atacante aproveitou a funcionalidade de callback no contrato de token que criou, chamando repetidamente o método depositAsset da plataforma-alvo, resultando na acumulação do montante depositado. No final, o atacante completou o lucro através da operação de retirada.
Fluxo de Capital
A fonte inicial de fundos do atacante veio de uma carteira quente de uma grande plataforma de negociação. Dos 1.651 ETH obtidos com o ataque, 657,5 ETH ainda permanecem no endereço da carteira do atacante, enquanto a parte restante foi transferida através de serviços de mistura.
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, mas não considera o risco potencial de ataques de reentrada. Um atacante conseguiu realizar uma chamada de reentrada à função depositAsset, adicionando lógica de callback na função transfer do token personalizado, resultando na atualização incorreta da variável curBalance.
Reproduzir Ataques
Os pesquisadores conseguiram reproduzir o processo de ataque e forneceram o código POC relevante. Os resultados dos testes mostraram que os atacantes podiam obter fundos adicionais explorando a vulnerabilidade do contrato.
Sugestões de Segurança
Para contratos inteligentes com funcionalidade de troca de tokens, os desenvolvedores precisam considerar os seguintes pontos:
Ao adotar essas medidas, é possível reduzir significativamente o risco de ataques a contratos inteligentes, aumentando a segurança e a estabilidade do projeto. No ecossistema Web3, garantir a segurança dos contratos é fundamental para manter a confiança dos usuários e a segurança dos ativos.