Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, gerando ampla atenção. De acordo com a análise da equipe de segurança, este ataque não foi causado pela divulgação da chave privada do keeper, mas sim pelo fato de que o atacante, através de dados habilidosamente construídos, explorou uma vulnerabilidade no contrato para modificar o endereço do keeper do contrato EthCrossChainData.
Princípio do ataque
O núcleo do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, que pode executar transações entre cadeias. Como o proprietário do contrato EthCrossChainData é o contrato EthCrossChainManager, este último pode chamar a função putCurEpochConPubKeyBytes do primeiro para alterar o keeper.
Os atacantes utilizaram a função verifyHeaderAndExecuteTx passando dados cuidadosamente elaborados, e através da chamada interna da função _executeCrossChainTx, acabaram por executar a função putCurEpochConPubKeyBytes do contrato EthCrossChainData, alterando o papel de keeper para o endereço especificado pelo atacante.
Após a substituição do papel de keeper, o atacante pode construir transações à vontade e extrair qualquer quantia de fundos do contrato.
Processo de Ataque
O atacante primeiro chamou a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, alterando o keeper.
Em seguida, o hacker implementou uma série de transações de ataque, retirando fundos do contrato.
Devido à alteração do keeper, as transações normais de outros usuários foram recusadas.
Ataques semelhantes também ocorrem na rede Ethereum, utilizando as mesmas técnicas.
Conclusão
A causa fundamental deste ataque reside no fato de que o keeper do contrato EthCrossChainData pode ser modificado pelo contrato EthCrossChainManager, cuja função verifyHeaderAndExecuteTx pode executar dados fornecidos pelo usuário. O atacante aproveitou exatamente essa falha de design, modificando o endereço do keeper do contrato EthCrossChainData ao construir dados específicos, conseguindo assim atingir seu objetivo de ataque.
Este evento lembra-nos novamente da necessidade de prestar atenção especial à gestão de permissões e à validação de dados ao projetar protocolos de cross-chain, a fim de evitar a exploração de vulnerabilidades de segurança semelhantes. Ao mesmo tempo, também destaca a importância de realizar auditorias de segurança regulares e programas de recompensas por vulnerabilidades, para detectar e corrigir prontamente potenciais riscos de segurança.
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.
24 gostos
Recompensa
24
5
Partilhar
Comentar
0/400
MetaDreamer
· 07-04 18:08
Mais um pãozinho foi levado.
Ver originalResponder0
CoffeeNFTs
· 07-02 15:50
Contratos inteligentes novamente explodiram? Neste tempo ainda se atreve a armazenar moeda
Ver originalResponder0
ShitcoinConnoisseur
· 07-02 15:48
Outro contrato inteligente foi explorado.
Ver originalResponder0
LayoffMiner
· 07-02 15:47
A falha de segurança voltou. Escapou, escapou.
Ver originalResponder0
HodlVeteran
· 07-02 15:31
Todos os anos, há idiotas que são feitos de parvas, já nos habituamos.
Poly Network sofreu um ataque de Hacker: a vulnerabilidade do contrato EthCrossChainManager resultou em perdas financeiras
Análise do incidente de ataque ao Poly Network
Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, gerando ampla atenção. De acordo com a análise da equipe de segurança, este ataque não foi causado pela divulgação da chave privada do keeper, mas sim pelo fato de que o atacante, através de dados habilidosamente construídos, explorou uma vulnerabilidade no contrato para modificar o endereço do keeper do contrato EthCrossChainData.
Princípio do ataque
O núcleo do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, que pode executar transações entre cadeias. Como o proprietário do contrato EthCrossChainData é o contrato EthCrossChainManager, este último pode chamar a função putCurEpochConPubKeyBytes do primeiro para alterar o keeper.
Os atacantes utilizaram a função verifyHeaderAndExecuteTx passando dados cuidadosamente elaborados, e através da chamada interna da função _executeCrossChainTx, acabaram por executar a função putCurEpochConPubKeyBytes do contrato EthCrossChainData, alterando o papel de keeper para o endereço especificado pelo atacante.
Após a substituição do papel de keeper, o atacante pode construir transações à vontade e extrair qualquer quantia de fundos do contrato.
Processo de Ataque
O atacante primeiro chamou a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, alterando o keeper.
Em seguida, o hacker implementou uma série de transações de ataque, retirando fundos do contrato.
Devido à alteração do keeper, as transações normais de outros usuários foram recusadas.
Ataques semelhantes também ocorrem na rede Ethereum, utilizando as mesmas técnicas.
Conclusão
A causa fundamental deste ataque reside no fato de que o keeper do contrato EthCrossChainData pode ser modificado pelo contrato EthCrossChainManager, cuja função verifyHeaderAndExecuteTx pode executar dados fornecidos pelo usuário. O atacante aproveitou exatamente essa falha de design, modificando o endereço do keeper do contrato EthCrossChainData ao construir dados específicos, conseguindo assim atingir seu objetivo de ataque.
Este evento lembra-nos novamente da necessidade de prestar atenção especial à gestão de permissões e à validação de dados ao projetar protocolos de cross-chain, a fim de evitar a exploração de vulnerabilidades de segurança semelhantes. Ao mesmo tempo, também destaca a importância de realizar auditorias de segurança regulares e programas de recompensas por vulnerabilidades, para detectar e corrigir prontamente potenciais riscos de segurança.