Les protocoles DeFi ont perdu des milliards de dollars à cause d'exploits de contrats intelligents. Non pas à cause de krachs boursiers ou d'actions réglementaires, mais à cause de code qui ne s'est pas comporté comme prévu par ses développeurs lorsque quelqu'un l'a délibérément forcé. Comprendre comment ces attaques fonctionnent n'est pas qu'un exercice académique. Si vous utilisez DeFi, votre argent se trouve à l'intérieur de ces contrats.

L'écosystème Ethereum ETH$2,200ETH$2,20024h+0.46%7d+6.96%30d+8.02%1y+31.82%MCap: N/AVol: N/Avia Statility seul a vu plus de 5 milliards de dollars drainés via des exploits depuis que DeFi a commencé à se développer en 2020. Certains d'entre eux étaient des attaques zero-day sophistiquées. Beaucoup étaient des modèles de vulnérabilité bien connus que les auditeurs ont manqués ou qui ont été introduits après la fin de l'audit. Voici les vecteurs d'attaque qui continuent d'apparaître.

ETH Price (365 days)$2,200 Analyze

Live data via Statility

Les Suspects Habituels

Réentrance

La réentrance est la plus ancienne vulnérabilité de contrat intelligent et elle fonctionne toujours. L'attaque exploite un simple défaut de logique : un contrat envoie des fonds à une adresse externe avant de mettre à jour son propre solde interne. Le contrat de l'attaquant reçoit les fonds, puis appelle immédiatement le contrat original pour retirer à nouveau. Comme le solde n'a pas été mis à jour, le contrat pense que l'attaquant a toujours des fonds et envoie plus.

L'attaque de réentrance la plus célèbre était le hack du DAO en 2016, qui a drainé environ 60 millions de dollars en ETH et a finalement conduit au hard fork d'Ethereum qui a créé Ethereum Classic. On pourrait supposer que l'industrie en a tiré une leçon. Ce n'était pas le cas.

