répertoire Git contenant les différents codes source utilisés pour le comparatif des outils d'analyse des contrats intelligents pour le langage Solidity d'Etherium.
- Choix des outils à étudier
- Comprendre la logique du langage Solidity
- Identifier les failles de sécurités à étudier et les classifier
- Produire des exemples de codes contenant ces failles
- Présenter le fonctionnement des différents outils (Approches, stratégies, mécanismes)
- Etudier et comparer le comportement des outils par apport aux failles sélectionnées sur plusieurs critères
- Enjeux de la détection des bogues pour la sécurité des contrats intelligents
- SmartCheck (Analyse statique) : https://github.com/smartdec/smartcheck
- Slither (Analyse statique) : https://github.com/crytic/slither
- Myhtril (Interprétation symbolique) : https://github.com/ConsenSys/mythril
- Manticore (Interprétation symbolique) : https://github.com/trailofbits/manticore
- Securify (Analyse statique) : https://securify.chainsecurity.com/
- Echidna (Fuzzer): https://github.com/crytic/echidna
- Solidity Visual Auditor: (Visualisation): https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor
- Solhint (Linter): https://protofire.github.io/solhint/
- Documentation officielle : https://solidity.readthedocs.io/en/v0.6.4/
- Tutoriel Solidity : https://www.youtube.com/watch?v=ipwxYa-F1uY
- Visibilité des fonctions et variables par défaut (SWC100 et SWC 108)
- Retrait d'éther non protégé (SWC 105)
- Réentrance (SWC 107)
- Autorisation via tx.origin (SWC 115)
- Version du compilateur flottante (SWC 103)
- Utilisation des fonctions Solidity dépréciées (SWC 111)
- Dépendance de l’horodatage -Timestamp- (SWC 116)
- Faibles sources de génération d’attributs aléatoires (SWC 120)
- Attaque d’adresse courte
- Ether perdu type
- Schémas de Ponzi