Comment 323 millions de dollars de crypto ont été volés sur un pont blockchain appelé Wormhole

Comment 323 millions de dollars de crypto ont été volés sur un pont blockchain appelé Wormhole

7 février 2022 0 Par Le Caiman
Comment 323 millions de dollars de crypto ont été volés sur un pont blockchain appelé Wormhole

Il s’agit d’une histoire sur la façon dont un simple bogue logiciel a permis le quatrième plus grand vol de crypto-monnaie jamais réalisé.

Les pirates ont volé plus de 323 millions de dollars en crypto-monnaie en exploitant une vulnérabilité dans Wormhole, un service Web qui permet des transactions inter-blockchain. Wormhole permet aux gens de déplacer des pièces numériques liées à une blockchain vers une autre blockchain ; ces ponts blockchain sont particulièrement utiles pour les services de finance décentralisée (DeFi) qui fonctionnent sur deux chaînes ou plus, souvent avec des protocoles, des règles et des processus très différents.

Un gardien sans dents

Utilisation des ponts jetons emballés, qui verrouillent les jetons d’une blockchain dans un contrat intelligent. Après qu’un oracle décentralisé inter-chaînes appelé « gardien » certifie que les pièces ont été correctement verrouillées sur une chaîne, le pont frappe ou libère des jetons de même valeur sur l’autre chaîne. Wormhole relie la blockchain Solana à d’autres blockchains, notamment celles d’Avalanche, Oasis, Binance Smart Chain, Ethereum, Polygon et Terra.

Mais que se passe-t-il si vous ne pouvez pas faire confiance au tuteur ? UNE longue analyse publié sur Twitter quelques heures après le braquage a déclaré que la plate-forme principale de Wormhole n’avait pas réussi à valider correctement ses comptes de gardien. En créant un faux compte de signature, le pirate ou les pirates derrière le braquage frappé 120 000 pièces ETH—D’une valeur d’environ 323 millions de dollars au moment des transactions — sur la chaîne Solana. Les pirates ont alors fait des séries de transferts qui a déposé environ 93 750 jetons dans un portefeuille privé stocké sur la chaîne Ethereum, société d’analyse de blockchain Elliptic mentionné.

Les pirates ont réussi le vol en utilisant une transaction antérieure pour créer un ensemble de signatures, qui est un type d’informations d’identification. Avec cela, ils ont créé un VAA, ou approbation d’action de validateur, qui est essentiellement un certificat nécessaire pour approuver les transactions.

« Une fois qu’ils avaient le faux » jeu de signatures « , il était trivial de l’utiliser pour générer un VAA valide et déclencher une frappe non autorisée sur leur propre compte », @samczsun, le pseudo Twitter d’un employé d’une société d’investissement Paradigme, a écrit. « Le reste appartient à l’histoire. tl; dr – Wormhole n’a pas correctement validé tous les comptes d’entrée, ce qui a permis à l’attaquant d’usurper les signatures des tuteurs et de frapper 120 000 ETH sur Solana, dont 93 750 ont été renvoyés à Ethereum. »

Une autre plongée en profondeur utile sur le hack est ici.

Le transport est le quatrième plus grand vol de crypto-monnaie de tous les temps, selon ce tour d’horizon de Statista, juste derrière les 480 millions de dollars volés au mont. Gox en 2014, les 547 millions de dollars pris à Coincheck en 2018, et les 611 millions de dollars arrachés à Polynetwork l’an dernier (ce montant record a ensuite été restitué par le voleur).

Statistique

En 2021, les pertes dues aux vols de crypto-monnaie ont totalisé 10,5 milliards de dollars, selon Elliptique contre 1,5 milliard de dollars l’année précédente.

Un défi non négligeable

Le piratage de Wormhole a pris par surprise quelques experts en sécurité de la blockchain. Le défi d’écrire un logiciel qui interagit avec plusieurs chaînes de manière sûre n’est pas trivial, et seul un nombre limité d’outils et de techniques peuvent tester la solidité du code.

