Les scanners de vulnérabilités automatisés : principes et usages
Si vous deviez confronter à la main chaque service de chaque machine à des dizaines de milliers de fiches de vulnérabilités, vous n'auriez jamais fini. Les scanners automatisés existent pour cela. Mais comme tout outil puissant, ils ont un mode d'emploi, des limites et des risques. Cette leçon vous les présente dans la perspective d'un test autorisé.
Dans la leçon précédente, vous avez appris à interpréter les fiches de vulnérabilités. Un scanner de vulnérabilités automatise ce rapprochement : il interroge les machines, identifie les services, puis compare ce qu'il a trouvé à une base de règles et de signatures. Le résultat est une liste de constats classés par gravité.
Cadre légal. Un scanner de vulnérabilités envoie un grand nombre de requêtes, dont certaines peuvent perturber un service. Lancé contre un système sans autorisation écrite, il constitue une atteinte potentielle aux systèmes de traitement automatisé de données (articles 323-1 à 323-3-1 du Code pénal). Dans ce cours, vous ne l'exécutez que sur votre labo isolé ou sur les machines d'une plateforme d'entraînement légale.
Comment fonctionne un scanner ?
La plupart des scanners suivent la même logique en quatre étapes :
- Découverte : repérer les machines actives et leurs ports ouverts (comme vous l'avez fait avec Nmap) ;
- Identification : reconnaître les services, leurs versions, parfois le système d'exploitation ;
- Vérification : appliquer des tests dont chacun correspond à une faiblesse connue : comparaison de version, envoi d'une requête de contrôle, vérification d'une configuration ;
- Rapport : regrouper les constats, les noter (souvent avec le CVSS) et proposer des correctifs.
Les familles de scanners sont variées : scanners d'infrastructure (réseau, systèmes), scanners d'applications web, vérificateurs de conformité et de configuration, scanners de dépendances logicielles et d'images de conteneurs. Certains sont open source, d'autres commerciaux ; le choix dépend du besoin, du budget et du périmètre, pas d'une « meilleure marque » absolue.
Scan authentifié ou non authentifié
C'est la distinction qui change le plus la qualité des résultats :
- Un scan non authentifié voit la machine « de l'extérieur », comme un inconnu. Il repère les services exposés et certaines failles visibles à distance, mais il ne voit pas ce qui se passe à l'intérieur.
- Un scan authentifié utilise un compte (fourni par le client) pour inspecter la machine de l'intérieur : paquets installés, correctifs appliqués, configuration. Il produit des résultats bien plus précis et moins de faux positifs, mais suppose une relation de confiance.
Cela rejoint les types de test vus au premier chapitre : un scan authentifié est plutôt une démarche de boîte grise ou blanche.
Scanners généralistes : un exemple avec Nmap
Nmap, que vous connaissez déjà, propose un moteur de scripts organisés en catégories (découverte, authentification, vulnérabilités, etc.). Certains scripts vérifient des configurations ou des faiblesses courantes. Dans votre labo, on peut lancer par exemple :
nmap -sV --script vuln -oN 02-vulnerabilites/scan-vuln.txt 192.168.56.20
Cette commande combine la détection de version et les scripts de la catégorie « vuln », avec sauvegarde du résultat. Soyez attentif : certains scripts sont dits intrusifs (ils testent réellement le comportement du service) et peuvent le faire planter. C'est pourquoi la règle d'engagement doit préciser s'ils sont autorisés. Dans votre labo, vous disposez d'instantanés pour vous en remettre.
Des scanners dédiés (par exemple des solutions open source de gestion de vulnérabilités, ou des scanners web) vont beaucoup plus loin, avec des milliers de contrôles et une interface de rapport. Leur prise en main est un excellent exercice de laboratoire.
Les points forts des scanners
- Couverture et rapidité : ils examinent en quelques heures ce qu'un humain mettrait des semaines à vérifier ;
- Reproductibilité : le même scan peut être relancé à l'identique, pour mesurer l'effet des corrections ;
- Mise à jour continue : leurs bases de règles suivent la publication des failles ;
- Hygiène : pour un défenseur, un scan régulier est un indicateur précieux de l'état du parc.
Les limites et les risques
- Faux positifs : le scanner signale une faille qui n'existe pas (version annoncée, mais correctif appliqué). Chaque constat doit être vérifié avant d'être inscrit dans un rapport.
- Faux négatifs : le scanner ne détecte pas une faille qui existe (faille récente, spécifique à l'application, ou liée à la logique métier). Un rapport « zéro constat » ne veut jamais dire « zéro faille ».
- Impact sur les services : un scan agressif peut ralentir, saturer ou faire tomber une application fragile.
- Bruit : des centaines de constats « d'information » noient les trois qui comptent vraiment. Le tri est un travail humain.
- Absence de contexte : le scanner ne sait pas si un serveur contient des données sensibles ou s'il est isolé du reste du réseau.
- Fausse sécurité : un rapport de scan n'est pas un test d'intrusion ; il ne démontre ni exploitation, ni enchaînement de failles.
Bien configurer un scan
Avant de lancer un scan, un professionnel vérifie :
- que la cible est dans le périmètre signé et que la plage horaire est autorisée ;
- le profil de scan (léger, standard, agressif) et ses conséquences possibles ;
- la vitesse et le nombre de connexions simultanées ;
- si les contrôles intrusifs ou de déni de service sont désactivés (ils le sont presque toujours en mission réelle) ;
- qu'un contact d'urgence du client est joignable pendant le scan ;
- qu'une sauvegarde ou un instantané existe pour les machines de labo.
Exploiter les résultats avec méthode
Un bon réflexe consiste à produire, à partir du rapport brut du scanner, un tableau de suivi dans votre carnet :
| Constat | Machine | Gravité annoncée | Vérifié ? | Commentaire |
|---|---|---|---|---|
| Version de service ancienne | serveur-web-lab | Élevée | À confirmer | Vérifier si des correctifs sont rapportés |
| Base de données accessible depuis le réseau | serveur-web-lab | Moyenne | Oui (scan de ports) | À corriger par filtrage |
| Information d'ordre général | serveur-fichiers-lab | Info | Non | Sans impact |
Cette étape de vérification et de tri est ce qui distingue un testeur d'un simple opérateur d'outil.
À vous de jouer : premier scan raisonné
Sur une machine cible de votre labo, lancez un scan avec détection de version et scripts de vulnérabilités (ou un scanner dédié si vous en avez installé un). Conservez la sortie brute dans le dossier de la mission. Puis, sans lancer d'autre outil, remplissez un tableau de suivi pour les cinq constats les plus intéressants. Pour chacun, répondez : est-ce un faux positif possible ? Que faudrait-il pour le confirmer ?
Voir une solution
Pour un constat fondé uniquement sur une version annoncée, le faux positif est possible : pour le confirmer, il faudrait vérifier le paquet installé et ses notes de correctifs, ou observer un comportement caractéristique avec un test non destructif dans le labo. Pour un constat de configuration (port de base de données ouvert), le constat est confirmé par le scan de ports lui-même. Pour un constat « d'information », indiquez qu'il ne nécessite pas d'action immédiate mais peut figurer en annexe.
À retenir
- Un scanner de vulnérabilités découvre, identifie, vérifie puis rapporte ; il existe des scanners d'infrastructure, web, de configuration et de dépendances.
- Un scan authentifié est plus précis qu'un scan non authentifié, mais suppose un compte fourni par le client.
- Faux positifs, faux négatifs, bruit et impact sur les services imposent de vérifier chaque constat.
- Un rapport de scan n'est pas un test d'intrusion : il ne démontre pas l'exploitation.
- Avant tout scan : périmètre, horaires, profil, vitesse, contrôles intrusifs et contact d'urgence.
Les scanners ne remplacent pas le jugement. La leçon suivante compare analyse automatisée et analyse manuelle, et explique quand privilégier l'une ou l'autre.