Análise do incidente de ataque do Hacker à Poly Network
Recentemente, um ataque hacker contra o protocolo de interoperabilidade entre blockchains Poly Network chamou a atenção generalizada. Após análise da equipe de segurança, constatou-se que este ataque não foi causado pela divulgação da chave privada do keeper, mas sim que o atacante conseguiu modificar o endereço do keeper do contrato EthCrossChainData através de dados cuidadosamente elaborados.
Princípio do Ataque
O núcleo do ataque está na exploração de vulnerabilidades no contrato EthCrossChainManager. A função verifyHeaderAndExecuteTx desse contrato pode executar transações cross-chain através da função _executeCrossChainTx. Como o proprietário do contrato EthCrossChainData é o contrato EthCrossChainManager, este último pode chamar a função putCurEpochConPubKeyBytes do primeiro para modificar o keeper.
O atacante conseguiu que a função _executeCrossChainTx chamasse a função putCurEpochConPubKeyBytes do contrato EthCrossChainData, passando dados cuidadosamente elaborados para a função verifyHeaderAndExecuteTx, alterando assim o papel de keeper para o endereço especificado pelo atacante. Após completar esta etapa, o atacante pode construir transações à vontade, retirando 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 realizou uma série de transações de ataque, retirando fundos do contrato.
Após o 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 Binance Smart Chain (BSC), operações semelhantes também apareceram na rede Ethereum.
Conclusão
A raiz do ataque foi a possibilidade de o keeper do contrato EthCrossChainData ser modificado pelo contrato EthCrossChainManager, cuja função verifyHeaderAndExecuteTx pode executar dados fornecidos pelo usuário. O atacante explorou essa falha de design, modificando o keeper do contrato EthCrossChainData ao construir dados específicos, o que resultou no roubo de fundos.
Este evento destaca novamente a importância da segurança dos contratos inteligentes, especialmente no que diz respeito às operações cross-chain e à gestão de papéis-chave, onde é necessária uma concepção mais cuidadosa e uma auditoria de segurança abrangente. Para os projetos de blockchain, é crucial melhorar continuamente os mecanismos de segurança e detectar e corrigir rapidamente vulnerabilidades potenciais. Ao mesmo tempo, para os usuários comuns, é importante permanecer vigilantes ao participar de novos projetos de blockchain, prestando atenção à avaliação de segurança e aos relatórios de auditoria do projeto.
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.
Poly Network foi atacado por um Hacker, a vulnerabilidade do contrato EthCrossChainManager causou a perda de fundos.
Análise do incidente de ataque do Hacker à Poly Network
Recentemente, um ataque hacker contra o protocolo de interoperabilidade entre blockchains Poly Network chamou a atenção generalizada. Após análise da equipe de segurança, constatou-se que este ataque não foi causado pela divulgação da chave privada do keeper, mas sim que o atacante conseguiu modificar o endereço do keeper do contrato EthCrossChainData através de dados cuidadosamente elaborados.
Princípio do Ataque
O núcleo do ataque está na exploração de vulnerabilidades no contrato EthCrossChainManager. A função verifyHeaderAndExecuteTx desse contrato pode executar transações cross-chain através da função _executeCrossChainTx. Como o proprietário do contrato EthCrossChainData é o contrato EthCrossChainManager, este último pode chamar a função putCurEpochConPubKeyBytes do primeiro para modificar o keeper.
O atacante conseguiu que a função _executeCrossChainTx chamasse a função putCurEpochConPubKeyBytes do contrato EthCrossChainData, passando dados cuidadosamente elaborados para a função verifyHeaderAndExecuteTx, alterando assim o papel de keeper para o endereço especificado pelo atacante. Após completar esta etapa, o atacante pode construir transações à vontade, retirando 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 realizou uma série de transações de ataque, retirando fundos do contrato.
Após o 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 Binance Smart Chain (BSC), operações semelhantes também apareceram na rede Ethereum.
Conclusão
A raiz do ataque foi a possibilidade de o keeper do contrato EthCrossChainData ser modificado pelo contrato EthCrossChainManager, cuja função verifyHeaderAndExecuteTx pode executar dados fornecidos pelo usuário. O atacante explorou essa falha de design, modificando o keeper do contrato EthCrossChainData ao construir dados específicos, o que resultou no roubo de fundos.
Este evento destaca novamente a importância da segurança dos contratos inteligentes, especialmente no que diz respeito às operações cross-chain e à gestão de papéis-chave, onde é necessária uma concepção mais cuidadosa e uma auditoria de segurança abrangente. Para os projetos de blockchain, é crucial melhorar continuamente os mecanismos de segurança e detectar e corrigir rapidamente vulnerabilidades potenciais. Ao mesmo tempo, para os usuários comuns, é importante permanecer vigilantes ao participar de novos projetos de blockchain, prestando atenção à avaliação de segurança e aos relatórios de auditoria do projeto.