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.

Message d'alerte publié par les équipes de Nomad.
Message d’alerte publié par les équipes de Nomad.

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. 

Thread publié par Samczsun, retraçant l'attaque.
Thread publié par Samczsun, retraçant l’attaque.

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. 

Une erreur de calculs.

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.

>> Courrez vite acheter vos premiers bitcoins sur Bitstack … et gagnez 5€ de BTC avec le code JDC5 (lien commercial ) >>

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. 

Plusieurs attaquants envoient les fonds sur Tornado Cash.
Plusieurs attaquants envoient les fonds sur 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é. 

Entrainez-vous à tirer en pleine lucarne ! Pour ne pas rater l’opportunité d’une vie, inscrivez-vous sans attendre sur la plateforme d’échange crypto de référence FTX. De plus, vous bénéficiez d’une réduction à vie sur vos frais de trading (lien commercial, voir conditions sur site officiel).

Renaud H.

Ingénieur en software et en systèmes distribués de formation, passionné de cryptos depuis 2013. Touche à tout, entre mining et développement, je cherche toujours à en apprendre plus sur l’univers des cryptomonnaies et à partager le fruit de mes recherches à travers mes articles.

Recevez un condensé d'information chaque jour