Hack Nomad : une faille à 190 millions de $
Tout a disparu ! – Les ponts, ou bridges, sont des services centraux à la dimension multichaine de l’écosystème DeFi. En effet, ces derniers permettent d’envoyer des fonds d’une blockchain à une autre de manière décentralisée. Cependant, la présence de failles au sein de ces services peut avoir des conséquences systémiques. Le pont Nomad en a fait les frais, dans un hack colossal, entrainant la perte de 190 millions de dollars.
Le pont Nomad victime d’un hack à 190 millions de $
Nomad est un service de pont inter-chaîne permettant de transférer des fonds depuis Ethereum vers diverses blockchains. Celui-ci supporte des blockchains telles que Evmos, Moonbeam ou encore Milkomeda.
En pratique, le pont de Nomad fonctionne grâce à une série de smart contracts déployés sur chacune des blockchains supportées.
Pour envoyer des cryptomonnaies d’une blockchain A à une blockchain B, les utilisateurs vont déposer des fonds sur le smart contract de la blockchain A. Par la suite, des programmes appelés « watcher » et « relayer » vont analyser le dépôt, le vérifier puis appeler le smart contract sur la blockchain B. Celui-ci va alors débloquer la même quantité de fonds et les envoyer sur l’adresse de l’utilisateur sur la blockchain B.
Comme rapporté pendant la nuit par le Journal du Coin, le protocole Nomad a été la cible d’une attaque entraînant la perte de la quasi-totalité des actifs qui y étaient déposés. D’après Defillama, seuls 10 000 $ seraient encore présents dans le bridge.
Au total, ce sont 190 millions de dollars qui ont été dérobés par une multitude d’attaquants différents. Un hack d’envergure, qui fait de cette attaque la cinquième plus importante qu’ait connue l’écosystème DeFi.
Une fois n’est pas coutume, cette attaque a été rendue possible par une faille présente dans l’un des smart contracts.
Déroulement du hack de Nomad
Seulement quelques heures après les faits, de nombreux cyberenquêteurs ont d’ores et déjà décortiqué le déroulement de l’attaque. Cela a permis de mettre en lumière les causes de celle-ci.
L’internaute @Samczsun, enquêteur pour le compte de l’entreprise Paradigm a publié ses recherches dans un thread Twitter, nous permettant de mieux comprendre le déroulé du hack.
Dans un premier temps, celui-ci a découvert que des dépôts de 0,01 WBTC sur Moonbeam avaient permis le retrait de 100 WBTC sur Ethereum.
L’origine de la faille
En continuant de creuser l’affaire, celui-ci a découvert la source du problème au sein de la fonction process(). En pratique, celle-ci est appelée pour effectuer le transfert d’une chaine à une autre.
Pour ce faire, celle-ci prend en paramètre un message qui contient :
- La blockchain de destination du transfert
- Une preuve de validité du message, faisant office de preuve de validité du transfert
- Les adresses d’origine et de destination de l’utilisateur souhaitant transférer les fonds
Rapidement, notre cyberenquêteur soupçonne une faille dans la preuve transmise au protocole.
« À ce stade, il y avait deux possibilités. Soit la preuve avait été soumise séparément dans un bloc antérieur, soit il y avait quelque chose d’extrêmement mauvais dans le contrat de la Replica. Cependant, il n’y avait absolument aucune indication qu’une preuve existait pour le transfert. »
Bingo ! La faille se trouvait belle et bien là où il l’avait envisagé. En effet, il semblerait que lors d’une mise à jour, les équipes de Nomad ont initialisé la racine de confiance à 0x00.
« Je savais que la racine d’un message qui n’avait pas été prouvé serait 0x00, parce que messages[_messageHash] serait non initialisé. Tout ce que j’avais à faire était de vérifier si le contrat accepterait cela comme racine. »
Après avoir essayé, il s’est rendu compte qu’en passant la valeur 0x00 comme preuve dans un message de transfert, le contrat Replica considérait le transfert comme valide. Cela a permis à n’importe qui d’effectuer des retraits des montants arbitraires, qu’ils n’avaient pas déposé sur le bridge. Le tout, en contournant la vérification du dépôt du même montant.
Une faille utilisée par de nombreux attaquants
Contrairement à bon nombre d’attaques de protocoles DeFi, celle-ci n’est pas le fruit d’un seul attaquant. En effet, ce sont plus de 41 adresses qui ont participé à l’attaque d’après les informations recueillies par l’entreprise Peckshield.
Parmi ces adresses, nous retrouvons :
- 7 bots MEV ayant récupéré 7,1 millions de dollars
- 6 white hat ayant récupéré 8,2 millions de dollars
- 27 adresses inconnues ayant récupéré plus de 130 millions de dollars
De surcroît, il semblerait que l’attaquant ayant été impliqué dans le hack de Rari Capital ait aussi utilisé la faille, lui permettant de dérober 3,4 millions de dollars.
Sans grande surprise, plusieurs de ces attaquants ont d’ores et déjà commencé à brouiller les pistes en faisant transiter les fonds via le protocole Tornado Cash.
Malheureusement pour les développeurs de Nomad, au vu de la diversité des profils d’attaquants, ces derniers auront beaucoup de mal à négocier avec ces derniers quant à une restitution des fonds.
De son côté, l’écosystème NFT est quant à lui victime d’un autre fléau : les hacks Discord. En effet, ces derniers se multiplient et entrainent coup sur coup la perte de nombreux NFT au sein de la communauté.
Accompagnerez-vous ce mouvement à 1000 milliards de dollars ? Il ne tient plus qu’à vous d’embarquer dans le train Bitcoin ! Pour ce faire, et commencer à vous familiariser avec ce monde passionnant, n’attendez pas pour vous créer un compte sur Binance, l’exchange Bitcoin et crypto de référence. Vous économiserez 10% sur vos frais de trading en suivant ce lien (lien commercial).