Analyse approfondie de l'attaque de hacker de Poly Network : le rôle de keeper du contrat EthCrossChainData a été altéré.

robot
Création du résumé en cours

Analyse détaillée de l'attaque de Hacker sur Poly Network

Récemment, le protocole d'interopérabilité entre chaînes Poly Network a subi une attaque de hacker, suscitant une large attention. L'équipe de sécurité a mené une analyse approfondie de cet événement et estime que les attaquants ont modifié le rôle de keeper du contrat EthCrossChainData par le biais de données soigneusement élaborées, et non par la fuite de la clé privée du keeper comme cela avait été précédemment prétendu.

Coeur 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. Étant donné que le propriétaire du contrat EthCrossChainData est le contrat EthCrossChainManager, ce dernier peut appeler la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData pour modifier le keeper du contrat.

L'attaquant n'a qu'à passer des données soigneusement conçues via la fonction verifyHeaderAndExecuteTx pour exécuter un appel à la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, permettant ainsi de changer le rôle de keeper pour l'adresse spécifiée par l'attaquant. Une fois le remplacement de l'adresse du rôle de keeper effectué, l'attaquant peut construire des transactions à sa guise et retirer n'importe quel montant de fonds du contrat.

Processus d'attaque

  1. L'attaquant commence par appeler la fonction putCurEpochConPubKeyBytes via la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager, modifiant ainsi le rôle de keeper.

  2. Ensuite, l'attaquant a commencé à mettre en œuvre une série de transactions d'attaque pour extraire des fonds du contrat.

  3. Après l'attaque, en raison de la modification du keeper, les transactions normales des autres utilisateurs sont refusées.

  4. Des techniques d'attaque similaires ont également été mises en œuvre sur le réseau Ethereum, le processus étant similaire à celui des attaques sur BSC.

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, tandis que la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager peut exécuter les données saisies par l'utilisateur via la fonction _executeCrossChainTx. L'attaquant a exploité cette vulnérabilité en construisant des données spécifiques, réussissant ainsi à changer le keeper du contrat EthCrossChainData en une adresse qu'il contrôle, permettant ainsi le retrait illégal des fonds du contrat.

Cet événement souligne à nouveau l'importance des audits de sécurité des contrats intelligents, en particulier dans les systèmes complexes impliquant des opérations inter-chaînes et la gestion de rôles clés. Les équipes de développement doivent concevoir et mettre en œuvre des mécanismes de gestion des droits des contrats avec plus de prudence, afin d'éviter que des vulnérabilités de sécurité similaires ne soient exploitées.

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.
  • Récompense
  • 4
  • Partager
Commentaire
0/400
ChainWanderingPoetvip
· Il y a 10h
Encore hacké ? Le contrat peut encore être maintenu.
Voir l'originalRépondre0
OfflineValidatorvip
· Il y a 10h
Une autre vulnérabilité a été détectée.
Voir l'originalRépondre0
Rugpull幸存者vip
· Il y a 10h
Encore écrasé au sol et frappé.
Voir l'originalRépondre0
airdrop_huntressvip
· Il y a 10h
Encore un bug de contrat. C'est tout ?
Voir l'originalRépondre0
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)