En juillet 2023, une vulnérabilité de réentrance dans le compilateur Vyper (non pas dans le code d'un protocole individuel, mais dans le langage de programmation lui-même) a conduit à des exploits sur plusieurs pools de Curve Finance, drainant plus de 60 millions de dollars. Le bug était présent dans les versions Vyper 0.2.15 à 0.3.0 depuis des années. C'est important car cela montre que la réentrance peut se cacher dans des couches de la pile que les développeurs de protocoles et les auditeurs ne regardent même pas.

Manipulation d'Oracle

Les protocoles DeFi ont besoin de données de prix pour fonctionner. Les plateformes de prêt doivent connaître les valeurs des garanties. Les DEX ont besoin de prix de référence pour la protection contre le glissement. Ces données de prix proviennent d'oracles, et manipuler l'oracle signifie manipuler le protocole.

L'exploit des Mango Markets en octobre 2022 en est un exemple classique. Avraham Eisenberg a utilisé 5 millions de dollars pour gonfler artificiellement le prix des tokens MNGO sur l'exchange de Mango, ce qui a gonflé la valeur de sa position de garantie. Il a ensuite emprunté 114 millions de dollars contre cette garantie gonflée et l'a retiré. Techniquement, le protocole a fonctionné exactement comme prévu. L'oracle a rapporté le prix qu'il a vu. La logique de prêt a suivi ses règles. Mais le système supposait que le prix de l'oracle reflétait la valeur réelle du marché, et cette supposition était erronée.

Les protocoles qui utilisent une seule source de données de prix en chaîne, en particulier le propre pool de trading d'un token peu liquide, sont intrinsèquement vulnérables à cela. Chainlink★★★★4.2Chainlinkbrand★★★★4.2/55 AI reviewsChainlink is the leading oracle platform powering DeFi and onchain capital markets, securing over $25 trillion in tra...via Rexiew Chainlink et d'autres réseaux d'oracles décentralisés existent pour atténuer cela en agrégeant des données provenant de plusieurs sources, mais tous les protocoles ne les utilisent pas, et même les flux agrégés peuvent être manipulés dans des conditions extrêmes.

Attaques par Flash Loan

Les flash loans sont des prêts non garantis qui doivent être empruntés et remboursés au sein d'une seule transaction. Si le remboursement n'a pas lieu, la transaction entière revient à son état initial comme si elle n'avait jamais eu lieu. C'est une primitive financière véritablement nouvelle qui n'a pas d'équivalent en finance traditionnelle.

C'est aussi l'outil qui rend de nombreux exploits économiquement viables. Avant les flash loans, un attaquant qui voulait manipuler un pool de 50 millions de dollars avait besoin de 50 millions de dollars. Avec les flash loans, il a besoin de suffisamment d'ETH pour couvrir les frais de gaz et la prime de flash loan, souvent juste quelques centaines de dollars.

Le modèle se répète sur des dizaines d'exploits : emprunter une énorme quantité via flash loan, l'utiliser pour manipuler un oracle de prix ou drainer un pool vulnérable, rembourser le prêt, garder le profit. Les attaques bZx en 2020 ont été parmi les premières à démontrer ce modèle. Pancake Bunny en 2021 a perdu 45 millions de dollars à cause d'une manipulation de prix alimentée par flash loan. La liste continue de croître.

Les flash loans ne créent pas la vulnérabilité. Ils l'amplifient. Tout protocole vulnérable aux mouvements de capital importants était déjà cassé. Les flash loans ont simplement rendu possible pour quiconque d'être le capital important, gratuitement.

Ce que les Audits Font Réellement (et Ne Font Pas)

Un audit de contrat intelligent est un examen du code ligne par ligne, généralement effectué par un cabinet de sécurité spécialisé, qui recherche les modèles de vulnérabilité connus, les erreurs de logique et les écarts par rapport aux spécifications. Les bons auditeurs testent également les cas limites, simulent des scénarios d'attaque et examinant la structure des incitations économiques.

Voici ce que les audits ne sont pas : une garantie. Les protocoles audités sont piratés régulièrement. Il y a plusieurs raisons à cela.

Tout d'abord, le code qui a été audité peut ne pas être le code qui est déployé. Les protocoles apportent souvent des modifications après un audit, parfois importantes, et déploient sans réaudit. Deuxièmement, les audits examinent un contrat isolément ou dans une portée limitée. Les protocoles DeFi sont composables, ce qui signifie qu'ils interagissent avec d'autres protocoles de manière à créer des comportements émergents qu'aucun audit unique ne peut prédire. Un protocole de prêt peut être sécurisé en soi mais devenir vulnérable lorsque quelqu'un crée un nouveau pool qui interagit avec lui de manière inattendue.

Troisièmement, de nombreux exploits sont économiques plutôt que techniques. Le code fait ce qu'il a été écrit pour faire, mais la structure des incitations économiques a un défaut qu'un attaquant peut exploiter. Les auditeurs ayant une formation en ingénierie pure peuvent ne pas les détecter. C'est pourquoi certains cabinets de sécurité incluent maintenant des économistes et des concepteurs de mécanismes dans leurs équipes d'audit.

Ce que les audits détectent par rapport à ce qu'ils manquent

Les audits détectent généralementLes audits manquent souvent
Modèles de réentranceChangements de code post-audit
Débordement/sous-débordement d'entiersRisques de composabilité inter-protocoles
Erreurs de contrôle d'accèsDéfauts de conception économique ou incitative
Modèles de vulnérabilité connusNouveaux vecteurs d'attaque
Problèmes d'optimisation du gazSurfaces d'attaque de gouvernance
Conformité aux normes (ERC-20, etc.)Bugs au niveau de l'infrastructure (compilateur, EVM)

Modèles Post-Mortem

Après suffisamment de post-mortems d'exploits, des modèles émergent. La plupart des exploits ne sont pas nouveaux. Ce sont des variations sur des thèmes connus appliqués à des protocoles qui avaient des angles morts.

Les hypothèses non vérifiées sont la cause première la plus courante. Le développeur supposait que le prix de l'oracle serait exact. Il supposait que seuls les contrats prévus appelleraient une fonction particulière. Il supposait que personne n'aurait assez de capital pour déplacer un marché de 40% en un seul bloc. Chaque hypothèse est une surface d'attaque potentielle.

Les contrats actualisables et les clés d'administration sont un autre thème récurrent. De nombreux protocoles utilisent des modèles de proxy qui permettent à l'équipe de mettre à niveau la logique du contrat après le déploiement. C'est destiné à être un mécanisme de sécurité, permettant aux développeurs de corriger rapidement les bugs. Mais cela signifie également qu'une clé d'administration compromise peut être utilisée pour remplacer un contrat fonctionnant par un contrat malveillant. Le hack du Ronin Bridge en 2022, qui a perdu 625 millions de dollars, était finalement un compromis de clé d'administration plutôt qu'un défaut de logique de contrat intelligent.

Exploits DeFi Notables

ProtocoleAnnéeMontant perduType d'attaque
The DAO201660 M$Réentrance
Ronin Bridge2022625 M$Compromis de clé validateur
Wormhole2022320 M$Contournement de vérification de signature
Mango Markets2022114 M$Oracle / manipulation de prix
Curve (Vyper)202360 M$Réentrance au niveau du compilateur
Euler Finance2023197 M$Défaut de logique de liquidation

Vous Protéger

Vous ne pouvez pas auditer les contrats intelligents vous-même à moins d'être un développeur Solidity, et même dans ce cas, vous manqueriez probablement des choses. Mais vous pouvez évaluer le risque plus clairement en posant les bonnes questions.

Vérifiez si un protocole a été audité, par qui et récemment. Un audit datant de deux ans sur une base de code qui a été mise à jour cinquante fois ne fournit pas beaucoup d'assurance. Plusieurs audits de cabinets indépendants sont mieux qu'un seul. Les programmes de bug bounty sont un bon signe car ils créent une incitation continue pour que les chercheurs white-hat trouvent des problèmes avant les attaquants.

Comprenez qui détient les clés d'administration. Si un multisig avec trois signataires contrôle la capacité à mettre à niveau les contrats, c'est un risque de centralisation significatif. Si ces clés sont derrière un timelock qui donne aux utilisateurs 48 heures pour quitter avant que les modifications prennent effet, c'est une conception meilleure.

Soyez prudent avec les forks. Quand une équipe copie le code d'un autre protocole et lance une nouvelle version, elle modifie souvent des éléments sans comprendre pleinement les implications de sécurité. Certains des pires exploits ont touché des forks mal exécutés de protocoles par ailleurs sécurisés.

Diversifiez entre les protocoles. La même logique qui s'applique à ne pas garder toutes vos fiat dans une seule banque s'applique ici. Si un protocole que vous utilisez est exploité, une exposition limitée à une fraction de votre portefeuille est une perte survivable. La concentration ne l'est pas.

La sécurité DeFi s'améliore. Les outils de vérification formelle, les pratiques d'audit plus sophistiquées et les bases de code testées au combat comme Uniswap★★★★★4.6Uniswapbrand★★★★★4.6/54 AI reviewsUniswap App (app.uniswap.org) is the web interface to Uniswap"the leading decentralized exchange (DEX) on Ethereum an...via Rexiew Uniswap et Aave★★★★★4.6Aavebrand★★★★★4.6/55 AI reviewsAave serves as a decentralized, non-custodial liquidity protocol in DeFi, allowing users to supply assets for interes...via Rexiew Aave ont prouvé que les contrats bien construits peuvent sécuriser des milliards de dollars sur des années sans incident. Mais la frontière est toujours désordonnée, et le nouveau code porte des risques nouveaux. Les protocoles offrant les rendements les plus élevés sont souvent ceux les moins testés par le temps et les conditions adversariales. Ce n'est pas une coïncidence.

Vous cherchez des plateformes de crypto-monnaies, des exchanges et des applications DeFi ? Parcourez notre répertoire curé :