Análise do incidente de ataque Hacker à Poly Network
Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, gerando ampla atenção na indústria. A análise da equipe de segurança indica que este ataque não foi causado por uma violação da chave privada do keeper, mas sim que os atacantes alteraram o endereço do keeper do contrato EthCrossChainData através de dados cuidadosamente elaborados.
Ataque ao núcleo
O cerne do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, que pode executar transações cross-chain específicas através da função _executeCrossChainTx. Como o owner do contrato EthCrossChainData é o contrato EthCrossChainManager, este último pode chamar a função putCurEpochConPubKeyBytes do primeiro para modificar o keeper do contrato.
O atacante utiliza a função verifyHeaderAndExecuteTx para passar dados meticulosamente construídos, fazendo com que a função _executeCrossChainTx chame a função putCurEpochConPubKeyBytes do contrato EthCrossChainData, alterando assim o papel de keeper para o endereço designado pelo atacante. Após completar este passo, o atacante pode construir transações para retirar qualquer quantidade de fundos do contrato.
Processo de Ataque
O atacante primeiro chama a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, alterando o keeper.
Em seguida, o hacker executou uma série de transações de ataque para retirar fundos do contrato.
Após a conclusão do ataque, devido à modificação do keeper, as transações normais de outros usuários foram recusadas.
Este padrão de ataque não ocorre apenas na BSC, mas também apareceram operações semelhantes na rede Ethereum.
Conclusão
A chave deste ataque reside no fato de que o keeper do contrato EthCrossChainData pode ser modificado pelo contrato EthCrossChainManager, enquanto a função verifyHeaderAndExecuteTx deste último pode executar dados fornecidos pelo usuário através da função _executeCrossChainTx. O atacante explorou essa vulnerabilidade de design, modificando o endereço do keeper do contrato EthCrossChainData ao construir dados específicos, atingindo assim o objetivo do ataque.
Este evento destaca novamente a importância da segurança dos protocolos de cadeia cruzada e lembra os desenvolvedores de que precisam ser mais cautelosos ao projetar contratos inteligentes, especialmente em funções que envolvem mudanças nos privilégios de papéis críticos. Ao mesmo tempo, para os usuários, é necessário permanecer vigilante ao usar serviços de cadeia cruzada e acompanhar as dinâmicas de segurança relacionadas.
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.
15 Curtidas
Recompensa
15
4
Compartilhar
Comentário
0/400
LiquidatedAgain
· 08-03 22:02
As consequências de uma vulnerabilidade no código são graves.
A Poly Network foi atacada por hackers, e a vulnerabilidade do contrato EthCrossChainData foi explorada.
Análise do incidente de ataque Hacker à Poly Network
Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, gerando ampla atenção na indústria. A análise da equipe de segurança indica que este ataque não foi causado por uma violação da chave privada do keeper, mas sim que os atacantes alteraram o endereço do keeper do contrato EthCrossChainData através de dados cuidadosamente elaborados.
Ataque ao núcleo
O cerne do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, que pode executar transações cross-chain específicas através da função _executeCrossChainTx. Como o owner do contrato EthCrossChainData é o contrato EthCrossChainManager, este último pode chamar a função putCurEpochConPubKeyBytes do primeiro para modificar o keeper do contrato.
O atacante utiliza a função verifyHeaderAndExecuteTx para passar dados meticulosamente construídos, fazendo com que a função _executeCrossChainTx chame a função putCurEpochConPubKeyBytes do contrato EthCrossChainData, alterando assim o papel de keeper para o endereço designado pelo atacante. Após completar este passo, o atacante pode construir transações para retirar qualquer quantidade de fundos do contrato.
Processo de Ataque
O atacante primeiro chama a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, alterando o keeper.
Em seguida, o hacker executou uma série de transações de ataque para retirar fundos do contrato.
Após a conclusão do ataque, devido à modificação do keeper, as transações normais de outros usuários foram recusadas.
Este padrão de ataque não ocorre apenas na BSC, mas também apareceram operações semelhantes na rede Ethereum.
Conclusão
A chave deste ataque reside no fato de que o keeper do contrato EthCrossChainData pode ser modificado pelo contrato EthCrossChainManager, enquanto a função verifyHeaderAndExecuteTx deste último pode executar dados fornecidos pelo usuário através da função _executeCrossChainTx. O atacante explorou essa vulnerabilidade de design, modificando o endereço do keeper do contrato EthCrossChainData ao construir dados específicos, atingindo assim o objetivo do ataque.
Este evento destaca novamente a importância da segurança dos protocolos de cadeia cruzada e lembra os desenvolvedores de que precisam ser mais cautelosos ao projetar contratos inteligentes, especialmente em funções que envolvem mudanças nos privilégios de papéis críticos. Ao mesmo tempo, para os usuários, é necessário permanecer vigilante ao usar serviços de cadeia cruzada e acompanhar as dinâmicas de segurança relacionadas.