« La construction de ponts hérite de toute la complexité de chaque blockchain », a déclaré Dan Guido, PDG de la société de sécurité Trail of Bits, dans un message. « Ils semblent d’une simplicité trompeuse, mais ils font partie des codes les plus difficiles à écrire dans la réalité. »

Pour compliquer la difficulté, le nouveau hack est arrivé peu de temps après qu’une modification récente ait été apportée à certains des logiciels impliqués.

« Le pont ne s’attendait pas à ce que les utilisateurs puissent soumettre un ensemble de signatures, car le changement pour faciliter cela était récent dans le runtime Solana », a expliqué Guido. « En soumettant ses propres données de signature, un attaquant a court-circuité une vérification de signature qui lui a permis de s’approprier une grande quantité de jetons. »

Dans un e-mail, Dane Sherret, architecte de solutions au service de rapport de bogues HackerOne, l’a expliqué ainsi :

Il y a un verify_signatures fonction qui est censée prendre les signatures cryptographiques des gardiens et les regrouper. Malgré son nom, verify_signatures ne se vérifie pas réellement — il utilise le secp256k1 programme natif sur Solana. La version du programme solana que Wormhole utilisait ne vérifiait pas correctement l’adresse, ce qui permettait au pirate de créer un compte qui pouvait contourner toutes les vérifications.

Grâce aux étapes ci-dessus, le pirate a pu contourner les vérifications de signature et transférer l’ETH vers Ethereum, ce qui signifie que pendant un certain temps, certains des wETH [the wrapped ETH on Solana] n’était en fait soutenu par rien.

Ce piratage m’est difficile à comprendre car il a été lancé sur la blockchain Solana – qui utilise le langage de programmation Rust pour ses contrats intelligents. Comme Ethereum utilise le langage de programmation Solidity pour ses contrats intelligents, c’est un exemple de la façon dont de nouveaux réseaux, avec des idiosyncrasies différentes et des langages différents, se parlent désormais, ce qui rend la sécurité d’autant plus difficile.

Les applications inter-chaînes présentent également d’autres risques. Dans leur publication écrite le mois dernier, le co-fondateur d’Ethereum, Vitalik Buterin, a averti que « les limites de sécurité fondamentales des ponts » les rendaient vulnérables à une classe différente d’exploit de blockchain connu sous le nom de 51% attaque.

Pareillement connue sous le nom d’attaque majoritaire, une attaque à 51 % permet à une partie malveillante qui gagne plus de 50 % de la puissance de hachage sur une blockchain d’annuler des transactions effectuées précédemment, d’empêcher la confirmation de nouvelles transactions et de modifier l’ordre des nouvelles transactions. Cela ouvre la porte à ce que l’on appelle la double dépense, un piratage qui permet à l’attaquant d’effectuer deux paiements ou plus avec les mêmes jetons de devise. Buterin a écrit :

Je ne m’attends pas à ce que ces problèmes apparaissent immédiatement. 51% attaquer ne serait-ce qu’une seule chaîne est difficile et coûteux. Cependant, plus les ponts et les applications inter-chaînes sont utilisés, plus le problème s’aggrave. Personne n’attaquera à 51% Ethereum juste pour voler 100 Solana-WETH (ou, d’ailleurs, 51% attaquera Solana juste pour voler 100 Ethereum-WSOL). Mais s’il y a 10 millions d’ETH ou de SOL dans le pont, la motivation pour lancer une attaque devient beaucoup plus élevée, et de grands pools peuvent bien se coordonner pour que l’attaque se produise. Ainsi, l’activité inter-chaînes a un effet anti-réseau : même s’il ne se passe pas grand-chose, c’est assez sûr, mais plus cela se produit, plus les risques augmentent.

Pendant ce temps, la demande d’interopérabilité de la blockchain continue de croître, ce qui rend probablement les défis de sécurité plus vexants. Guido et Sherret ont tous deux conseillé aux opérateurs de ponts de prendre des mesures proactives pour empêcher des piratages similaires à l’avenir. Ces étapes incluent la réalisation de plusieurs audits de sécurité et la mise en place de fonctionnalités limitées sur les listes d’autorisation du réseau jusqu’à ce que les développeurs soient confiants dans la maturité et la sécurité d’une fonction.