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.