Analyse de l'incident de cyberattaque de Poly Network
Récemment, le protocole d'interopérabilité inter-chaînes Poly Network a subi une attaque de hacker, suscitant une large attention dans l'industrie. L'analyse de l'équipe de sécurité indique que cette attaque n'a pas été causée par la fuite de la clé privée du keeper, mais que l'attaquant a modifié l'adresse du keeper du contrat EthCrossChainData en utilisant des données soigneusement construites.
Attaque du cœur
Le cœur de l'attaque réside dans le fait que la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager peut exécuter des transactions inter-chaînes spécifiques par le biais de la fonction _executeCrossChainTx. Étant donné que le propriétaire du contrat EthCrossChainData est le contrat EthCrossChainManager, ce dernier peut appeler la fonction putCurEpochConPubKeyBytes de l'ancien pour modifier le keeper du contrat.
L'attaquant utilise la fonction verifyHeaderAndExecuteTx en y passant des données soigneusement construites, ce qui amène la fonction _executeCrossChainTx à appeler la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, modifiant ainsi le rôle de keeper en l'adresse spécifiée par l'attaquant. Une fois cette étape terminée, l'attaquant peut construire des transactions pour extraire n'importe quel montant de fonds du contrat.
Procédure d'attaque
L'attaquant a d'abord appelé la fonction putCurEpochConPubKeyBytes via la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager, changeant ainsi le keeper.
Ensuite, le Hacker a effectué une série de transactions d'attaque pour extraire des fonds du contrat.
Après l'attaque, en raison de la modification du keeper, les transactions normales d'autres utilisateurs ont été refusées.
Ce mode d'attaque ne se produit pas seulement sur BSC, mais des opérations similaires sont également apparues sur le réseau Ethereum.
Conclusion
La clé 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 passées par l'utilisateur via la fonction _executeCrossChainTx. L'attaquant a exploité cette vulnérabilité de conception pour modifier l'adresse du keeper du contrat EthCrossChainData en construisant des données spécifiques, réalisant ainsi son objectif d'attaque.
Cet événement met à nouveau en évidence l'importance de la sécurité des protocoles inter-chaînes et rappelle aux développeurs qu'ils doivent être plus prudents lors de la conception de contrats intelligents, en particulier en ce qui concerne les fonctionnalités impliquant des changements de permissions pour des rôles clés. Parallèlement, pour les utilisateurs, il est également important de rester vigilants lors de l'utilisation des services inter-chaînes et de surveiller les dynamiques de sécurité pertinentes.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
15 J'aime
Récompense
15
4
Partager
Commentaire
0/400
LiquidatedAgain
· 08-03 22:02
Les conséquences des vulnérabilités du code sont graves.
Voir l'originalRépondre0
MoonBoi42
· 08-01 16:37
C'est grave, c'est grave, l'univers de la cryptomonnaie a encore des problèmes.
Poly Network a été attaqué par un Hacker, une vulnérabilité du contrat EthCrossChainData a été exploitée.
Analyse de l'incident de cyberattaque de Poly Network
Récemment, le protocole d'interopérabilité inter-chaînes Poly Network a subi une attaque de hacker, suscitant une large attention dans l'industrie. L'analyse de l'équipe de sécurité indique que cette attaque n'a pas été causée par la fuite de la clé privée du keeper, mais que l'attaquant a modifié l'adresse du keeper du contrat EthCrossChainData en utilisant des données soigneusement construites.
Attaque du cœur
Le cœur de l'attaque réside dans le fait que la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager peut exécuter des transactions inter-chaînes spécifiques par le biais de la fonction _executeCrossChainTx. Étant donné que le propriétaire du contrat EthCrossChainData est le contrat EthCrossChainManager, ce dernier peut appeler la fonction putCurEpochConPubKeyBytes de l'ancien pour modifier le keeper du contrat.
L'attaquant utilise la fonction verifyHeaderAndExecuteTx en y passant des données soigneusement construites, ce qui amène la fonction _executeCrossChainTx à appeler la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, modifiant ainsi le rôle de keeper en l'adresse spécifiée par l'attaquant. Une fois cette étape terminée, l'attaquant peut construire des transactions pour extraire n'importe quel montant de fonds du contrat.
Procédure d'attaque
L'attaquant a d'abord appelé la fonction putCurEpochConPubKeyBytes via la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager, changeant ainsi le keeper.
Ensuite, le Hacker a effectué une série de transactions d'attaque pour extraire des fonds du contrat.
Après l'attaque, en raison de la modification du keeper, les transactions normales d'autres utilisateurs ont été refusées.
Ce mode d'attaque ne se produit pas seulement sur BSC, mais des opérations similaires sont également apparues sur le réseau Ethereum.
Conclusion
La clé 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 passées par l'utilisateur via la fonction _executeCrossChainTx. L'attaquant a exploité cette vulnérabilité de conception pour modifier l'adresse du keeper du contrat EthCrossChainData en construisant des données spécifiques, réalisant ainsi son objectif d'attaque.
Cet événement met à nouveau en évidence l'importance de la sécurité des protocoles inter-chaînes et rappelle aux développeurs qu'ils doivent être plus prudents lors de la conception de contrats intelligents, en particulier en ce qui concerne les fonctionnalités impliquant des changements de permissions pour des rôles clés. Parallèlement, pour les utilisateurs, il est également important de rester vigilants lors de l'utilisation des services inter-chaînes et de surveiller les dynamiques de sécurité pertinentes.