Aller au contenu

Wazuh - Vulnérabilités des logiciels (CVE)

Durant leur cycle de vie, on découvre des vulnérabilités sur la majorité des logiciels.

Pour les combler, les OS et auteurs des logiciels maintiennent des CVE.

Les CVE, acronyme de "Common Vulnerabilities and Exposures", sont une liste de références standardisées pour les vulnérabilités de sécurité publiquement connues dans les logiciels ou le matériel informatique. Chaque CVE est identifié par un numéro unique, ce qui facilite l'échange d'informations sur une vulnérabilité spécifique entre divers systèmes de sécurité et bases de données.

Voici quelques points clés sur les CVE :

  1. Identification unique : à chaque CVE est attribué un identifiant unique (par exemple, CVE-2023-1234), permettant une référence facile et univoque.
  2. Description standardisée : les CVE fournissent une description standard des vulnérabilités de sécurité, ce qui aide à comprendre les problèmes spécifiques liés à chaque vulnérabilité.
  3. Base de données publique : les informations sur les CVE sont disponibles publiquement, ce qui permet aux administrateurs de systèmes, aux développeurs de logiciels et au grand public de s'informer sur les vulnérabilités existantes.
  4. Utilisation dans la sécurité informatique : les CVE sont largement utilisés dans l'industrie de la sécurité informatique pour les systèmes de détection d'intrusions, les outils d'évaluation de la vulnérabilité, et d'autres technologies de sécurité.
  5. Mise à jour et maintenance : la liste des CVE est régulièrement mise à jour par le MITRE Corporation, en collaboration avec la communauté mondiale de la cybersécurité.

Les CVE jouent un rôle crucial dans la gestion de la sécurité informatique, car ils permettent une identification et une communication cohérentes des vulnérabilités au sein de la communauté technologique.

Exemple d'une vulnérabilité qui a été trouvée et déclaré en CVE : https://nvd.nist.gov/vuln/detail/CVE-2016-1585.

Le rôle de Wazuh

Parmi ses fonctionnalités et toujours dans une stratégie de sécurité des système, Wazuh alerte sur les CVE liés aux paquets installés sur l'OS.

L'objectif est :

  • Alerter l'équipe sysadmin concernant une faille de sécurité qui a été trouvée sur un paquet,
  • Que l'équipe sysadmin applique les correctifs.

Wazuh réalise et maintient un inventaire des paquets installés sur les systèmes. Une fois que le module Vulnerability Detector a été cherché les dernières CVE publiées :

  • Il construit sa propre base,
  • Il compare les CVEs et les versions des paquets installés sur les systèmes via les inventaires respectifs,
  • Si la version d'un paquet correspond à une version sur laquelle il y a une CVE, il le remonte en alerte.

Activation et alertes

Pour activer ce module, il suffit de l'activer sur le wazuh-server :

sed -i '/<vulnerability-detector>/,/<\/vulnerability-detector>/s/<enabled>no<\/enabled>/<enabled>yes<\/enabled>/' /var/ossec/etc/ossec.conf

systemctl restart wazuh-manager

Attention : une fois le module activé, il faut compter presque 1h d'attente avant de voir les vulnérabilités remonter, le temps que Wazuh récupère les informations auprès des différentes bases.

