Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 915 minIntermédiaire

Vulnérabilités et conformité CIS : Vulnerability Detection et SCA

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • expliquer comment Wazuh rapproche l'inventaire logiciel des CVE ;
  • prioriser une vulnérabilité au-delà de son score CVSS ;
  • lire un contrôle SCA et calculer le score d'une politique ;
  • écrire une politique SCA simple pour un serveur Linux.

3 exercices corrigés

La détection des vulnérabilités de Wazuh compare la liste des logiciels installés sur chaque machine, relevée par l'agent, aux failles connues et publiées (les CVE), pour dire quelles machines sont vulnérables à quoi. L'évaluation de la configuration de sécurité (SCA, Security Configuration Assessment) vérifie, elle, que la configuration des machines respecte des règles de durcissement, le plus souvent celles des CIS Benchmarks. Ce chapitre explique les deux modules, la façon de prioriser ce qu'ils trouvent, et l'écriture d'une politique SCA maison.

Comment Wazuh trouve les vulnérabilités

Le mécanisme tient en trois étapes :

  1. L'inventaire. Le module syscollector de l'agent relève, toutes les heures par défaut, le système d'exploitation et sa version, les paquets et logiciels installés avec leur version, les correctifs Windows, les ports ouverts et les processus. Il l'envoie au serveur. Tu le consultes dans Security operations > IT Hygiene.
  2. La comparaison. Le module de détection des vulnérabilités du serveur compare cet inventaire à la base de failles de Wazuh, un flux de renseignement sur les menaces (CTI, publié par l'éditeur sur cti.wazuh.com) qui agrège les sources publiques : la base américaine NVD, les avis des éditeurs de systèmes (Microsoft, Debian, Ubuntu, Red Hat…). La base est mise à jour toutes les heures par défaut.
  3. Le résultat. Chaque couple « machine, faille » devient une entrée de l'inventaire des vulnérabilités, et une alerte dont le niveau dépend de la sévérité : 23503 (faible, niveau 5), 23504 (moyenne, niveau 7), 23505 (haute, niveau 10), 23506 (critique, niveau 13). Quand une mise à jour corrige la faille, la règle 23502 signale qu'elle est résolue.

Le module est actif par défaut, avec ce bloc dans l'ossec.conf du serveur :

xml
<vulnerability-detection>
  <enabled>yes</enabled>
  <index-status>yes</index-status>
  <feed-update-interval>60m</feed-update-interval>
</vulnerability-detection>

Les résultats sont dans Threat intelligence > Vulnerability Detection : un tableau de bord (vulnérabilités par sévérité, par machine, par paquet), l'inventaire détaillé et les événements de détection et de résolution.

Une vulnérabilité y est décrite par :

InformationExempleSens
Identifiant CVECVE-2021-44228L'identifiant unique de la faille dans le catalogue public
Paquet et versionlog4j 2.14.1Le logiciel installé qui est vulnérable
Sévérité et score CVSSCritique, 10.0La gravité intrinsèque de la faille, de 0 à 10
Machinesrv-gestionL'agent sur lequel le paquet est installé
CorrectionVersion 2.17.1 ou plusCe qu'il faut installer pour corriger
Score CVSS (v3)Sévérité
9,0 à 10,0Critique
7,0 à 8,9Haute
4,0 à 6,9Moyenne
0,1 à 3,9Faible

Prioriser une vulnérabilité

Le premier inventaire d'un parc donne souvent des centaines de vulnérabilités. Tout corriger en même temps est impossible ; tout traiter dans l'ordre du score CVSS est une erreur, parce que le score mesure la gravité de la faille dans l'absolu, pas le risque chez toi. On priorise avec quatre questions :

  1. La machine est-elle exposée ? Une faille critique sur srv-web, joignable depuis Internet, passe avant la même faille sur un poste du VLAN 10.
  2. La faille est-elle exploitée ? Le catalogue Known Exploited Vulnerabilities (KEV) de l'agence américaine CISA recense les failles exploitées dans des attaques réelles ; en France, le CERT-FR publie des alertes pour les failles exploitées ou sur le point de l'être, et des avis pour les autres. Une faille exploitée se traite en urgence, quel que soit son score.
  3. La machine est-elle critique ? Un contrôleur de domaine ou le serveur de la paie comptent plus qu'une machine de test.
  4. Le logiciel vulnérable est-il réellement utilisé ? Un composant installé mais inactif reste à corriger, mais moins vite ; s'il ne sert à rien, le désinstaller supprime la faille.
SituationPriorité
Faille exploitée (catalogue KEV, alerte du CERT-FR) sur une machine exposée à InternetImmédiate : corriger ou isoler dans la journée
Faille critique ou haute sur un serveur interne critiqueHaute : dans la semaine
Faille haute ou moyenne sur les postesCycle normal de mises à jour mensuelles
Faille faible, ou logiciel inutiliséÀ planifier, ou désinstaller

Corriger, puis vérifier. On applique la mise à jour (Windows Update ou le serveur de mises à jour pour Windows, voir le cours Windows Server ; apt pour Debian), puis on attend le prochain inventaire de l'agent (une heure par défaut) : la vulnérabilité passe en résolue et disparaît de l'inventaire actif. C'est la preuve que la correction a pris, à joindre au ticket.

L'évaluation de configuration (SCA)

Une machine à jour peut rester vulnérable par sa configuration : un compte invité actif, des mots de passe trop courts, une connexion SSH de root autorisée, un pare-feu local désactivé. Le module SCA de l'agent vérifie la configuration selon des politiques écrites en YAML. Wazuh en fournit une par système, presque toutes tirées des CIS Benchmarks, les guides de durcissement publiés par le Center for Internet Security :

SystèmePolitique fournie
Windows Server 2025cis_win2025
Windows Server 2022cis_win2022
Windows 11 Enterprisecis_win11_enterprise
Debian 13cis_debian13
Debian 12cis_debian12
Ubuntu 24.04 LTScis_ubuntu24-04

L'agent choisit seul la politique qui correspond à son système et l'exécute au démarrage puis toutes les 12 heures. Chaque contrôle (check) donne l'un de trois résultats :

RésultatSens
PassedLa configuration est conforme
FailedElle ne l'est pas
Not applicableLe contrôle n'a pas pu s'appliquer (une erreur pendant la vérification, un composant absent)

Le score d'une politique est la part de contrôles réussis parmi ceux qui ont pu s'appliquer : score = réussis ÷ (réussis + échoués). Les contrôles non applicables ne comptent pas. Les résultats sont dans Endpoint security > Configuration Assessment, par agent et par politique, avec pour chaque contrôle sa justification et la façon de corriger.

Un contrôle typique de la politique Windows Server, présenté ainsi dans le tableau de bord :

ChampContenu
TitreEnsure 'Minimum password length' is set to '14 or more character(s)'
Justification (rationale)Des mots de passe courts se devinent ou se cassent plus vite
Correction (remediation)Régler la valeur dans la GPO Default Domain Policy (la stratégie de mots de passe des comptes du domaine ne s'applique que là) : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Stratégies de comptes > Stratégie de mots de passe
Résultat sur srv-fichiersFailed

Wazuh alerte aussi sur les changements de résultat : un contrôle qui passe de réussi à échoué déclenche la règle 19011, de niveau 9. C'est une détection précieuse : quelqu'un vient d'affaiblir la configuration d'une machine, par erreur ou pour préparer la suite d'une attaque.

Écrire une politique SCA maison

La politique de sécurité de Sorbier impose deux règles sur les serveurs Linux : pas de connexion SSH directe de root, pas d'authentification SSH par mot de passe (clés uniquement). Une politique SCA de quelques lignes vérifie que c'est vrai partout, en permanence.

Sur le serveur Wazuh, crée /var/ossec/etc/shared/linux/sorbier_ssh.yml : les fichiers du dossier d'un groupe sont envoyés à tous les agents du groupe, comme agent.conf.

yaml
policy:
  id: "sorbier_ssh"
  file: "sorbier_ssh.yml"
  name: "Sorbier : configuration SSH des serveurs Linux"
  description: "Vérifie les règles SSH imposées par la politique de sécurité de Sorbier Logistique."

requirements:
  title: "Le serveur OpenSSH est installé"
  description: "La politique ne s'applique qu'aux machines qui ont un fichier sshd_config."
  condition: any
  rules:
    - 'f:/etc/ssh/sshd_config'

checks:
  - id: 100001
    title: "SSH : la connexion directe de root est interdite"
    description: "Le compte root ne doit pas pouvoir ouvrir de session SSH."
    rationale: "Une connexion nominative suivie de sudo laisse une trace de la personne qui administre."
    remediation: "Ajouter la ligne 'PermitRootLogin no' dans /etc/ssh/sshd_config, puis recharger le service ssh."
    condition: all
    rules:
      - 'f:/etc/ssh/sshd_config -> r:^\s*PermitRootLogin\s+no'

  - id: 100002
    title: "SSH : l'authentification par mot de passe est désactivée"
    description: "Seules les clés SSH doivent permettre de se connecter."
    rationale: "Un mot de passe se devine par force brute ; une clé privée, non."
    remediation: "Ajouter la ligne 'PasswordAuthentication no' dans /etc/ssh/sshd_config, puis recharger le service ssh."
    condition: all
    rules:
      - 'f:/etc/ssh/sshd_config -> r:^\s*PasswordAuthentication\s+no'
ÉlémentSens
requirementsCondition préalable : si elle n'est pas remplie, la politique ne s'applique pas à la machine
condition: allToutes les règles du contrôle doivent être vraies (any : au moins une ; none : aucune)
f:/cheminLe fichier existe
f:/chemin -> r:regexUne ligne du fichier correspond à l'expression ; les espaces autour de -> sont obligatoires

Active-la dans l'agent.conf du groupe linux ; le chemin relatif part du dossier d'installation de l'agent, et etc/shared est le dossier où il reçoit les fichiers du groupe :

xml
<agent_config>
  <sca>
    <policies>
      <policy>etc/shared/sorbier_ssh.yml</policy>
    </policies>
  </sca>
</agent_config>

Au prochain passage (ou au redémarrage de l'agent), la politique « Sorbier : configuration SSH des serveurs Linux » apparaît dans Configuration Assessment pour srv-web, avec son score.

Exercices

Exercice 1 sur 3 Prioriser Réussi À revoir

L'inventaire des vulnérabilités de Sorbier, un lundi matin, contient notamment les lignes suivantes. Classe-les par ordre de traitement et justifie.

MachinePaquetSévérité (CVSS)Information complémentaire
Poste PC-COMM-04Lecteur PDFHaute (7,8)Exploitation par un fichier piégé ouvert par l'utilisateur
srv-webApacheHaute (7,5)Faille inscrite au catalogue KEV de la CISA ; alerte du CERT-FR publiée vendredi
srv-adComposant WindowsCritique (9,8)Correctif publié mardi dernier ; pas d'exploitation connue
srv-gestionBibliothèque de journalisationMoyenne (5,3)Composant d'un module de rapports désactivé depuis 2024
Voir la réponseMasquer la réponse de l'exercice 1
  1. srv-web, Apache : la sévérité n'est « que » haute, mais la faille est exploitée (KEV, alerte du CERT-FR) et le serveur est exposé à Internet. On corrige le jour même ; si la mise à jour n'est pas disponible, on applique la mesure de contournement de l'alerte, ou on isole le service.
  2. srv-ad, composant Windows : critique, sur la machine la plus sensible du domaine, correctif disponible. Pas d'exploitation connue, donc pas dans l'heure, mais dans la semaine, après un test sur srv-ad2 ou en dehors des heures de travail.
  3. Poste PC-COMM-04, lecteur PDF : haute, mais exploitable seulement si l'utilisateur ouvre un fichier piégé ; elle entre dans le cycle normal de mise à jour des postes, à accélérer si une campagne d'hameçonnage est signalée.
  4. srv-gestion, bibliothèque inutilisée : moyenne, composant désactivé. On planifie sa désinstallation : un composant inutile, c'est une faille potentielle sans aucun bénéfice.

Tu avais trouvé ?

Exercice 2 sur 3 Calculer un score SCA Réussi À revoir

Sur srv-fichiers, la politique cis_win2025 donne 212 contrôles réussis, 158 échoués et 33 non applicables. Calcule le score. Après une GPO de durcissement, 41 contrôles échoués passent en réussis et 2 réussis deviennent échoués. Quel est le nouveau score, et quelle alerte les 2 contrôles dégradés ont-ils produite ?

Voir la réponseMasquer la réponse de l'exercice 2

Score initial : 212 ÷ (212 + 158) = 212 ÷ 370 ≈ 57,3 % (les 33 non applicables ne comptent pas).

Après la GPO : réussis 212 + 41 − 2 = 251 ; échoués 158 − 41 + 2 = 119 ; total toujours 370. Score : 251 ÷ 370 ≈ 67,8 %.

Les 2 contrôles passés de réussi à échoué ont chacun déclenché la règle 19011 « Status changed from passed to failed », de niveau 9. Il faut les examiner : la nouvelle GPO a peut-être écrasé un réglage plus strict qu'appliquait une autre GPO.

Tu avais trouvé ?

Exercice 3 sur 3 Un contrôle SCA de plus Réussi À revoir

Ajoute à la politique sorbier_ssh un contrôle 100003 qui vérifie que le fichier /etc/ssh/sshd_config limite les tentatives d'authentification par connexion à 3 ou moins (MaxAuthTries).

Voir la réponseMasquer la réponse de l'exercice 3
yaml
  - id: 100003
    title: "SSH : trois tentatives d'authentification au plus par connexion"
    description: "Le serveur SSH coupe la connexion après trois échecs."
    rationale: "Limiter les essais par connexion ralentit une attaque par force brute et la rend plus visible."
    remediation: "Ajouter la ligne 'MaxAuthTries 3' dans /etc/ssh/sshd_config, puis recharger le service ssh."
    condition: all
    rules:
      - 'f:/etc/ssh/sshd_config -> n:^\s*MaxAuthTries\s+(\d+) compare <= 3'

Le préfixe n: capture un nombre avec (\d+) et le compare : compare <= 3 réussit pour 1, 2 ou 3 et échoue pour MaxAuthTries 30, ce qu'une simple expression régulière (r:) ferait mal. C'est la syntaxe des politiques CIS fournies par Wazuh, qui l'appliquent à la sortie de sshd -T. Par défaut, OpenSSH autorise 6 tentatives par connexion. Dans un sujet, on peut aussi te demander l'inverse : lire un contrôle SCA échoué et dire quelle ligne de configuration corriger.

Tu avais trouvé ?

Chapitre terminé !

Fais les 3 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : MITRE ATT&CK et recherche d'alertes dans le tableau de bordRevoir le sommaire du cours