Qu'est-ce que l'audit de sécurité d'un smart contract ?
Accueil
Articles
Qu'est-ce que l'audit de sécurité d'un smart contract ?

Qu'est-ce que l'audit de sécurité d'un smart contract ?

Intermédiaire
Publié le Mar 1, 2022Mis à jour le Apr 27, 2023
8m

Résumé

Un audit de sĂ©curitĂ© fournit une analyse dĂ©taillĂ©e des smart contracts d'un projet. RĂ©aliser un audit est important afin d'assurer la sĂ©curitĂ© des fonds des investisseurs. En effet, toutes les transactions sur la blockchain Ă©tant dĂ©finitives, en cas de vol, les fonds ne pourront pas ĂȘtre rĂ©cupĂ©rĂ©s. Lors d'un audit, les auditeurs examinent le code du smart contract, produisent un rapport qui sera ensuite envoyĂ© Ă  l'Ă©quipe pour que celle-ci puisse l'utiliser. Un rapport final est ensuite publiĂ©, dĂ©taillant les erreurs et les moyens dĂ©jĂ  mis en place pour rĂ©soudre les problĂšmes de performance ou de sĂ©curitĂ©.


Introduction

Les audits de smart contracts sont trÚs fréquent dans l'écoystÚme de la finance décentralisée (DeFi). Si vous avez investi dans un projet blockchain, il se peut que votre décision repose en partie sur les résultats de l'audit des smart contracts.

Bien que la plupart des gens comprennent l'importance d'audits en cybersécurité, peu d'entre eux se plongent dans le code. Examinons ensemble les méthodes, les outils et les résultats généralement observés dans les audits de sécurité des smart contracts afin que vous puissez prendre des décisions avisées.


Qu'est-ce que l'audit d'un smart contract ?

L'audit de sécurité d'un smart contract examine et commente le code du smart contract d'un projet. Ces contrats sont généralement codés en Solidity et disponibles sur GitHub. Les audits de sécurité sont particuliÚrement importants dans le cadre des projets DeFi, ceux-ci gérant des transactions blockchain de plusieurs millions de dollars auprÚs d'un grand nombre d'utilisateurs. Les audits se déroulent généralement en quatre étapes :

1. Les smarts contracts sont fournis aux auditeurs pour analyse.

2. Les auditeurs présentent leurs conclusions aux responsables du projet afin que ceux-ci puissent agir en conséquence.

3. L'équipe du projet apporte les modifications nécessaires.

4. Les auditeurs publie un rapport final tenant compte des modifications de l'Ă©quipe du projet.

Pour de nombreux utilisateurs cryptos, l'audit des smart contracts est essentiel avant d'investir dans un projet DeFi. Il s'agit d'une Ă©tape obligatoire pour les projets voulant ĂȘtre pris au sĂ©rieux. Certains prestataires d'audit sont considĂ©rĂ©s comme des leaders du secteur, rendant leurs audits certes plus coĂ»teux, mais plus qualitatifs.


Pourquoi avez-vous besoin d'auditer vos smart contracts ?

De grandes quantités de valeur étant verrouillées dans les smart contracts ou transitant par ceux-ci, il est normal qu'ils soient des cibles attrayantes pour les attaques informatiques. De toutes petites erreurs dans le code peuvent engendrer le vol d'énormes sommes d'argent. Le hack de the DAO de la blockchain Ethereum a coûté prÚs de 60 millions de dollars en Ethereum et a conduit à un hard fork du réseau Ethereum.

Les transactions blockchain étant irréversibles, il est essentiel de s'assurer que le code d'un projet est parfaitement sécurisé. La nature hautement sécurisée de la blockchain rendant difficile la récupération des fonds et la résolution de problÚmes aprÚs coup, il est donc préférable d'éviter les vulnérabilités à tout prix.


Comment fonctionnent les audits de smart contracts ?

Le processus d'un audit de smart contract est assez standard parmi les fournisseurs d'audit. Bien que l'approche de chaque auditeur puisse différer légÚrement, le processus typique est le suivant :

1. Déterminer la portée de l'audit. Le smart contract et les spécifications du projet sont définis par le projet (leur objectif) et l'architecture globale. Une spécification aide l'équipe d'audit à comprendre les objectifs du projet lors de l'écriture et de l'utilisation du code.

2. Fournir un devis initial en fonction de la quantité de travail nécessaire.

3. Réaliser des tests. Leur nature exacte changera en fonction de l'équipe d'audit, de ses outils d'analyse et de ses méthodes. En général, des tests manuels et automatisés sont effectués.

4. Créer une premiÚre version du rapport avec les erreurs trouvées pour la fournir à l'équipe de projet afin qu'elle donne son avis et apporte les corrections nécessaires.

5. Publier le rapport final, en tenant compte de toute action entreprise par l'équipe pour répondre aux problÚmes soulevés.


MĂ©thodes d'audit des smart contracts

Efficience du gas 

Les audits de smart contracts ne se concentrent pas uniquement sur la sécurité de la blockchain. Ils vérifient également l'efficacité et l'optimisation du code. Certains contrats nécessitent une série compliquée de transactions pour remplir la fonction pour laquelle ils ont été conçus. Les frais de gas sur des réseaux comme Ethereum étant relativement coûteux, des contrats optimisés permettent d'économiser énormément d'argent sur les coûts de transaction.

