Análise de vulnerabilidades de incidentes de segurança do GMX e rastreamento de fundos roubados

GMX foi atacado, os atacantes exploraram uma vulnerabilidade de reentrância em um contrato do projeto para realizar o ataque, lucrando cerca de 42 milhões de dólares. A equipe de segurança da Beosin realizou uma análise de vulnerabilidades e rastreamento de fundos deste incidente de ataque e compartilhou os resultados da seguinte forma:

passos detalhados do ataque

Os atacantes primeiro utilizam o mecanismo de reembolso de margem na função executeDecreaseOrder do contrato OrderBook para iniciar um ataque de reentrada e contornar o interruptor de alavancagem do contrato Timelock do projeto:

Em seguida, o ataque pega emprestado USDC através de um empréstimo relâmpago para fazer staking e emitir GLP, ao mesmo tempo que aumenta a posição short de BTC com USDC como margem, resultando em um valor AUM inflacionado para o contrato GLPmanager, cujo cálculo afetará o preço do GLP.

Por fim, o atacante resgatou o GLP a um preço anômalo para lucrar e especificou a troca por outros tokens.

Análise de Vulnerabilidades

Através do fluxo de ataque acima, podemos ver que as razões para a exploração da vulnerabilidade do evento são as seguintes duas:

  • Falta de proteção contra reentradas, levando a modificações no estado interno durante o processo de resgate.

  • A lógica de resgate é bastante complexa e falta verificação de segurança suficiente.

Embora o GMX tenha passado por várias auditorias de segurança, essa vulnerabilidade de reentrada foi ignorada. E se a lógica de resgate fosse submetida a uma verificação mais rigorosa, considerando as possíveis vulnerabilidades de reentrada, seria possível evitar a ocorrência de tais incidentes de segurança.

Rastreamento de fundos roubados

Beosin Trace descobriu o rastreamento de fundos roubados: o endereço do atacante 0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355 obteve um lucro de aproximadamente 42 milhões de dólares, e em seguida, o protocolo DeFi trocou stablecoins e altcoins por ETH e USDC, transferindo os ativos roubados para a rede Ethereum através de múltiplos protocolos cross-chain. Atualmente, cerca de 32 milhões em ETH dos ativos roubados estão armazenados nos seguintes 4 endereços da rede Ethereum:

  • 0xe9ad5a0f2697a3cf75ffa7328bda93dbaef7f7e7

  • 0x69c965e164fa60e37a851aa5cd82b13ae39c1d95

  • 0xa33fcbe3b84fb8393690d1e994b6a6adc256d8a3

  • 0x639cd2fc24ec06be64aaf94eb89392bea98a6605

Cerca de 10 milhões de dólares em ativos estão armazenados no endereço 0xdf3340a436c27655ba62f8281565c9925c3a5221 na rede Arbitrum. A Beosin Trace adicionou o endereço relacionado ao hacker ao banco de dados de endereços negros e continuará a monitorar.

Segundo a análise da Beosin Trace, todos os fundos roubados ainda estão armazenados em vários endereços do atacante.

resumo

O cerne deste ataque reside na vulnerabilidade de reentrada do contrato GMX, que permite ao atacante resgatar uma grande quantidade de ativos com lucro através do valor AUM falsamente aumentado. Protocolos DeFi complexos como o GMX requerem auditorias de segurança em múltiplas frentes e camadas, com testes e revisões detalhadas do código do contrato. Anteriormente, a equipe de segurança da Beosin completou várias auditorias de segurança em protocolos DeFi (como Surf Protocol, SyncSwap, LeverFi, Owlto Finance), focando na identificação de falhas lógicas no contrato e situações extremas que podem ser negligenciadas, garantindo que os protocolos DeFi sejam submetidos a uma detecção abrangente.

Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • Comentar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • 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)