Un bogue de «contrat intelligent» vraiment stupide a permis aux pirates de voler 31 millions de dollars en pièces numériques


Photo en gros plan d'un écran tactile manuel.

La startup Blockchain MonoX Finance a déclaré mercredi qu’un pirate informatique avait volé 31 millions de dollars en exploitant un bogue dans le logiciel utilisé par le service pour rédiger des contrats intelligents.

La société utilise un protocole financier décentralisé connu sous le nom de MonoX qui permet aux utilisateurs d’échanger des jetons de monnaie numérique sans certaines des exigences des échanges traditionnels. « Les propriétaires de projet peuvent répertorier leurs jetons sans le fardeau des exigences de capital et se concentrer sur l’utilisation des fonds pour la construction du projet au lieu de fournir des liquidités », déclarent ici les représentants de la société MonoX. « Cela fonctionne en regroupant les jetons déposés dans une paire virtuelle avec vCASH, pour offrir une conception de pool de jetons unique. »

Une erreur comptable intégrée au logiciel de l’entreprise a permis à un attaquant de gonfler le prix du jeton MONO et de l’utiliser ensuite pour encaisser tous les autres jetons déposés, a révélé MonoX Finance dans un article. Le transport s’élevait à 31 millions de dollars de jetons sur les chaînes de blocs Ethereum ou Polygon, toutes deux prises en charge par le protocole MonoX.

Plus précisément, le hack a utilisé le même jeton que tokenIn et tokenOut, qui sont des méthodes pour échanger la valeur d’un jeton contre un autre. MonoX met à jour les prix après chaque swap en calculant de nouveaux prix pour les deux jetons. Lorsque l’échange est terminé, le prix de tokenIn, c’est-à-dire le jeton envoyé par l’utilisateur, diminue et le prix de tokenOut, ou le jeton reçu par l’utilisateur, augmente.

En utilisant le même token pour tokenIn et tokenOut, le pirate a considérablement gonflé le prix du token MONO car la mise à jour du tokenOut a écrasé la mise à jour du prix du tokenIn. Le pirate a ensuite échangé le jeton contre 31 millions de dollars de jetons sur les blockchains Ethereum et Polygon.

Il n’y a aucune raison pratique d’échanger un jeton contre le même jeton, et donc le logiciel qui effectue les transactions n’aurait jamais dû autoriser de telles transactions. Hélas, il l’a fait, bien que MonoX ait reçu trois audits de sécurité cette année.

Les pièges des contrats intelligents

« Ces types d’attaques sont courants dans les contrats intelligents, car de nombreux développeurs ne se sont pas chargés de définir les propriétés de sécurité de leur code », Dan Guido, expert en sécurisation de contrats intelligents comme celui piraté ici. «Ils ont eu des audits, mais si les audits indiquent seulement qu’une personne intelligente a regardé le code pendant une période donnée, alors les résultats ont une valeur limitée. Les contrats intelligents ont besoin de preuves vérifiables qu’ils font ce que vous avez l’intention de faire, et uniquement ce que vous avez l’intention de faire. Cela signifie des propriétés de sécurité définies et des techniques utilisées pour les évaluer.

Le PDG du cabinet de conseil en sécurité Trail of Bits, Guido a poursuivi :

La plupart des logiciels nécessitent une atténuation des vulnérabilités. Nous recherchons de manière proactive les vulnérabilités, reconnaissons qu’elles peuvent ne pas être sécurisées lors de leur utilisation et construisons des systèmes pour détecter quand elles sont exploitées. Les contrats intelligents nécessitent l’élimination de la vulnérabilité. Les techniques de vérification des logiciels sont largement utilisées pour offrir des assurances prouvables que les contrats fonctionnent comme prévu. La plupart des problèmes de sécurité dans les contrats intelligents surviennent lorsque les développeurs adoptent la première approche de sécurité au lieu de la seconde. Il existe de nombreux contrats et protocoles intelligents volumineux, complexes et très précieux qui ont évité des incidents, aux côtés des nombreux qui ont été instantanément exploités lors de leur lancement.

Igor Igamberdiev, chercheur en blockchain a pris sur Twitter pour décomposer la composition des jetons drainés. Les jetons comprenaient 18,2 millions de dollars d’Ethereum enveloppé, 10,5 millions de jetons MATIC et 2 millions de dollars de WBTC. Le transport comprenait également de plus petites quantités de jetons pour Wrapped Bitcoin, Chainlink, Unit Protocol, Aavegotchi et Immutable X.

Seul le dernier hack DeFi

MonoX n’est pas le seul protocole financier décentralisé à être victime d’un piratage de plusieurs millions de dollars. En octobre, Indexed Finance a déclaré avoir perdu environ 16 millions de dollars dans un piratage qui exploitait la façon dont il rééquilibre les pools d’indices. Plus tôt ce mois-ci, la société d’analyse de blockchain Elliptic a déclaré que les protocoles dits DeFi avaient perdu 12 milliards de dollars à ce jour en raison de vols et de fraudes. Les pertes au cours des 10 premiers mois environ de cette année ont atteint 10,5 milliards de dollars, contre 1,5 milliard de dollars en 2020.

« La relative immaturité de la technologie sous-jacente a permis aux pirates de voler les fonds des utilisateurs, tandis que les profonds réservoirs de liquidités ont permis aux criminels de blanchir les produits du crime tels que les ransomwares et la fraude », a déclaré le rapport Elliptic. « Cela fait partie d’une tendance plus large à l’exploitation de technologies décentralisées à des fins illicites, qu’Elliptic appelle DeCrime. »

Le message MonoX de mercredi a déclaré qu’au cours de la dernière journée, les membres de l’équipe ont pris les mesures suivantes :

  • J’ai essayé d’entrer en contact avec l’attaquant pour ouvrir un dialogue en soumettant un message via une transaction sur ETH Mainnet
  • A suspendu le contrat et mettra en œuvre un correctif pour subir des tests plus rigoureux. Après avoir proposé un plan de compensation adéquat, nous travaillerons sur une pause une fois que nos partenaires de sécurité auront donné leur accord.
  • Contacté de grands échanges pour surveiller et éventuellement arrêter toute adresse de portefeuille liée à l’attaque
  • Collaborer avec nos conseillers en sécurité pour progresser dans l’identification du pirate informatique et la façon d’atténuer les risques futurs
  • Interactions croisées entre les portefeuilles Tornado Cash et les portefeuilles qui utilisaient également notre plate-forme
  • Recherche des métadonnées laissées par les interactions frontales avec notre Dapp
  • Adresses de portefeuille détaillées et mappées qui pourraient être considérées comme « suspectes » en fonction de leur interaction avec notre produit. Par exemple, retirer une grande quantité de liquidités avant l’exploit
  • Surveillance continue du portefeuille avec les fonds. Jusqu’à présent, 100 ETH ont été envoyés à Tornado Cash à partir des fonds volés. Le reste est toujours là.
  • De plus, nous déposerons un rapport de police officiel.

Le message a déclaré que MonoX Finance a une assurance qui couvrira 1 million de dollars de pertes et que la société « travaille maintenant sur les distributions ».



Laisser un commentaire