Récemment, le protocole d'interopérabilité inter-chaînes Poly Network a été victime d'une attaque de hacker, suscitant une large attention. L'équipe de sécurité a analysé que cette attaque n'était pas due à une fuite de la clé privée du keeper, mais que l'attaquant avait modifié avec soin les données pour changer le keeper du contrat EthCrossChainData en une adresse spécifiée.
Détails de l'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 via la fonction _executeCrossChainTx.
Le propriétaire du contrat EthCrossChainData est le contrat EthCrossChainManager, donc ce dernier peut appeler la fonction putCurEpochConPubKeyBytes de l'autre pour modifier le keeper.
L'attaquant passe des données spéciales via la fonction verifyHeaderAndExecuteTx, ce qui permet à la fonction _executeCrossChainTx d'exécuter l'appel de la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, changeant ainsi le keeper pour l'adresse spécifiée par l'attaquant.
Après avoir remplacé le keeper, l'attaquant peut construire des transactions à volonté pour retirer n'importe quel montant de fonds du contrat.
Processus d'attaque
L'attaquant commence par appeler la fonction putCurEpochConPubKeyBytes via la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager pour modifier le keeper.
Ensuite, l'attaquant a effectué plusieurs transactions d'attaque pour retirer des fonds du contrat.
En raison de la modification du keeper, les transactions normales des autres utilisateurs ont été annulées.
Des techniques d'attaque similaires ont également été mises en œuvre sur le réseau Ethereum.
Conclusion
La nature 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 exploité cette vulnérabilité en modifiant le keeper avec des données soigneusement construites, et non pas, comme cela avait été précédemment rapporté, à cause d'une fuite de clé privée du keeper.
Cet événement souligne à nouveau l'importance de la sécurité des protocoles inter-chaînes, rappelant aux développeurs et aux utilisateurs la nécessité de concevoir et d'utiliser ces fonctionnalités avec plus de prudence. En même temps, il sonne également l'alarme pour l'ensemble de l'industrie, appelant à un renforcement des audits et de la prévention des vulnérabilités des contrats intelligents.
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.
10 J'aime
Récompense
10
5
Reposter
Partager
Commentaire
0/400
NFTBlackHole
· 08-05 02:09
C'est encore un cas typique de faille exploitée.
Voir l'originalRépondre0
Lonely_Validator
· 08-03 14:54
C'est encore une faille de contrat.
Voir l'originalRépondre0
LazyDevMiner
· 08-02 14:40
Tu es toujours en train de corriger des bugs de contrat ? Ça craque.
Analyse de l'attaque du hacker de Poly Network : une vulnérabilité du contrat a conduit à la modification du keeper
Analyse de l'incident de piratage de 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. L'équipe de sécurité a analysé que cette attaque n'était pas due à une fuite de la clé privée du keeper, mais que l'attaquant avait modifié avec soin les données pour changer le keeper du contrat EthCrossChainData en une adresse spécifiée.
Détails de l'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 via la fonction _executeCrossChainTx.
Le propriétaire du contrat EthCrossChainData est le contrat EthCrossChainManager, donc ce dernier peut appeler la fonction putCurEpochConPubKeyBytes de l'autre pour modifier le keeper.
L'attaquant passe des données spéciales via la fonction verifyHeaderAndExecuteTx, ce qui permet à la fonction _executeCrossChainTx d'exécuter l'appel de la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, changeant ainsi le keeper pour l'adresse spécifiée par l'attaquant.
Après avoir remplacé le keeper, l'attaquant peut construire des transactions à volonté pour retirer n'importe quel montant de fonds du contrat.
Processus d'attaque
L'attaquant commence par appeler la fonction putCurEpochConPubKeyBytes via la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager pour modifier le keeper.
Ensuite, l'attaquant a effectué plusieurs transactions d'attaque pour retirer des fonds du contrat.
En raison de la modification du keeper, les transactions normales des autres utilisateurs ont été annulées.
Des techniques d'attaque similaires ont également été mises en œuvre sur le réseau Ethereum.
Conclusion
La nature 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 exploité cette vulnérabilité en modifiant le keeper avec des données soigneusement construites, et non pas, comme cela avait été précédemment rapporté, à cause d'une fuite de clé privée du keeper.
Cet événement souligne à nouveau l'importance de la sécurité des protocoles inter-chaînes, rappelant aux développeurs et aux utilisateurs la nécessité de concevoir et d'utiliser ces fonctionnalités avec plus de prudence. En même temps, il sonne également l'alarme pour l'ensemble de l'industrie, appelant à un renforcement des audits et de la prévention des vulnérabilités des contrats intelligents.