Análise do incidente de ataque do Hacker à Poly Network
Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, gerando grande preocupação na indústria. Após análise da equipe de segurança, concluiu-se que este ataque não foi causado pela divulgação da chave privada do keeper, mas sim que o atacante modificou o endereço do keeper do contrato EthCrossChainData através de dados cuidadosamente elaborados.
Ataque ao núcleo
A chave do ataque está na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager. Esta função pode executar transações específicas entre cadeias 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 contrato EthCrossChainData para modificar o keeper do contrato.
O atacante utiliza a função verifyHeaderAndExecuteTx para passar dados personalizados, 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 especificado pelo atacante. Após completar esta etapa, o atacante pode construir transações para retirar qualquer quantia de fundos do contrato.
Processo de Ataque
O atacante 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.
Devido à modificação do keeper, as transações normais de outros usuários foram rejeitadas.
Métodos de ataque semelhantes também foram utilizados na rede Ethereum, onde o atacante também modificou o keeper e implementou o ataque.
Conclusão
O cerne 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 aproveitou este mecanismo, construindo dados específicos que modificaram o endereço do keeper do contrato EthCrossChainData, alcançando assim o objetivo do ataque.
Este evento lembrou novamente a importância da segurança dos protocolos de cross-chain, especialmente na gestão de papéis críticos e no controle de permissões. No futuro, projetos semelhantes precisam ser mais cautelosos em seu design, evitando a criação de vulnerabilidades que possam ser exploradas por atacantes.
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.
9 Curtidas
Recompensa
9
5
Repostar
Compartilhar
Comentário
0/400
TestnetNomad
· 4h atrás
Ai, mais um que foi roubado. Sempre os mesmos problemas.
Ver originalResponder0
NotSatoshi
· 23h atrás
Blockchain嫖老师
Ver originalResponder0
GateUser-7b078580
· 23h atrás
Mais uma vulnerabilidade em contratos inteligentes. Quantos contratos ainda podemos confiar?
Poly Network foi atacado por um Hacker: o keeper do contrato EthCrossChainData foi alterado.
Análise do incidente de ataque do Hacker à Poly Network
Recentemente, o protocolo de interoperabilidade entre cadeias Poly Network foi alvo de um ataque hacker, gerando grande preocupação na indústria. Após análise da equipe de segurança, concluiu-se que este ataque não foi causado pela divulgação da chave privada do keeper, mas sim que o atacante modificou o endereço do keeper do contrato EthCrossChainData através de dados cuidadosamente elaborados.
Ataque ao núcleo
A chave do ataque está na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager. Esta função pode executar transações específicas entre cadeias 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 contrato EthCrossChainData para modificar o keeper do contrato.
O atacante utiliza a função verifyHeaderAndExecuteTx para passar dados personalizados, 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 especificado pelo atacante. Após completar esta etapa, o atacante pode construir transações para retirar qualquer quantia de fundos do contrato.
Processo de Ataque
O atacante 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.
Devido à modificação do keeper, as transações normais de outros usuários foram rejeitadas.
Métodos de ataque semelhantes também foram utilizados na rede Ethereum, onde o atacante também modificou o keeper e implementou o ataque.
Conclusão
O cerne 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 aproveitou este mecanismo, construindo dados específicos que modificaram o endereço do keeper do contrato EthCrossChainData, alcançando assim o objetivo do ataque.
Este evento lembrou novamente a importância da segurança dos protocolos de cross-chain, especialmente na gestão de papéis críticos e no controle de permissões. No futuro, projetos semelhantes precisam ser mais cautelosos em seu design, evitando a criação de vulnerabilidades que possam ser exploradas por atacantes.