SwapSpace – Échanges crypto inter-chaînes

Vulnérabilités des contrats intelligents : DAO, DeFi et attaque de réentrance

John Martin

,

Mis à jour : ,6 min

Le domaine de la finance décentralisée a connu une croissance exponentielle au cours de l’année écoulée, passant d’un total de 540 millions de dollars enregistré en mars de l’année dernière à plus de 47,6 milliards de dollars au moment de la publication de cet article.

La croissance de la sphère DeFi a ouvert de nouvelles opportunités pour les utilisateurs, les développeurs et le secteur dans son ensemble, mais a également apporté de nouveaux risques dont les investisseurs ne sont peut-être pas conscients, mais auxquels ils doivent néanmoins faire face.

La plupart des protocoles DeFi sont construits sur la blockchain Ethereum. Ethereum est la deuxième plus grande cryptomonnaie par capitalisation boursière, juste derrière Bitcoin. Grâce à Ethereum, notamment à l’utilisation de smart contracts Turing-complets, les projets blockchain sont devenus plus programmables.

Les smart contracts sont, en réalité, des contrats auto-exécutables. Le code prévu dans ces contrats permet d’exécuter automatiquement des transactions et des accords prédéfinis entre des parties pseudonymes, selon certains paramètres et sans risque de contrepartie.

Ces contrats auto-exécutables ont été proposés pour la première fois en 1994 par Nick Szabo, créateur de Bit Gold, le prédécesseur de Bitcoin, et ont permis la création de nombreuses applications décentralisées qui ont ouvert de nouvelles possibilités aux utilisateurs de cryptomonnaies, qu’il s’agisse de l’émission de stablecoins construits selon un algorithme donné, de l’octroi de prêts en cryptomonnaies ou de prêts garantis par des cryptos. Et ce n’est qu’une petite partie.

Les échanges décentralisés dotés de modèles de gouvernance décentralisée n’ont été rendus possibles que grâce à ces smart contracts, à la suite de quoi un nouveau monde numérique a émergé, donnant naissance à des produits tels que Binance Smart Chain, Polkadot et Avalanche.

Des protocoles tels que Aave, Compound, Uniswap et 1 Inch.exchange permettent aux utilisateurs de percevoir des intérêts sur leurs investissements et d’échanger des crypto-actifs, voire des instruments complexes tels que les dérivés décentralisés.

Tous ces nouveaux produits passionnants ont donné naissance au secteur DeFi mentionné ci-dessus, qui bouleverse le monde de la finance et permet aux institutions financières traditionnelles de gagner de l’argent.

Ce nouveau territoire de possibilités, comme déjà mentionné, est contrôlé par du code écrit par les développeurs de smart contracts. La plupart des projets DeFi ont un code open source et font même l’objet d’une revue par les pairs et d’un audit, tandis que d’autres, au contraire, n’en ont pas. Souvent, même dans un code testé, on peut trouver des vulnérabilités permettant d’exploiter des vecteurs d’attaque inconnus, ce qui entraîne d’énormes pertes pour les entreprises et les utilisateurs ordinaires.

Comment les vulnérabilités des smart contracts affectent-elles les utilisateurs ?

Pour garantir la sécurité des smart contracts, vous ne pouvez analyser que toutes les options de leur exécution. Lors de l’exécution de smart contracts dans des langages Turing-complets, il faut s’assurer que le programme informatique ne contient pas de bugs, ce qui est presque impossible. Par conséquent, lorsque vous travaillez sur des smart contracts ou que vous en créez, vous devrez les auditer.

Les vulnérabilités dans les smart contracts Ethereum peuvent avoir des conséquences catastrophiques. Même si des protocoles comme Aave sont gérés par des professionnels et régulièrement vérifiés, les failles de sécurité continuent de poser le risque d’une attaque de hacker avec la perte d’actifs crypto à hauteur de sommes énormes, affectant ainsi négativement la confiance des investisseurs dans le protocole et entraînant ensuite des pertes financières pour les utilisateurs/entreprises ainsi qu’une volatilité des prix.

Ces vulnérabilités découlent de la complexité du langage natif de smart contracts d’Ethereum et de son système comptable qui, contrairement au système UTXO de Bitcoin, est beaucoup plus flexible et donc plus susceptible de présenter des vulnérabilités supplémentaires et des vecteurs d’attaque.

Comme Solidity et les autres langages de smart contracts sont nouveaux et extrêmement complexes, il serait inexact d’attribuer ces vulnérabilités aux développeurs.

Il existe plus de 80 plateformes DeFi construites sur Ethereum, avec de nouveaux projets lancés chaque semaine. Les smart contracts qu’elles utilisent sont forcément vulnérables, surtout s’ils ne sont pas correctement écrits et testés.

Une enquête menée par CyberNews a révélé que près de 3 800 smart contracts Ethereum présentaient des vulnérabilités permettant à des attaquants de voler au moins 1 million de dollars d’actifs crypto. L’étude a également montré qu’il existe au total 13 types de vulnérabilités différents, dont quatre sont très susceptibles d’être exploités par des hackers.