L'optimisation est une bonne maniĂšre de juger de la compĂ©tence d'un dĂ©veloppeur. Des Ă©tapes inutiles engendrent des risques de problĂšmes plus Ă©levĂ©es et se doivent d'ĂȘtre Ă©vitĂ©es. Lorsque le prix du gas est Ă©levĂ©, les smart contracts peuvent ne pas s'exĂ©cuter, il en est de mĂȘme la limite de gas est trop faible.

Vulnérabilités du contrat

La plupart des audits consistent Ă  vĂ©rifier les contrats pour dĂ©tecter les failles de sĂ©curitĂ©. Si certains problĂšmes sont faciles Ă  dĂ©celer, de nombreux exploits font appel Ă  des techniques et des stratĂ©gies avancĂ©es pour drainer des fonds. La manipulation de marchĂ© peut par exemple ĂȘtre utilisĂ©e avec des smart contracts vulnĂ©rables pour dĂ©clencher des flash loan. Pour trouver ces problĂšmes, les auditeurs attaquent le contrat de diffĂ©rentes maniĂšres. Parmi les vulnĂ©rabilitĂ©s les plus courantes, citons :

1. ProblÚmes de réentrance : lorsqu'un smart contract fait un appel externe à un autre contrat externe avant que les effets ne soient résolus. Le contrat externe peut alors appeler récursivement le smart contract d'origine et interagir avec lui d'une maniÚre normalement impossible, le solde du contrat d'origine n'ayant pas encore été mis à jour.
2. Débordements et sous-exécutions d'entiers : lorsqu'un smart contract effectue une opération arithmétique, mais que le résultat dépasse la capacité de stockage (généralement 18 décimales). Cela mÚne souvent à des calculs incorrects.
3. Opportunités d'anticipation : un code mal structuré peut permettre d'anticiper les achats ou les ventes sur le marché. Certains peuvent profiter de ces informations pour réaliser des trades positifs.

Défauts de sécurité de la plateforme

La plupart des audits comprennent l'examen du rĂ©seau hĂ©bergeant les contrats et mĂȘme l'API utilisĂ©e pour interagir avec la DApp. Un projet peut ĂȘtre vulnĂ©rable Ă  une attaque DDoS ou voir l'interface utilisateur de son site web compromise, permettant aux pirates de rĂ©cupĂ©rer l'accĂšs au portefeuille des utilisateurs se connectant sur celui-ci.


Qu'est-ce qu'un rapport d'audit ?

Le rapport d'audit est fourni à la fin du processus d'audit. Par souci de transparence, les projets partagent généralement les résultats avec leur communauté. La plupart des rapports classents les problÚmes par gravité : critique, majeur, mineur, etc. Le rapport répertorie également le statut des failles, les projets ayant le temps de les corriger avant la publication du rapport final.

Outre un résumé, un rapport standard contient des recommandations, des exemples de codes redondants et une analyse complÚte des erreurs de codage. Un délai est accordé au projet pour agir sur les conclusions du rapport avant publication de la version finale.


OĂč puis-je faire auditer mes smart contracts ?

Un certain nombre de services d'audit de smart contracts sont devenus célÚbres pour leurs services. Deux d'entre eux sont particuliÚrement populaires et pour obtenir un audit de leur part, il faudra établir un devis initial et transmettre des informations.

CertiK

CertiK est un leader de l'industrie des audits de smart contracts. Des centaines de projets leurs font confiance. PancakeSwap, le plus gros Automated Market Maker (AMM) de la BSC est un bon exemple. Vous trouverez ci-dessous une partie de l'audit Certik de PancakeSwap.


De plus, la grande majorité des projets soutenus par Binance Labs sont audités par CertiK. CertiK publie un tableau de bord des projets audités qui vous permet de comparer chacun d'entre eux, ainsi qu'un score de sécurité. Notez qu'en plus d'Ethereum, Ceritk audite également des projets basés sur Polygon et la BSC.


ConsenSys Diligence

Dirigé par Joseph Lubin, l'un des cofondateurs d'Ethereum, ConsenSys est l'un des plus grands noms du secteur des cryptomonnaies en matiÚre de développement de blockchain. Sous ConsenSys Diligence, la société propose des audits de smart contracts Ethereum. Ils fournissent également un service automatisé qui vérifie les contrats d'Ethereum Virtual Machine (EVM) pour détecter les erreurs les plus courantes.


Combien coute un audit de smart contracts ?

Le coût exact d'un audit dépend du nombre de smart contracts à vérifier. En général, un audit coute plusieurs milliers de dollars. Un projet avec de nombreux contrats montera rapidement à plus de 10 000 $. La société d'audit qui gÚre votre audit et sa réputation impacteront également le montant à payer.


Pour conclure

Heureusement pour les investisseurs et les utilisateurs, les audits de smart contracts sont aujourd'hui une norme. Cependant, vu que chaque projet en possĂšde aujourd'hui un, ce n'est plus gage de qualitĂ©. C'est pourquoi il est extrĂȘmement important que vous lisiez vous-mĂȘme l'audit. MĂȘme si vous n'avez pas les connaissances techniques pour le lire, jetez quand-mĂȘme un Ɠil aux commentaires.

Lorsque vous rencontrerez un audit, vous pourrez au moins comprendre plus facilement son contenu. Comme toujours, veillez à ce que toute décision d'investissement tienne compte du maximum d'éléments.