Análise do incidente de ataque Hacker à Poly Network
Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, o que gerou 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 pelos atacantes que, através de dados habilmente construídos, exploraram uma vulnerabilidade no contrato para modificar o endereço do keeper do contrato EthCrossChainData.
Ataque ao Núcleo
A chave do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager. Esta função 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 último tem o direito de chamar a função putCurEpochConPubKeyBytes do contrato EthCrossChainData para alterar o keeper.
Os atacantes exploram este mecanismo, passando dados cuidadosamente elaborados através da função verifyHeaderAndExecuteTx, fazendo com que a função _executeCrossChainTx execute a chamada da função putCurEpochConPubKeyBytes do contrato EthCrossChainData, alterando assim o papel de keeper para o endereço especificado pelo atacante.
Processo de Ataque
O atacante primeiro chama a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, alterando o keeper.
Após completar a substituição do endereço do papel de keeper, o atacante pode construir transações à vontade, retirando qualquer quantia de fundos do contrato.
Após o ataque, devido à alteração do keeper, as transações normais de outros usuários foram recusadas.
Este modo de ataque não foi apenas implementado na cadeia BSC, operações semelhantes também ocorreram na rede Ethereum.
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 fornecidos pelo usuário. O atacante explorou essa falha de design, modificando o endereço do keeper do contrato EthCrossChainData por meio da construção de dados específicos, e não por um suposto vazamento da chave privada do keeper.
Este evento destaca novamente a importância do design de segurança dos protocolos cross-chain e a exigência rigorosa na gestão de permissões de contratos. Também nos lembra que, no ecossistema blockchain, mesmo funcionalidades que parecem inofensivas, se utilizadas de forma maliciosa, podem levar a sérias vulnerabilidades de segurança.
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
12 gostos
Recompensa
12
5
Partilhar
Comentar
0/400
LuckyBlindCat
· 11h atrás
Mais alguém está a ganhar com a situação.
Ver originalResponder0
ServantOfSatoshi
· 07-17 17:54
Deitei-me de novo...
Ver originalResponder0
FloorSweeper
· 07-16 15:47
Mais uma velha tradição, pertence a isso.
Ver originalResponder0
ApeWithNoChain
· 07-16 15:38
Mais um contrato foi destruído~
Ver originalResponder0
TeaTimeTrader
· 07-16 15:30
Mais uma vez o keeper está com problemas, tsk tsk.
Poly Network foi atacado por hackers: a vulnerabilidade do contrato levou à alteração do keeper
Análise do incidente de ataque Hacker à Poly Network
Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, o que gerou 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 pelos atacantes que, através de dados habilmente construídos, exploraram uma vulnerabilidade no contrato para modificar o endereço do keeper do contrato EthCrossChainData.
Ataque ao Núcleo
A chave do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager. Esta função 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 último tem o direito de chamar a função putCurEpochConPubKeyBytes do contrato EthCrossChainData para alterar o keeper.
Os atacantes exploram este mecanismo, passando dados cuidadosamente elaborados através da função verifyHeaderAndExecuteTx, fazendo com que a função _executeCrossChainTx execute a chamada da função putCurEpochConPubKeyBytes do contrato EthCrossChainData, alterando assim o papel de keeper para o endereço especificado pelo atacante.
Processo de Ataque
O atacante primeiro chama a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, alterando o keeper.
Após completar a substituição do endereço do papel de keeper, o atacante pode construir transações à vontade, retirando qualquer quantia de fundos do contrato.
Após o ataque, devido à alteração do keeper, as transações normais de outros usuários foram recusadas.
Este modo de ataque não foi apenas implementado na cadeia BSC, operações semelhantes também ocorreram na rede Ethereum.
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 fornecidos pelo usuário. O atacante explorou essa falha de design, modificando o endereço do keeper do contrato EthCrossChainData por meio da construção de dados específicos, e não por um suposto vazamento da chave privada do keeper.
Este evento destaca novamente a importância do design de segurança dos protocolos cross-chain e a exigência rigorosa na gestão de permissões de contratos. Também nos lembra que, no ecossistema blockchain, mesmo funcionalidades que parecem inofensivas, se utilizadas de forma maliciosa, podem levar a sérias vulnerabilidades de segurança.