Outils d’analyse statique de code

En bas, vous trouvez une liste d’outils d’analyse statique de code source. Ces outils sont recommandés aux développeurs du CERN. Ils permettent aux développeurs de revoir leur code rapidement, afin de chercher les bugs communs potentiels et les vulnérabilités (liées à la sécurité ou non), augmentant ainsi la fiabilité et la sécurité de leurs programmes.

Ceci est un résumé d’une évaluation d’outils d’analyse statique de code, effectuée par l’équipe de sécurité informatique du CERN. Ce n’est en aucun cas une liste exhaustive de tous les outils existants, et ce n’est pas non plus une liste des outils les plus complets. Les outils présentés ont été sélectionnés pour leur facilité d’utilisation, leur simplicité et leur efficacité par rapport au temps investi. Un autre list pourrait étre trouvé ici.

Les outils et la documentation sont pour Linux, mais la plupart des outils sont également disponibles sur Windows (des liens sont donnés). Vous êtes intéressés par le service Gitlab-CI (Intégration continue)? Sachez que tous les analyseurs de code statiques sont disponibles grâce à une image Docker dédiée. Voir ces examples et ce rapport pour plus de détails."

(Les descriptions des différents outils sont seulement disponibles en anglais.)

C / C++

CppLint Gratuit script autonome CppLint est un outil qui vérifie la compatibilité de code écrit en C++ avec le guide d'écriture de code de Google. Cet outil est capable d'identifier des constructions dangereuses et de signaler les mauvaises pratiques en général, les erreurs de syntaxes et les inconsistances de style.
Flawfinder Gratuit script autonome Flawfinder vérifie les appels à des fonctions "library" potentiellement vulnérables.
RATS Gratuit script autonome RATS cible différents langages et a des règles spécifiques de détection pour chacun d’eux.
Pour C/C++, il vérifiera les appels à des fonctions "library" vulnérables et les mauvaises pratiques qui peuvent engendrer un débordement de tampon.
Coverity Prevent Commercial/
disponible au CERN
... Coverity est une entreprise de sécurité avec une expérience considérable dans le domaine de l’analyse statique.
Ils ont conduit beaucoup de « scans open source » et ont des clients de renom.
VCG Gratuit script autonome Visual Code Grepper est un outil automatique d'inspection de code qui essaye d’accélérer drastiquement l'audit de code informatique en identifiant tout code mauvais ou dangereux.

Java

FindBugs Gratuit application GUI autonome
ou plug-in Eclipse
FindBugs est un outil hautement configurable, qui permet le chargement de sets de règles personnalisées.
Le set de règles par défaut est plutôt à large spectre et comprend de nombreux contrôles de sécurité connexes.
CodePro Analytix Commercial plug-in Eclipse
ou intégration Maven/Ant
La configuration par défaut de CodePro Analytix inclut des règles plutôt similaires à celles de FindBugs,
mais elle a l’avantage d’avoir quelques règles additionnelles et est un peu plus simple à utiliser et à configurer.
PMD Gratuit script autonome PMD identifie les défauts de programmation ordinaire comme les variables non utilisées, les blocs de gestion d'exception vides, les créations d’objets inutiles, etc
VCG Gratuit script autonome Visual Code Grepper est un outil automatique d'inspection de code qui essaye d’accélérer drastiquement l'audit de code informatique en identifiant tout code mauvais ou dangereux.

Perl

Perl::Critic Gratuit module Perl La configuration par défaut de Perl::Critic peut sembler un peu sévère à la plupart des programmeurs,
mais nous fournissons une configuration moins contraignante, plus ciblée sur la sécurité.
RATS Gratuit script autonome RATS cible différents langages et a des règles spécifiques de détection pour chacun d’eux.
Pour Perl, il se concentre sur les appels aux fonctions à risque « built-in/library ».
LC's lint Gratuit script disponible sur AFS Contrôle de conformité: Guide Perl de Lionel Cons.

Python

Comme règle très basique, appliquez les derniers patches de sécurité à votre interpréteur python. Notez que sur SLC, les patches de sécurité sont appliqués et rétroportés aux versions précédentes de Python.

pychecker Gratuit script autonome Cet analyseur statique se concentre sur la recherche de bugs.
Il possède seulement quelques vérifications qui sont liées à la sécurité.
Pylint Gratuit script autonome Pylint est un outil qui peut analyser du code Python, en essayant d'imposer des règles de codage et en essayant de trouver tout mauvais code.
RATS Gratuit script autonome RATS cible différents langages et a des règles spécifiques de détection pour chacun d’eux.
Pour Python, il trouvera des appels au système dangereux.

PHP

Pixy Gratuit script autonome Alors qu’il peut sembler un peu dépassé (sa page d’accueil annonce le support PHP4), Pixy effectue un travail remarquable lors de la recherche de vulnérabilités de Cross-Site Scripting et d’injection SQL/Code.
RATS Gratuit script autonome RATS cible différents langages et a des règles spécifiques de détection pour chacun d’eux.
Dans le cas de PHP, il cible les appels à certaines fonctions « library ».
RIPS Gratuit autonome web application RIPS est un outils écrit en PHP qui utilise des analyses de code statiques pour trouver des vulnérabilités dans les applications PHP. En segmentant et décomposant tous les fichiers du code source, RIPS est capable de transformer le code source PHP en un modèle de programmation et de détecter les points clefs (fonctions potentiellement vulnérables) qui pourraient être corrompues par des données utilisateurs (venant d'un utilisateur malicieux) lors de l’exécution du programme.
VCG Gratuit script autonome Visual Code Grepper est un outil automatique d'inspection de code qui essaye d’accélérer drastiquement l'audit de code informatique en identifiant tout code mauvais ou dangereux.