Exemple d'audit automatisé : flawfinder

flawfinder est un outil généraliste pour trouver et rapporter des défauts potentiels dans du code source C et C++.

Utiliser flawfinder

Utiliser flawfinder est simple, cela se résume à l'invoquer avec le nom des répertoires ou des fichiers à examiner. Pour un répertoire donné, l'outil traitera tous les fichiers source qu'il trouvera dans le répertoire.

En plus de la liste des fichiers ou répertoires, il existe des options de ligne de commande permettant de contrôler le comportement de l'outil.

Chacune des options est expliquée dans la page du manuel, mais les options suivantes sont particulièrement utiles et seront utilisées dans notre exemple :

Pour obtenir dans un fichier HTML les résultats du programme, restreints aux fonctions à haut risque, il faudrait utiliser quelque chose comme cela :

flawfinder --html --context --minlevel=4 test.c > output.html

Les résultats

Voici les résultats du traitement par flawfinder de notre code d'exemple :


Examining test.c

Number of hits = 4
Number of Lines Analyzed = 48 in 0.53 seconds (1392 lines/second)


Comprendre les résultats

De la même façon que pour RATS, ce rapport est très simple à lire. Il montre clairement quelles fonctions ont été détectées comme potentiellement dangereuses, ainsi que la description du problème.

L'inclusion des informations de contexte est également très utile puisqu'elle attire immédiatement l'attention sur les zones concernées, et exclue les autres rapports comme étant invalides.

L'analyse de notre code d'exemple est assez intelligente, dans le sens où elle n'avertit pas de toute utilisation de la fonction strcpy qui peut s'avérer ennuyeuse - mais seulement celles repérées comme potentiellement dangereuses.

De cette façon, flawfinder a réussi à mettre en évidence tous les défauts de notre code, sans faux positifs.


Retour à la page du projet d'audit | Retour à la page des exemples d'audit