2024/01/15 10:03:44 wazuh-modulesd:vulnerability-detector: INFO: (5400): Starting 'National Vulnerability Database' database update.
2024/01/15 10:03:51 rootcheck: INFO: Ending rootcheck scan.
root@wazuh:/# tail  -f/var/ossec/logs/ossec.log
tail: invalid option -- '/'
Try 'tail --help' for more information.
root@wazuh:/# tail  -f /var/ossec/logs/ossec.log
2024/01/15 10:01:59 wazuh-modulesd:download: INFO: Module started.
2024/01/15 10:02:00 wazuh-modulesd:task-manager: INFO: (8200): Module Task Manager started.
2024/01/15 10:02:00 wazuh-modulesd:syscollector: INFO: Module started.
2024/01/15 10:02:00 wazuh-modulesd:syscollector: INFO: Starting evaluation.
2024/01/15 10:02:01 wazuh-modulesd:syscollector: INFO: Evaluation finished.
2024/01/15 10:03:44 wazuh-modulesd:vulnerability-detector: INFO: (5400): Starting 'National Vulnerability Database' database update.
2024/01/15 10:48:57 wazuh-modulesd:vulnerability-detector: INFO: (5430): The update of the 'National Vulnerability Database' feed finished successfully.
2024/01/15 10:48:57 wazuh-modulesd:vulnerability-detector: INFO: (5400): Starting 'Microsoft Security Update' database update.
2024/01/15 10:49:51 wazuh-modulesd:vulnerability-detector: INFO: (5430): The update of the 'Microsoft Security Update' feed finished successfully.
2024/01/15 10:49:51 wazuh-modulesd:vulnerability-detector: INFO: (5431): Starting vulnerability scan.
2024/01/15 10:50:08 wazuh-modulesd:vulnerability-detector: INFO: (5450): Analyzing agent '002' vulnerabilities.
2024/01/15 10:51:21 wazuh-modulesd:vulnerability-detector: INFO: (5471): Finished vulnerability assessment for agent '002'

Une fois que la base de wazuh est à jour, on retrouve les alertes : wazuh_cve Puis on peut passer en revue le détail d'une alerte, par exemple sur le paquet apparmor : type:video

Pour cet exemple, la CVE-2016-1585 est remontée, elle concerne apparmor en version 3.0.4-2ubuntu2.3.

Hors, ici nous sommes sur une Ubuntu 22.04.3 LTS et Ubuntu ne propose pas de mises à jour vers une version supérieure d'apparmor.

Pourquoi ?

Sur le rapport de bug officiel, on peut voir sur le commentaire du 30/06/2023 :

wazuh_cve

Ou tout simplement, Ubuntu a apporté le correctif dans la version 3.0.4, sans apporter de modification sur la version du paquet apparmor.

Nous avons ici un faux positif, puisque la version n'est pas montée mais que le correctif a bien été appliqué sur la version 3.0.4. Malheureusement, Wazuh ne peut pas corriger ce problème, Ubuntu n'a pas une politique de montée en version permettant de solutionner ce problème.

Pour contourner le problème, il faut masquer l'alerte CVE-2016-1585, en surchargeant les règles, nous avons besoin de connaître le numéro de CVE et l'ID de la règle :

  • 23506 correspond à l'ID de la règle présente ici : /var/ossec/ruleset/rules/0520-vulnerability-detector_rules.xml
  • la CVE est CVE-2016-1585

Maintenant on peut surcharger local_rules.xml sur le wazuh server :

cat << 'EOF' >> /var/ossec/etc/rules/local_rules.xml
<group name="vulnerability-detector">
  <rule id="100011" level="0">
    <if_sid>23506</if_sid>
    <match>CVE-2016-1585</match>
    <description>Ignore CVE-2016-1585 alert for apparmor</description>
  </rule>
</group>
EOF

La "rule id" (100011) doit être unique.

Ou via le dashboard : type:video

Puis on redémarre :

service wazuh-server restart

L'alerte sera cachée sur la prochaine vérification des CVE, pour forçer, vous pouvez désinstaller le wazuh-agent et le réinstaller avec autre un nom comme ceci (en début de fichier /var/ossec/etc/ossec.conf)

<ossec_config>
  <client>
<enrollment>
   <agent_name>ubuntu5</agent_name>
  </enrollment>
    <server>

On peut le vérifier sur le dashboard (la règle 23506): type:video

Aller plus loin

  • La fonctionnalité est aussi disponible pour Windows,
  • Pour surcharger les règles, il est recommandé d'automatiser cette partie-là,
  • Il faut créer une stratégie sur le traitement des CVE pour apporter les correctifs.