Récemment, le protocole d'interopérabilité cross-chain Poly Network a été victime d'une attaque de Hacker, suscitant une large attention dans l'industrie. Une équipe d'experts en sécurité a réalisé une analyse approfondie de cet incident et estime que les attaquants n'ont pas exécuté l'attaque par le biais d'une fuite de clé privée, mais ont plutôt exploité une vulnérabilité de contrat pour modifier des paramètres clés.
Noyau d'attaque
L'attaquant a réussi à modifier l'adresse du keeper du contrat EthCrossChainData en passant des données soigneusement construites à la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager. Cette opération a permis à l'attaquant d'obtenir le droit d'extraire les fonds du contrat.
Détails de l'attaque
La clé de l'attaque réside dans la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager qui peut exécuter des transactions inter-chaînes spécifiques 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 utilise la fonction verifyHeaderAndExecuteTx, en passant des données spéciales, ce qui a conduit la fonction _executeCrossChainTx à effectuer une opération de modification de l'adresse du keeper.
Une fois que l'adresse du keeper est remplacée avec succès, l'attaquant peut construire des transactions pour 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 utilisé les nouveaux droits de keeper pour effectuer plusieurs opérations de retrait de fonds.
Après l'attaque, en raison de la modification du keeper, les transactions normales des autres utilisateurs ont été refusées.
Des modes d'attaque similaires se reproduisent également sur le réseau Ethereum.
Conclusion
Le cœur 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 justement exploité ce mécanisme en construisant des données spécifiques, réussissant ainsi à modifier l'adresse du keeper et à obtenir le contrôle des fonds du contrat.
Cet événement met à nouveau en évidence l'importance de l'audit de sécurité des contrats intelligents, en particulier dans des scénarios complexes tels que les opérations inter-chaînes, où il est nécessaire de procéder à un examen complet et rigoureux de la logique du contrat pour prévenir les risques de sécurité potentiels.
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
7
Partager
Commentaire
0/400
GmGnSleeper
· Il y a 21h
Il y a des failles partout, autant dormir.
Voir l'originalRépondre0
CryptoAdventurer
· Il y a 21h
Une autre vague de pigeons a fini de payer ses frais de scolarité.
Voir l'originalRépondre0
BearMarketSurvivor
· Il y a 21h
Un autre schéma de Ponzi s'effondre.
Voir l'originalRépondre0
BlockchainFoodie
· Il y a 21h
goûte comme une soupe de contrat intelligent mal cuite... a besoin de plus d'assaisonnement en sécurité
Analyse de l'attaque du Hacker de Poly Network : une vulnérabilité de contrat a conduit au vol de fonds cross-chain.
Analyse de l'incident de piratage de Poly Network
Récemment, le protocole d'interopérabilité cross-chain Poly Network a été victime d'une attaque de Hacker, suscitant une large attention dans l'industrie. Une équipe d'experts en sécurité a réalisé une analyse approfondie de cet incident et estime que les attaquants n'ont pas exécuté l'attaque par le biais d'une fuite de clé privée, mais ont plutôt exploité une vulnérabilité de contrat pour modifier des paramètres clés.
Noyau d'attaque
L'attaquant a réussi à modifier l'adresse du keeper du contrat EthCrossChainData en passant des données soigneusement construites à la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager. Cette opération a permis à l'attaquant d'obtenir le droit d'extraire les fonds du contrat.
Détails de l'attaque
La clé de l'attaque réside dans la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager qui peut exécuter des transactions inter-chaînes spécifiques 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 utilise la fonction verifyHeaderAndExecuteTx, en passant des données spéciales, ce qui a conduit la fonction _executeCrossChainTx à effectuer une opération de modification de l'adresse du keeper.
Une fois que l'adresse du keeper est remplacée avec succès, l'attaquant peut construire des transactions pour 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 utilisé les nouveaux droits de keeper pour effectuer plusieurs opérations de retrait de fonds.
Après l'attaque, en raison de la modification du keeper, les transactions normales des autres utilisateurs ont été refusées.
Des modes d'attaque similaires se reproduisent également sur le réseau Ethereum.
Conclusion
Le cœur 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 justement exploité ce mécanisme en construisant des données spécifiques, réussissant ainsi à modifier l'adresse du keeper et à obtenir le contrôle des fonds du contrat.
Cet événement met à nouveau en évidence l'importance de l'audit de sécurité des contrats intelligents, en particulier dans des scénarios complexes tels que les opérations inter-chaînes, où il est nécessaire de procéder à un examen complet et rigoureux de la logique du contrat pour prévenir les risques de sécurité potentiels.