Les protocoles de finance décentralisée (DeFi) ont été la cible d’attaques récentes, donnant lieu à un vol de plus de 24 millions de dollars en crypto-monnaies. Afin de parvenir à leurs fins, les pirates ont exploité une vulnérabilité dans les pools de liquidité sur Curve, une plateforme d’échange automatisée basée sur les contrats intelligents.
Les pools de liquidité et leur vulnérabilité
Les pools de liquidité sont des contrats intelligents qui détiennent des jetons et peuvent fournir de la liquidité aux marchés de crypto-monnaies sans faire appel à des intermédiaires financiers. Bien que ces pools aient été considérés comme une innovation positive pour l’écosystème DeFi, ils sont également devenus des cibles attrayantes pour les attaquants. Un seul petit défaut dans le code peut entraîner des pertes financières considérables, comme cela a été démontré lors de ces attaques.
Les projets DeFi touchés par les attaques
Plusieurs projets DeFi ont été touchés par ces attaques. L’un d’eux est JPEG’d, un protocole de prêt basé sur les NFT (tokens non fongibles). Les attaquants ont réussi à voler 11 millions de dollars en crypto-monnaies à partir du pool de liquidité de JPEG’d sur Curve. Cela représente une perte importante pour le projet, qui a un verrouillage total de la valeur (TVL) d’environ 32 millions de dollars. Malgré cette attaque, le code responsable de la sécurité des NFT et des fonds du trésor du protocole est resté intact.
En plus de JPEG’d, d’autres projets ont également subi des pertes financières. Alchemix et Metronome DAO ont perdu respectivement 13,6 millions de dollars et 1,6 million de dollars dans des circonstances similaires. Ces attaques mettent en évidence la nécessité de renforcer la sécurité des projets DeFi et de se prémunir contre de telles vulnérabilités.
La vulnérabilité liée à Vyper
L’une des principales causes de ces attaques est une vulnérabilité liée au langage de programmation Vyper utilisé pour les contrats intelligents Ethereum. Vyper est une alternative à Solidity, le langage de programmation le plus couramment utilisé pour les contrats intelligents sur la blockchain Ethereum.
« Vyper : PSA : Les versions 0.2.15, 0.2.16 et 0.3.0 de Vyper sont vulnérables au mauvais fonctionnement des verrous de réentrance. L’enquête est en cours, mais tout projet reposant sur ces versions doit immédiatement nous contacter. »
« Curve Finance : Un certain nombre de stablepools (aIETH/msETH/pETH) utilisant Vyper 0.2.15 ont été exploités suite à un dysfonctionnement du verrou de réentrance. Nous évaluons la situation et informerons la communauté au fur et à mesure de l’évolution de la situation. »
D’après Curve sur Twitter, le problème découle du compilateur de Vyper. Lorsqu’un développeur termine l’écriture du code, il est ensuite compilé à partir d’un format lisible par l’homme en une forme que les ordinateurs peuvent exécuter. Cependant, dans certaines versions, le compilateur de Vyper a échoué, rendant ainsi les gardes de ré-entrée (re-entry guards) inefficaces. Ces gardes de ré-entrée auraient dû protéger les projets contre les attaques de type re-entrance.
Les attaques de ré-entrance
Les attaques de ré-entrance sont un vecteur courant utilisé par les pirates pour voler des fonds dans les protocoles DeFi. Elles permettent à un attaquant d’insérer de multiples appels dans une seule fonction et de tromper un contrat intelligent pour qu’il calcule des soldes incorrects. Un exemple célèbre d’une attaque de ré-entrance était le piratage du DAO Ethereum en 2016, qui a coûté 55 millions de dollars.
Réaction des projets et leçons à tirer
À la suite de ces attaques, les projets touchés, tels que JPEG’d, Alchemix et Metronome DAO, ont réagi en signalant les problèmes et en travaillant activement à leur résolution. Cependant, ces incidents soulèvent des questions concernant la sécurité des projets DeFi et la nécessité d’une conception et d’un développement solides pour éviter de telles vulnérabilités.
Pour renforcer la sécurité dans l’écosystème DeFi, il est essentiel que les projets effectuent des audits de sécurité approfondis de leur code. De plus, les développeurs doivent se tenir informés des mises à jour des langages de programmation tiers tels que Vyper et Solidity, et s’assurer que leurs contrats intelligents sont toujours en conformité avec les meilleures pratiques en matière de sécurité.
Les attaques récentes dans l’écosystème DeFi ont mis en évidence les risques et les défis auxquels sont confrontés les projets liés au monde numérique. Ces incidents soulignent l’importance de la sécurité dans la conception et le développement des contrats intelligents. En tirant des leçons de ces attaques, la communauté DeFi peut travailler ensemble pour renforcer la confiance des utilisateurs et promouvoir une adoption plus large des services financiers décentralisés.