Analyse de l'incident d'attaque de Hacker sur Poly Network
Récemment, le protocole d'interopérabilité inter-chaînes Poly Network a été victime d'une attaque de hacker, suscitant une large attention. Selon l'analyse de l'équipe de sécurité, cette attaque n'est pas due à une fuite de la clé privée du keeper, mais les attaquants ont habilement construit des données pour exploiter une vulnérabilité du contrat et modifier l'adresse du keeper dans le contrat EthCrossChainData.
Principe d'attaque
Le cœur de l'attaque réside dans la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager, qui peut exécuter des transactions inter-chaînes. Comme le propriétaire du contrat EthCrossChainData est le contrat EthCrossChainManager, ce dernier peut appeler la fonction putCurEpochConPubKeyBytes de l'autre pour changer le keeper.
L'attaquant a utilisé la fonction verifyHeaderAndExecuteTx en passant des données soigneusement conçues, puis a appelé en interne la fonction _executeCrossChainTx, exécutant finalement la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, changeant le rôle de keeper à l'adresse spécifiée par l'attaquant.
Une fois le remplacement du rôle de keeper effectué, l'attaquant peut librement construire des transactions et extraire n'importe quel montant de fonds du contrat.
Processus d'attaque
L'attaquant a d'abord appelé la fonction putCurEpochConPubKeyBytes via la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager, modifiant ainsi le keeper.
Ensuite, l'attaquant a effectué une série de transactions d'attaque pour retirer des fonds du contrat.
En raison de la modification du keeper, les transactions normales d'autres utilisateurs ont été refusées.
Des attaques similaires ont également eu lieu sur le réseau Ethereum, avec les mêmes méthodes d'attaque.
Conclusion
La cause fondamentale de cette attaque réside dans le fait que le keeper du contrat EthCrossChainData peut être modifié par le contrat EthCrossChainManager, dont la fonction verifyHeaderAndExecuteTx peut exécuter les données fournies par l'utilisateur. L'attaquant a précisément exploité ce défaut de conception en construisant des données spécifiques pour modifier l'adresse du keeper du contrat EthCrossChainData, réalisant ainsi son objectif d'attaque.
Cet événement nous rappelle une fois de plus qu'il est essentiel de prêter une attention particulière à la gestion des droits et à la validation des données lors de la conception de protocoles inter-chaînes, afin d'éviter que des vulnérabilités de sécurité similaires ne soient exploitées. En même temps, cela met en évidence l'importance de procéder régulièrement à des audits de sécurité et à des programmes de bug bounty pour détecter et corriger rapidement les éventuels risques de sécurité.
Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
24 J'aime
Récompense
24
5
Partager
Commentaire
0/400
MetaDreamer
· 07-04 18:08
Un autre mantou a été emporté.
Voir l'originalRépondre0
CoffeeNFTs
· 07-02 15:50
Les smart contracts ont encore explosé ? Oseriez-vous encore stocker des jetons à notre époque ?
Voir l'originalRépondre0
ShitcoinConnoisseur
· 07-02 15:48
Un autre smart contract a été exploité.
Voir l'originalRépondre0
LayoffMiner
· 07-02 15:47
Une nouvelle faille de sécurité est arrivée. S'est échappée, s'est échappée.
Voir l'originalRépondre0
HodlVeteran
· 07-02 15:31
Chaque année, des pigeons sont pris pour des idiots, nous y sommes habitués.
Poly Network a été attaqué par un Hacker : la vulnérabilité du contrat EthCrossChainManager a entraîné des pertes financières.
Analyse de l'incident d'attaque de Hacker sur Poly Network
Récemment, le protocole d'interopérabilité inter-chaînes Poly Network a été victime d'une attaque de hacker, suscitant une large attention. Selon l'analyse de l'équipe de sécurité, cette attaque n'est pas due à une fuite de la clé privée du keeper, mais les attaquants ont habilement construit des données pour exploiter une vulnérabilité du contrat et modifier l'adresse du keeper dans le contrat EthCrossChainData.
Principe d'attaque
Le cœur de l'attaque réside dans la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager, qui peut exécuter des transactions inter-chaînes. Comme le propriétaire du contrat EthCrossChainData est le contrat EthCrossChainManager, ce dernier peut appeler la fonction putCurEpochConPubKeyBytes de l'autre pour changer le keeper.
L'attaquant a utilisé la fonction verifyHeaderAndExecuteTx en passant des données soigneusement conçues, puis a appelé en interne la fonction _executeCrossChainTx, exécutant finalement la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, changeant le rôle de keeper à l'adresse spécifiée par l'attaquant.
Une fois le remplacement du rôle de keeper effectué, l'attaquant peut librement construire des transactions et extraire n'importe quel montant de fonds du contrat.
Processus d'attaque
L'attaquant a d'abord appelé la fonction putCurEpochConPubKeyBytes via la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager, modifiant ainsi le keeper.
Ensuite, l'attaquant a effectué une série de transactions d'attaque pour retirer des fonds du contrat.
En raison de la modification du keeper, les transactions normales d'autres utilisateurs ont été refusées.
Des attaques similaires ont également eu lieu sur le réseau Ethereum, avec les mêmes méthodes d'attaque.
Conclusion
La cause fondamentale de cette attaque réside dans le fait que le keeper du contrat EthCrossChainData peut être modifié par le contrat EthCrossChainManager, dont la fonction verifyHeaderAndExecuteTx peut exécuter les données fournies par l'utilisateur. L'attaquant a précisément exploité ce défaut de conception en construisant des données spécifiques pour modifier l'adresse du keeper du contrat EthCrossChainData, réalisant ainsi son objectif d'attaque.
Cet événement nous rappelle une fois de plus qu'il est essentiel de prêter une attention particulière à la gestion des droits et à la validation des données lors de la conception de protocoles inter-chaînes, afin d'éviter que des vulnérabilités de sécurité similaires ne soient exploitées. En même temps, cela met en évidence l'importance de procéder régulièrement à des audits de sécurité et à des programmes de bug bounty pour détecter et corriger rapidement les éventuels risques de sécurité.