Exemple d'audit automatisé : pscan

pscan est un paquet destiné à auditer des fichiers de code source C et C++ à la recherche de vulnérabilités sur le format des chaînes de caractères.

Ce n'est pas un outil d'audit à but général.

Utiliser pscan

Utiliser pscan revient tout simplement à l'invoquer avec le nom du ou des fichiers à vérifier. Par exemple :

pscan test.c

Le résultat sera directement affiché dans la console :


test.c:42 SECURITY: printf call should have "%s" as argument 0

Le résultat

Le résultat dans ce cas est facile à comprendre. Il a correctement identifié le fait que l'appel printf ne citait pas ses arguments correctement.

Le résultat nous montre également comment corriger le problème, en changeant le code qui lit :

printf( buff );

Pour lire :

printf( "%s", buff );

Ne pas faire ainsi permettrait à un attaquant pouvant contrôler la sortie de ls d'attaquer le programme, en créant un fichier nommé "%s", ou similaire.

Les attaques sur le format des chaînes de caractères sont traitées dans cette introduction de Security Focus.

Le guide Secure Programming for Linux and Unix HOWTO explique comment se protéger des attaques dans les fonctions variadiques habituelles, telles que :


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