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, chamando a atenção generalizada na indústria. Após análise da equipe de segurança, este ataque não foi causado pela divulgação da chave privada do keeper, mas sim porque o atacante, através de dados cuidadosamente elaborados, conseguiu modificar o endereço do keeper do contrato EthCrossChainData.
Detalhes do ataque
O núcleo do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, que pode executar transações específicas entre cadeias através da função _executeCrossChainTx.
A propriedade do contrato EthCrossChainData pertence ao contrato EthCrossChainManager, permitindo que este último chame a função putCurEpochConPubKeyBytes para alterar o keeper.
O atacante utiliza a característica da função verifyHeaderAndExecuteTx, passando dados meticulosamente projetados, para fazer 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 a substituição do papel de keeper, o atacante poderá construir transações livremente e extrair qualquer quantia de fundos do contrato.
Processo de Ataque
O atacante primeiro chama a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, conseguindo alterar o keeper.
Em seguida, o atacante começou a implementar 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.
Este modo de ataque não ocorre apenas na cadeia BSC, operações semelhantes também apareceram na rede Ethereum.
Conclusão
A raiz deste ataque está no fato de que o keeper do contrato EthCrossChainData pode ser modificado pelo contrato EthCrossChainManager, enquanto a função verifyHeaderAndExecuteTx do contrato EthCrossChainManager pode executar os dados fornecidos pelo usuário. O atacante aproveitou essa vulnerabilidade de design, alterando com sucesso o endereço do keeper do contrato EthCrossChainData através de dados cuidadosamente construídos, resultando no roubo de fundos. Este incidente nos lembra mais uma vez que, no design de contratos inteligentes, a gestão de permissões e a segurança das chamadas de função são de extrema importância.
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.
13 gostos
Recompensa
13
6
Republicar
Partilhar
Comentar
0/400
RetailTherapist
· 2h atrás
Mais um que foi atacado e se foi.
Ver originalResponder0
StableGeniusDegen
· 2h atrás
Mais fresco um~
Ver originalResponder0
NotSatoshi
· 2h atrás
Outra vez os hackers a causar problemas.
Ver originalResponder0
ShibaSunglasses
· 2h atrás
É mais uma vez o preto a comer o preto, não é?
Ver originalResponder0
SorryRugPulled
· 2h atrás
Outra vez a puxar o tapete? Já estou habituado.
Ver originalResponder0
RektButSmiling
· 2h atrás
Aconteceu outra vez? O keeper também não é seguro.
Poly Network sofreu um ataque de Hacker: o keeper do contrato EthCrossChainData foi adulterado
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, chamando a atenção generalizada na indústria. Após análise da equipe de segurança, este ataque não foi causado pela divulgação da chave privada do keeper, mas sim porque o atacante, através de dados cuidadosamente elaborados, conseguiu modificar o endereço do keeper do contrato EthCrossChainData.
Detalhes do ataque
O núcleo do ataque reside na função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, que pode executar transações específicas entre cadeias através da função _executeCrossChainTx.
A propriedade do contrato EthCrossChainData pertence ao contrato EthCrossChainManager, permitindo que este último chame a função putCurEpochConPubKeyBytes para alterar o keeper.
O atacante utiliza a característica da função verifyHeaderAndExecuteTx, passando dados meticulosamente projetados, para fazer 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 a substituição do papel de keeper, o atacante poderá construir transações livremente e extrair qualquer quantia de fundos do contrato.
Processo de Ataque
O atacante primeiro chama a função putCurEpochConPubKeyBytes através da função verifyHeaderAndExecuteTx do contrato EthCrossChainManager, conseguindo alterar o keeper.
Em seguida, o atacante começou a implementar 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.
Este modo de ataque não ocorre apenas na cadeia BSC, operações semelhantes também apareceram na rede Ethereum.
Conclusão
A raiz deste ataque está no fato de que o keeper do contrato EthCrossChainData pode ser modificado pelo contrato EthCrossChainManager, enquanto a função verifyHeaderAndExecuteTx do contrato EthCrossChainManager pode executar os dados fornecidos pelo usuário. O atacante aproveitou essa vulnerabilidade de design, alterando com sucesso o endereço do keeper do contrato EthCrossChainData através de dados cuidadosamente construídos, resultando no roubo de fundos. Este incidente nos lembra mais uma vez que, no design de contratos inteligentes, a gestão de permissões e a segurança das chamadas de função são de extrema importância.