La célèbre plateforme Avalanche a découvert une vulnérabilité plus tôt cette année. Ainsi, lors du lancement du nouvel échange décentralisé Pangolin et de la surcharge du réseau, une erreur s’est produite et a entraîné une défaillance de l’émission, provoquant une panique généralisée. D’autres plateformes connues, notamment Solana, Flow, Zilliqa et Fantom, se sont également révélées avoir des erreurs dans leurs contrats.

DAO et attaque de réentrance

La réentrance est une vulnérabilité courante des smart contracts. Bien qu’elle puisse exister dans des smart contracts sur diverses plateformes blockchain, elle est le plus souvent associée à la blockchain Ethereum.

Les attaques de réentrance sont surtout connues pour le fameux piratage de la DAO en 2016 sur la blockchain Ethereum.

La première et la plus catastrophique erreur dans un smart contract s’est produite en 2016. L’organisation autonome décentralisée (DAO) fonctionnait sur des smart contracts et avait collecté plus de 150 millions de dollars à l’époque.

Un attaquant inconnu a réussi à retirer l’ether (ETH) collecté via le crowdfunding. Le montant du préjudice s’est élevé à plus de 150 millions de dollars.

Ce cas est l’exemple le plus célèbre d’une attaque de réentrance. Une attaque répétée signifie que l’attaquant envoie une transaction, à la suite de laquelle le contrat est exécuté de manière répétée jusqu’à l’épuisement des ressources du compte du contrat.

Si le projet qui avait sollicité un financement avait reçu un soutien suffisant de la communauté de la DAO, l’adresse Ethereum de ce projet pouvait retirer de l’ether de la DAO. Malheureusement pour la DAO, le mécanisme de transfert a envoyé l’ether vers une adresse externe avant de mettre à jour son état interne et d’indiquer que le solde avait déjà été transféré. Cela a permis aux attaquants de retirer davantage d’ether.

Au total, 3,6 millions d’ETH ont été retirés des portefeuilles de la DAO. Aujourd’hui, ces tokens valent plus de 6,4 milliards de dollars. Le hack a conduit à un hard fork qui a divisé le réseau en deux parties : Ethereum et Ethereum Classic.

Alors que certains estimaient qu’il valait mieux atténuer les dommages et transférer les fonds vers des adresses auxquelles leurs propriétaires initiaux pouvaient accéder, d’autres soutenaient que l’immutabilité de la blockchain ne devait pas être violée, faute de quoi cela entraînerait une fracture technologique et idéologique au sein de la communauté.

La blockchain Ethereum originale, désormais connue sous le nom d’Ethereum Classic, a laissé les tokens volés à la DAO entre les mains d’un hacker, choisissant l’immutabilité, tandis qu’Ethereum a permis à la communauté de voter et a restitué les fonds à leurs propriétaires initiaux, en donnant la priorité au consensus de la blockchain.

Autres exemples d’attaques de réentrance en dehors de la DAO

Cependant, ces vulnérabilités ont également été mises en évidence dans de nombreux hacks de smart contracts, notamment dans plusieurs protocoles DeFi.

Voici quelques exemples de hacks DeFi récents impliquant des vulnérabilités de réentrance :

  • Fei Protocol : en avril 2022, le protocole Fei a été victime d’un hack d’environ 80 millions de dollars rendu possible par l’utilisation de code tiers contenant des vulnérabilités de réentrance.
  • Paraluni : le piratage du smart contract Paraluni en mars 2022 a exploité une vulnérabilité de réentrance et une mauvaise vérification de données utilisateur peu fiables pour voler des tokens d’une valeur d’environ 1,7 million de dollars.
  • Grim Finance : en décembre 2021, la vulnérabilité de réentrance de la fonction safeTransferFrom de Grim Finance a été exploitée pour obtenir des tokens d’une valeur d’environ 30 millions de dollars.
  • The SIREN Protocol : la vulnérabilité de réentrance dans les smart contracts du pool AMM du protocole SIREN a été exploitée en septembre 2021 pour des tokens d’une valeur d’environ 3,5 millions de dollars.
  • CREAM Finance : en août 2021, un attaquant a utilisé un exploit de réentrance pour pénétrer dans le système d’intégration du token AMP de CREAM Finance et voler des tokens d’une valeur d’environ 18,8 millions de dollars.

Ce ne sont de loin pas les seuls exemples de hacks DeFi ayant exploité des vulnérabilités de réentrance. Bien qu’il s’agisse d’un risque ancien et largement médiatisé, des vulnérabilités de réentrance apparaissent encore aujourd’hui dans de nouveaux smart contracts.

Résumons

La confiance des utilisateurs ordinaires comme des grands investisseurs dans le concept même de DeFi dépendra de la manière dont l’industrie crypto saura relever ce type de défis.

Ce qui se passe actuellement est naturel et conduira bientôt à une hausse du niveau de sécurité des projets blockchain, mais, périodiquement, nous verrons encore des nouvelles d’attaques de hackers réussies.

Partager :

Articles connexes

Curieux d’en savoir plus ?

Inscrivez-vous à notre newsletter — restez informé et maître de vos décisions.