Analyse des vulnérabilités des smart contracts Ethereum
Présentation
Les vulnérabilités des smart contracts ont entraîné des pertes de plusieurs milliards de dollars à travers les protocoles DeFi. Contrairement aux logiciels traditionnels, les smart contracts déployés sont immuables et gèrent des actifs financiers réels, ce qui rend cruciale l'analyse de sécurité avant le déploiement. Slither effectue une analyse statique rapide à l'aide d'une représentation intermédiaire pour détecter plus de 90 schémas de vulnérabilité en quelques secondes, tandis que Mythril utilise l'exécution symbolique et la résolution SMT pour découvrir des vulnérabilités complexes liées aux chemins d'exécution, comme la réentrance et les débordements d'entiers. Ce skill couvre l'exécution des deux outils sur des contrats Solidity, l'interprétation des résultats, le tri des découvertes par sévérité et la génération de rapports d'audit.
Quand l'utiliser
- Lors de l'investigation d'incidents de sécurité nécessitant l'analyse de vulnérabilités de smart contracts Ethereum
- Lors de la construction de règles de détection ou de requêtes de chasse aux menaces pour ce domaine
- Lorsque les analystes SOC ont besoin de procédures structurées pour ce type d'analyse
- Lors de la validation de la couverture de surveillance de sécurité pour des techniques d'attaque connexes
Prérequis
- Python 3.10+ avec pip
- Slither (
pip install slither-analyzer) et le compilateur solc - Mythril (
pip install mythril) avec solc-select pour la gestion des versions du compilateur - Code source Solidity ou bytecode de contrat compilé
- Framework de développement Foundry ou Hardhat (optionnel, pour l'analyse au niveau du projet)
Étapes
Étape 1 : Lancer l'analyse statique Slither
Exécutez Slither sur la base de code du contrat pour identifier les schémas de vulnérabilité, les opportunités d'optimisation et les problèmes de qualité du code à l'aide de ses 90+ détecteurs intégrés.
Étape 2 : Lancer l'exécution symbolique Mythril
Lancez l'analyse approfondie de Mythril pour explorer les chemins d'exécution et découvrir les vulnérabilités de réentrance, les appels externes non contrôlés et les failles arithmétiques nécessitant une analyse sensible au chemin.
Étape 3 : Trier et corréler les résultats
Combinez les résultats des deux outils, dédupliquez les découvertes, évaluez la sévérité en fonction de l'exploitabilité et de l'impact financier, et filtrez les faux positifs.
Étape 4 : Générer le rapport d'audit
Produisez un rapport d'audit structuré comprenant les descriptions des vulnérabilités, les emplacements de code affectés, les scénarios d'exploitation et les recommandations de correction.
Résultat attendu
Rapport JSON listant les vulnérabilités avec leurs identifiants SWC (Smart Contract Weakness Classification), leur sévérité, les fonctions affectées et les correctifs suggérés.