Analyse de l'incident d'attaque de la Poly Network par un Hacker
Récemment, le protocole d'interopérabilité inter-chaînes Poly Network a été victime d'une attaque de Hacker, suscitant une large attention dans le secteur. L'équipe de sécurité a effectué une analyse approfondie de cet événement et estime que les attaquants ont modifié de manière soigneusement construite le keeper du contrat EthCrossChainData pour une adresse spécifique, et non par la fuite d'une clé privée de keeper comme cela avait été précédemment rapporté.
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, ce qui permet à ce dernier d'appeler la fonction putCurEpochConPubKeyBytes de l'autre pour modifier le keeper.
La fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager peut appeler en interne la fonction _executeCrossChainTx pour exécuter une transaction inter-chaînes spécifiée par l'utilisateur. Un hacker exploite cela en passant des données soigneusement construites, ce qui permet à la fonction _executeCrossChainTx d'appeler la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, modifiant ainsi le rôle de keeper pour qu'il soit l'adresse spécifiée par l'attaquant.
Une fois que l'adresse du rôle de keeper a été remplacée, l'attaquant peut facilement construire des transactions et 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, les attaquants ont commencé à mettre en œuvre une série de transactions d'attaque pour retirer des fonds du contrat.
Après l'attaque, en raison de la modification du keeper, les transactions normales des autres utilisateurs ont été refusées.
Des modèles d'attaque similaires sont également apparus sur le réseau Ethereum, les attaquants utilisant la même méthode pour modifier le keeper et mener l'attaque.
Résumé
La clé 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 via la fonction _executeCrossChainTx. L'attaquant a exploité cette vulnérabilité de conception en construisant des données spécifiques pour modifier le keeper du contrat EthCrossChainData, et non pas, comme on l'avait précédemment supposé, par une fuite de la clé privée du keeper. Cet événement souligne à nouveau l'importance de la conception sécuritaire des contrats intelligents et fournit à l'industrie des leçons précieuses.
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
4
Partager
Commentaire
0/400
RugPullAlarm
· 07-20 15:15
Les données off-chain parlent, ne perdez pas beaucoup d'argent.
Voir l'originalRépondre0
SchrodingerAirdrop
· 07-20 15:11
Il y a encore eu un incident de sécurité, haha
Voir l'originalRépondre0
MetaDreamer
· 07-20 14:50
Encore une fois, kp est en difficulté. Quand cela va-t-il s'arrêter ?
Voir l'originalRépondre0
GasFeeLady
· 07-20 14:47
smh... la compromission du gardien était juste une question de temps, pour être honnête. il faut vérifier ces points d'entrée.
Poly Network a été piraté, le keeper a été modifié, entraînant une perte de fonds.
Analyse de l'incident d'attaque de la Poly Network par un Hacker
Récemment, le protocole d'interopérabilité inter-chaînes Poly Network a été victime d'une attaque de Hacker, suscitant une large attention dans le secteur. L'équipe de sécurité a effectué une analyse approfondie de cet événement et estime que les attaquants ont modifié de manière soigneusement construite le keeper du contrat EthCrossChainData pour une adresse spécifique, et non par la fuite d'une clé privée de keeper comme cela avait été précédemment rapporté.
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, ce qui permet à ce dernier d'appeler la fonction putCurEpochConPubKeyBytes de l'autre pour modifier le keeper.
La fonction verifyHeaderAndExecuteTx du contrat EthCrossChainManager peut appeler en interne la fonction _executeCrossChainTx pour exécuter une transaction inter-chaînes spécifiée par l'utilisateur. Un hacker exploite cela en passant des données soigneusement construites, ce qui permet à la fonction _executeCrossChainTx d'appeler la fonction putCurEpochConPubKeyBytes du contrat EthCrossChainData, modifiant ainsi le rôle de keeper pour qu'il soit l'adresse spécifiée par l'attaquant.
Une fois que l'adresse du rôle de keeper a été remplacée, l'attaquant peut facilement construire des transactions et 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, les attaquants ont commencé à mettre en œuvre une série de transactions d'attaque pour retirer des fonds du contrat.
Après l'attaque, en raison de la modification du keeper, les transactions normales des autres utilisateurs ont été refusées.
Des modèles d'attaque similaires sont également apparus sur le réseau Ethereum, les attaquants utilisant la même méthode pour modifier le keeper et mener l'attaque.
Résumé
La clé 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 via la fonction _executeCrossChainTx. L'attaquant a exploité cette vulnérabilité de conception en construisant des données spécifiques pour modifier le keeper du contrat EthCrossChainData, et non pas, comme on l'avait précédemment supposé, par une fuite de la clé privée du keeper. Cet événement souligne à nouveau l'importance de la conception sécuritaire des contrats intelligents et fournit à l'industrie des leçons précieuses.