Poly Network a été attaqué par un Hacker : le keeper du contrat EthCrossChainData a été altéré.

robot
Création du résumé en cours

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. Après analyse par l'équipe de sécurité, cette attaque n'a pas été causée par une fuite de clé privée du keeper, mais par le fait que l'attaquant a modifié l'adresse du keeper du contrat EthCrossChainData à l'aide de données soigneusement construites.

Cœur de l'attaque

La clé de l'attaque réside dans la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager. Cette fonction 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 est en mesure d'appeler la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData pour modifier le keeper du contrat.

L'attaquant utilise la fonction verifyHeaderAndExecuteTx pour transmettre des données spéciales, ce qui amène la fonction _executeCrossChainTx à appeler la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, ce qui permet de changer le rôle de keeper en l'adresse spécifiée par l'attaquant. Une fois cette étape complétée, l'attaquant peut construire des transactions pour extraire n'importe quel montant de fonds du contrat.

Processus d'attaque

  1. L'attaquant a appelé la fonction putCurEpochConPubKeyBytes via la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager, modifiant ainsi le keeper.

  2. Ensuite, l'attaquant a réalisé une série de transactions d'attaque pour retirer des fonds du contrat.

  3. En raison de la modification du keeper, les transactions normales d'autres utilisateurs ont été refusées.

  4. Des méthodes d'attaque similaires ont également été utilisées sur le réseau Ethereum, les hackers ont également modifié le keeper et ont mis en œuvre l'attaque.

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, tandis que la fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager 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 pour modifier l'adresse du keeper du contrat EthCrossChainData, réalisant ainsi son objectif d'attaque.

Cet événement rappelle encore une fois l'importance de la sécurité des protocoles inter-chaînes, en particulier en ce qui concerne la gestion des rôles clés et le contrôle des autorisations. À l'avenir, des projets similaires devront être conçus avec plus de prudence pour éviter l'apparition de vulnérabilités pouvant être exploitées par des attaquants.

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
  • 5
  • Reposter
  • Partager
Commentaire
0/400
TestnetNomadvip
· Il y a 9h
Ah, encore un vol, toujours les mêmes pièges.
Voir l'originalRépondre0
NotSatoshivip
· 08-16 15:15
Blockchain嫖老师
Voir l'originalRépondre0
GateUser-7b078580vip
· 08-16 15:11
Encore une faille dans les smart contracts. Combien de contrats peuvent encore être fiables ?
Voir l'originalRépondre0
GmGnSleepervip
· 08-16 15:05
Encore noir, sigh, rien de bon à dire.
Voir l'originalRépondre0
DarkPoolWatchervip
· 08-16 15:04
Encore un hacker soigneusement construit
Voir l'originalRépondre0
  • Épingler
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)