Faycy Profile picture
Daily airdrop farming strategies & DeFi researcher. Top 1% on LayerZero & zkSync & Scroll. Business → Faycytw on Telegram.

Aug 4, 2022, 26 tweets

[THREAD] Comment Mr. White Hat a réalisé le plus gros braquage de l'histoire de la crypto,

666 Millions de dollars dérobé à @PolyNetwork2.

Nous sommes ici pour voir comment il s'y est pris, analyser et déterminer ce qui a été exploité et pourquoi a-t-il rendu les 666 Millions qu'il a dérobés à @PolyNetwork2.

Premièrement, qu'est ce que @PolyNetwork2,

Polynetwork est un projet de transaction cross-chain qui vous permet de déplacer des actifs ou des jetons entre différents protocoles blockchain comme ethereum ou polygon.

C'est assez technique, donc prenez un Dafalgan car votre cerveau risque de chauffer, je vais vous expliquer tout ça pour que même les personnes qui ne comprennent rien aux fonctions informatiques puissent suivre.

Bonne lecture à vous !

Pour commencer, j'ai pris quelques exemples pour que vous compreniez la suite,

il y a un comptable (b) qui a le contrôle de la banque.

Donc ce comptable (b) a le contrôle des comptes bancaires dans lesquels se trouve tout l'argent,

ce comptable (b) a un patron (a), et ce qui se passe c'est que les gens vont voir le patron et disent:

"Je veux faire cette transaction", le patron (a) vérifie si c'est une transaction valide ou non, et si c'est une transaction valide.

Alors le patron (a) donne des instructions au comptable (b) (qui ne répond qu'au patron) et lui dit d'effectuer les transactions financières suivantes pour lui, et tout cela fonctionne très bien.

Sauf que Mr. White Hat l'a fait fonctionné à sa manière,

Passons à l'explication un peu technique, je vais faire de mon mieux pour que vous compreniez, pour ce faire, retenez cela, 👇

"EthCrossChainManageur" (le comptable qui est le propriétaire de "EthCrossChainData", qui lui même a un gardien qu'on appellera (le patron),

Lorsque nous analysons l'attaque, nous pouvons voir que l'attaque a principalement fonctionné parce qu'il y a un gardien (le patron) dans un contrat appelé "EthCrossChainData" qui peut être modifié par un autre contrat séparé appelé "EthCrossChainManager" (le comptable).

Donc, on peut comprendre que le patron peut être "modifié" à cause du contrat "EthCrossChainManager" et ses fonctions qui sont séparées du contrat "EthCrossChainData" (qui contient le gardien (le patron).

Et c'est la que se trouve la faille, entre le patron et le comptable. Le patron peut dire au comptable, "écoute, je ne suis plus ton patron, c'est l'autre type ici présent qui est ton patron".

C'est la première faiblesse.

Le contrat "EthCrossChainManager" (le comptable) a une fonction appelée "verifyHeaderAndExecuteTransaction", et cette fonction permet au contrat "EthCrossChainManager" (le comptable) d'exécuter les données transmises par Mr. White Hat (le hackeur).

Ensuite, la seconde faiblesse qu'on va voir si dessous est que le patron peut enfaite être hypnotisé en donnant une telle instruction au comptable grâce aux différentes fonctions dans le contrat "EthCrossChainData" qui contient le gardien (le patron).

Puisque le propriétaire du contrat "EthCrossChainData" est le contrat "EthCrossChainManager" (le comptable).

Le contrat "EthCrossChainManager" peut modifier le gardien (le patron) du contrat en appelant la fonction "putCurEpochConPubKeyBytes" du contrat "EthCrossChainData".

les données sont soigneusement construite et transmise par le biais de la fonction "verifyHeaderAndExecuteTx" pour que la fonction "_executeCrossChainTx" exécute l'appel à la fonction "PutCurEpochConPubKeyBytes" du contrat ""EthCrossChainData" afin de

modifier le rôle de gardien à l'adresse spécifiée de Mr. White Hat (le hackeur).

En gros, le patron c'est fait "hypnotiser",

Mr. White Hat a dit au patron de dire au comptable que le patron n'est plus le patron du comptable mais qu'il est le patron du comptable à la place,

Grâce à cette transaction, Mr. White Hat modifie l'opération du gardien :
etherscan.io/tx/0xb1f70464b…

Donc, la fonction "_executecrosschainTx" appelle une autre fonction qui met à jour les bookkeepers avec les clés publiques de Mr. White Hat.

@PolyNetwork2 utilisent le concept de lock boxes, qui authentifie les messages signés et validés par un groupe de contrats appelés bookkeepers,

Mr. White Hat doit donc mettre à jour le bookkeeper avec sa clé publique grâce à une fonction,

Il a ensuite envoyé des instructions pour des transactions financières,

des transactions financières au comptable qui ont vidé l'argent des comptes bancaires,

La transaction par laquelle Mr. White Hat a effectué l'attaque: etherscan.io/tx/0xad7a2c70c…

On peut se demander, qu'est-ce qui a été mis dans cette transaction qui lui a permis de télécharger sa clé publique dans le bookkeeper et ainsi prendre le contrôle ?

C'est là que nous avons une "_méthod" qui a été fournie.

Une "_méthod" est un pointeur vers la fonction du contrat et elle peut être générée si vous avez le bon "hash" ;

Dans le cas de Mr. White Hat, c'est ce qu'il a fait, il devait fournir un identifiant de "_méthod" qui pointerait vers la fonction qui met à jour le bookkeeper

avec sa clé publique.

Une fois l'identifiant encodé, l'attaquant reçois la "_méthod",

"0x41973cd9"

Il l'encode...

Maintenant que notre attaquant avait sa clé publique, mise à jour dans le bookkeeper.

Il pouvait exécuter n'importe qu'elle transaction qu'il voulait.

Pourquoi a-t-il rendu les 666 Millions volés ?

Mr. White Hat a déclaré qu'il a volé les fonds afin de les mettre en sécurité suite à la découverte d'une faille dans les contrats de Poly Network, il voulait simplement contribuer à la sécurité de @PolyNetwork2

Voici sa #FAQ 👇

L’équipe de PolyNetwork lui on proposé une prime de 500 000 dollars pour le récompenser d’avoir identifié la faille, il a finalement accepté.

Il a même reçu une proposition d’embauche en tant que chef de sécurité chez eux, qu'il a refusé au risque de compromettre son identité.

Voilà pour ce thread, merci d'avoir lu jusqu'ici, si vous souhaitez en apprendre plus sur l'écosystème crypto, n'hésitez pas à me suivre juste ici ! @0xFaycy

Ce Thread est traduit grâce à cette article:

slowmist.medium.com/the-root-cause…

@PolyNetwork2 dérobés*

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling