Análise Profunda do Ataque Hacker à Poly Network: O papel do keeper do contrato EthCrossChainData foi alterado.

robot
Geração do resumo em andamento

Análise detalhada do ataque do Hacker à Poly Network

Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, gerando ampla atenção. A equipe de segurança analisou o evento em profundidade e acredita que os atacantes modificaram o papel de keeper do contrato EthCrossChainData através de dados cuidadosamente elaborados, e não devido à suposta vazamento da chave privada do keeper, como rumores anteriores sugeriam.

Ataque ao Núcleo

A chave do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, que pode executar transações específicas de cross-chain através da função _executeCrossChainTx. Como o proprietário do contrato EthCrossChainData é o contrato EthCrossChainManager, este pode chamar a função putCurEpochConPubKeyBytes do contrato EthCrossChainData para modificar o keeper do contrato.

O atacante só precisa passar dados cuidadosamente projetados através da função verifyHeaderAndExecuteTx, permitindo a execução da chamada da função putCurEpochConPubKeyBytes do contrato EthCrossChainData pela função _executeCrossChainTx, alterando assim o papel de keeper para o endereço especificado pelo atacante. Após a conclusão da substituição do endereço do papel de keeper, o atacante pode construir transações à vontade, retirando qualquer quantia de fundos do contrato.

Processo de Ataque

  1. O atacante primeiro chama a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, alterando o papel do keeper.

  2. Em seguida, o hacker começou a implementar uma série de transações de ataque, retirando fundos do contrato.

  3. Após o ataque, devido à modificação do keeper, as transações normais de outros usuários foram recusadas.

  4. Métodos de ataque semelhantes também foram implementados na rede Ethereum, e o processo é semelhante ao ataque na BSC.

Conclusão

A causa fundamental deste ataque reside no fato de que o keeper do contrato EthCrossChainData pode ser modificado pelo contrato EthCrossChainManager, e a função verifyHeaderAndExecuteTx do contrato EthCrossChainManager pode executar os dados de entrada do usuário através da função _executeCrossChainTx. O atacante explorou esta vulnerabilidade, construindo dados específicos, e conseguiu alterar o keeper do contrato EthCrossChainData para um endereço sob seu controle, permitindo a retirada ilegal de fundos do contrato.

Este evento enfatiza novamente a importância da auditoria de segurança de contratos inteligentes, especialmente em sistemas complexos que envolvem operações cross-chain e gestão de papéis críticos. As equipas de desenvolvimento devem ser mais cautelosas ao projetar e implementar mecanismos de gestão de permissões de contratos, para evitar que vulnerabilidades de segurança semelhantes sejam exploradas.

Ver original
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.
  • Recompensa
  • 4
  • Compartilhar
Comentário
0/400
ChainWanderingPoetvip
· 14h atrás
Novamente hackeado? O contrato ainda pode sustentar.
Ver originalResponder0
OfflineValidatorvip
· 14h atrás
Mais uma vulnerabilidade foi descoberta.
Ver originalResponder0
Rugpull幸存者vip
· 15h atrás
Foi novamente espancado no chão.
Ver originalResponder0
airdrop_huntressvip
· 15h atrás
Mais uma vulnerabilidade no contrato. Só isso?
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)