Mais de US$ 7,5 milhões perdidos em ataque de honeypot de bot MEV: análise e rastreamento de fundos

icon MarsBit
Compartilhar
AI summary iconResumo

Em 21 de junho, um dos bots MEV mais ativos na rede Ethereum, Jaredfromsubway.eth, sofreu um ataque de "honeypot" cuidadosamente planejado, perdendo mais de US$ 7,5 milhões em ativos criptográficos. Abaixo está a análise da equipe de segurança da Beosin e o rastreamento do fluxo dos fundos roubados.

Análise do fluxo de ataque

Ataque à família de contratos

- Contrato coordenador (0xb84db016324e8f2bfdd8dd9c260338aee0a8df52): responsável por registrar se o bloco atual está no estado armed e, na fase final, chamar ciclicamente os contratos filhos para retirar os fundos. - Contrato gatilho (0x4de8c729a064ff6087cc84a4152969349e4feb98): responsável por definir, no mesmo bloco, o estado falso de pares de negociação, fazendo com que as rotas de arbitragem pareçam executáveis. - Contratos filhos / contratos de tokens falsos: disfarçam-se como tokens ERC-20 normais para obter autorizações reais. - Contrato Hub: responsável por pagar pequenos rendimentos reais, fazendo com que os bots MEV considerem a operação lucrativa. - Par Ring V2: par falso da Uniswap v2. - Contratos de tokens intermediários falsos: utilizados para construir rotas de arbitragem de múltiplos saltos, como fCAP, fUSDC.

O ponto-chave do ataque: enganar a autorização

Ao analisar transações na cadeia, o atacante criou vários conjuntos de transações isca:

- USDC de grande valor: o robô lucrou cerca de 36,997120 USDC, mas deixou 20 USDC autorizados. - USDT de grande valor: o robô lucrou cerca de 37,053440 USDT, mas deixou 20 USDT autorizados. - WETH de grande valor: o robô lucrou cerca de 0,0179 WETH, mas deixou 16 WETH autorizados. - As transações de pequeno valor funcionaram normalmente, com as autorizações sendo consumidas na mesma transação para reduzir suspeitas.

Em transações de pequeno valor, após o robô autorizar o crédito de tokens reais, o contrato filho transfere imediatamente os tokens reais, consumindo a autorização, o que parece totalmente normal.

Em transações de grande valor, o contrato filho não chama o transferFrom para transferir os tokens reais, mas sim cria tokens falsos diretamente por meio de transações falsificadas. O robô acredita ter concluído as etapas preliminares normais do swap, mas a autorização dos tokens reais ainda permanece válida.

Essa é a essência do ataque: transações de pequeno valor consomem normalmente a autorização, enquanto transações de grande valor mantêm a autorização.

Processo de ataque

Como exemplo de uma operação de ataque contra o USDC:

(1) O atacante chama o coordenador para definir o bloco atual como armed. (2) O atacante chama o gatilho para atualizar o estado de múltiplos pares Ring V2 falsificados. (3) O MEV Bot detecta uma oportunidade de arbitragem e executa a transação.

O fluxo interno da negociação do MEV Bot é aproximadamente o seguinte:

(1) O contrato MEV Bot autorizou um grande valor de USDC para um contrato filho. (2) O contrato MEV Bot chamou a função wrapTo/wrap do contrato filho. (3) Como o estado atual do contrato filho está em "armed", ele não consome USDC real, mas emite tokens falsos para o par, mantendo a autorização de USDC. (4) O contrato MEV Bot continua chamando o swap do par falsificado. (5) O segundo par de troca envia os tokens ao MEV Bot. (6) O contrato hub paga ao MEV Bot um pequeno lucro em USDC real.

Imagem

exemplo de aprovação

hash da transação: 0x0121e07a916c06eea3e7daf11893f3f0b95b9e1684124545ae14c32aee6029bb

Resultado visto pelo MEV Bot: uma operação de arbitragem bem-sucedida gerou lucro real em USDC. No entanto, a autorização do USDC foi mantida pelo subcontrato. Esse processo foi repetido separadamente para USDC, USDT e WETH, resultando em um grande número de autorizações.

O hash da transação atacada é:

0x2be8704f5a59b69e0b71f64aefdb99eb0e8ae9fb3926147c581910d71bcf3e65

O atacante chama o loop de drenagem do contrato coordenador, com os dados de chamada contendo 66 endereços de contratos filhos e o endereço do contrato MEV Bot. Sempre que o contrato MEV Bot tiver previamente concedido autorização de limite aos contratos filhos, esses contratos filhos poderão transferir diretamente os tokens reais correspondentes para o atacante.

Resultado final:

- 20 autorizações de grande valor de USDC foram totalmente consumidas - 16 autorizações de grande valor de WETH foram totalmente consumidas - Ainda existe uma autorização parcial de USDT, mas o saldo de USDT é insuficiente

Análise de fluxo de fundos

Após o ataque bem-sucedido, o endereço do atacante (0x3e37f4A10d771Ba9dE44b6d301410b1BEdeA65d0) recebeu $2,87M USDC, $2,04M USDT e 1.474 WETH. Em seguida, o atacante trocou as stablecoins por ETH e transferiu para os seguintes 4 endereços:

- 0xe3Da36E4bd1a5738fa5D6Ef4F0e4dF40bDeB5f17 (aproximadamente 1.000 ETH) - 0x74Dc5b93586D248D5Aec64b3586736FF0A0D0e65 (1.001 ETH) - 0xd8C125efCBc99408eC8723E9BBd81d1E8D39D845 (1.001 ETH) - 0x71d4416A7A85e08a5Fe7227Ca3B44Fc639e94e97 (1.423 ETH)

Dos quais, 0xe3Da3 transferiu 1.000 ETH para o Tornado Cash, enquanto os outros três endereços não realizaram transferências adicionais de ETH. O fluxo de fundos é mostrado abaixo:

Imagem

Conclusão

Este ataque demonstra um método altamente sofisticado: o atacante não ataca diretamente o código do contrato, mas, com base na lógica de negócios do MEV Bot, cria cenários de arbitragem específicos para induzir o MEV Bot a autorizar operações que parecem seguras, resultando finalmente na transferência de seus ativos. Para robôs de arbitragem e MEV Bots, não basta depender apenas da simulação de lucros para avaliar a segurança de uma rota; especialmente quando a rota de arbitragem inclui contratos desconhecidos, tokens falsificados ou wrappers personalizados, deve-se agir com cautela e considerar a verificação obrigatória das alterações no allowance após a transação.

Ver original

Aviso legal: as informações nesta página podem ter sido obtidas de terceiros e não refletem necessariamente os pontos de vista ou opiniões da KuCoin. Este conteúdo é fornecido apenas para fins informativos gerais, sem qualquer representação ou garantia de qualquer tipo, nem deve ser interpretado como aconselhamento financeiro ou de investimento. A KuCoin não é responsável por quaisquer erros ou omissões, ou por quaisquer resultados do uso destas informações. Os investimentos em ativos digitais podem ser arriscados. Avalie cuidadosamente os riscos de um produto e a sua tolerância ao risco com base nas suas próprias circunstâncias financeiras. Para mais informações, consulte nossos termos de uso e divulgação de risco.