Cet article concerne la détection de vulnérabilité Wazuh
Prérequis
Installez la plate-forme de sécurité wazuh Open Source et l'agent wazuh en utilisant les blogs mentionnés ci-dessous.
1:WAZUH La plate-forme de sécurité open source
2 :Installation de l'agent WAZUH
Wazuh est capable de détecter les vulnérabilités dans les applications installées dans les agents à l'aide du module Vulnerability Detector. Cet audit logiciel est réalisé grâce à l'intégration de flux de vulnérabilités indexés par Canonical, Debian, Red Hat et la base de données nationale des vulnérabilités.
Comment ça marche
Pour pouvoir détecter les vulnérabilités, les agents sont désormais capables de collecter nativement une liste des applications installées, en l'envoyant périodiquement au gestionnaire (où elle est stockée dans des bases de données sqlite locales, une par agent). En outre, le gestionnaire crée une base de données globale des vulnérabilités, à partir de référentiels CVE accessibles au public, en l'utilisant ultérieurement pour croiser ces informations avec les données d'inventaire des applications de l'agent.
La base de données globale des vulnérabilités est créée automatiquement, en extrayant actuellement les données des référentiels suivants :
- https://canonical.com :utilisé pour extraire les CVE des distributions Ubuntu Linux.
- https://www.redhat.com :utilisé pour extraire les CVE des distributions Red Hat et CentOS Linux.
- https://www.debian.org :utilisé pour extraire les CVE des distributions Debian Linux.
- https://nvd.nist.gov/ :utilisé pour extraire les CVE de la base de données nationale sur les vulnérabilités.
- https://feed.wazuh.com/ :utilisé pour extraire le flux MSU avec les CVE et les correctifs pour les produits Microsoft.
Cette base de données peut être configurée pour être mise à jour périodiquement, garantissant que la solution vérifiera les tout derniers CVE.
Une fois la base de données globale des vulnérabilités (avec les CVE) créée, le processus de détection recherche les packages vulnérables dans les bases de données d'inventaire (uniques par agent). Des alertes sont générées lorsqu'un CVE (Common Vulnerabilities and Exposures) affecte un package dont on sait qu'il est installé sur l'un des serveurs surveillés. Un package est étiqueté comme vulnérable lorsque sa version est contenue dans la plage affectée d'un CVE. Les résultats sont présentés sous forme d'alertes et également stockés dans une base de données. Vous pouvez ainsi vérifier les dernières alertes d'analyse ou interroger la base de données de logiciels vulnérables de chaque agent.
Types d'analyse
Le module Vulnerability Detector peut exécuter une analyse au démarrage (run_on_start) et à chaque certaine période de temps (intervalle). Dans tous ces cas, les packages qui ont déjà été analysés attendront jusqu'à ce que le délai ignore_time expire pour être analysés à nouveau. Cela améliore les performances et évite les alertes répétées pendant un temps paramétrable. Nous avons alors deux types de scan différents :
- Analyse complète :la première fois, Vulnerability Detector analyse chaque package installé. Après cela, tous les packages disponibles sont à nouveau analysés uniquement lorsque le délai configuré ignore_time expire.
- Analyses partielles :seuls les nouveaux packages sont analysés tant que ignore_time est toujours valide.
Peu de considérations découlent de ce comportement :
- Chaque analyse complète génère des alertes pour tous les packages, de sorte que les alertes sont répétées jusqu'à ce qu'elles soient corrigées.
- L'utilisateur ne peut pas déclencher une analyse complète manuellement, la seule option est de diminuer le paramètre ignore_time.
- Les analyses partielles génèrent des alertes pour les nouveaux packages, mais elles ne suppriment pas les alertes pour les packages supprimés.
- Des analyses partielles peuvent être déclenchées par un redémarrage du gestionnaire.
Vérifiez les paramètres du détecteur de vulnérabilité pour plus de détails sur la configuration.
L'exemple suivant peut être utile pour comprendre toutes les étapes impliquées
Matrice de compatibilité
Le tableau suivant indique les systèmes d'exploitation sur lesquels le détecteur de vulnérabilité est actuellement pris en charge et la configuration du fournisseur nécessaire pour chaque distribution.
Répartition | Versions | Fournisseur de configuration |
---|---|---|
Red Hat et CentOS | 5 | Base de données nationale des vulnérabilités Red Hat |
6 | ||
7 | ||
8 | ||
Ubuntu | fidèle / 14 | Base de données nationale canonique sur les vulnérabilités |
xénial / 16 | ||
bionique / 18 | ||
focale / 20 | ||
Debian | étirer / 9 | Base de données nationale sur les vulnérabilités Debian |
buster / 10 | ||
Windows | Toutes les versions prises en charge | Base de données nationale sur les vulnérabilitésMSU |
MacOS | Toutes les versions prises en charge | Base de données nationale sur les vulnérabilités |
Détection de vulnérabilité
L'exemple suivant montre comment configurer les composants nécessaires pour exécuter le processus de détection de vulnérabilité.
- Activer le module d'agent utilisé pour collecter les packages installés sur le système surveillé.
Cela peut être fait en ajoutant le bloc de paramètres suivant à votre fichier de configuration d'agent partagé :
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<os>yes</os>
<packages>yes</packages>
</wodle>
Si vous souhaitez analyser les vulnérabilités des agents Windows, vous devrez également ajouter les hotfixes
numériser :
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<os>yes</os>
<packages>yes</packages>
<hotfixes>yes</hotfixes>
</wodle>
Ces analyses sont activées par défaut. Pour plus d'informations sur le module d'inventaire, consultez les paramètres de Syscollector.Activez le module de gestion utilisé pour détecter les vulnérabilités.
Vous pouvez le faire en ajoutant un bloc comme celui-ci au fichier de configuration de votre gestionnaire :
<vulnerability-detector>
<enabled>yes</enabled>
<interval>5m</interval>
<run_on_start>yes</run_on_start>
<provider name="canonical">
<enabled>yes</enabled>
<os>bionic</os>
<update_interval>1h</update_interval>
</provider>
<provider name="nvd">
<enabled>yes</enabled>
<update_from_year>2010</update_from_year>
<update_interval>1h</update_interval>
</provider>
</vulnerability-detector>
N'oubliez pas de redémarrer le gestionnaire pour appliquer les modifications :
systemctl restart wazuh-manager
service wazuh-manager restart
Ici, vous pouvez voir une véritable alerte où les champs expliqués sont remplis :
** Alert 1591945867.49829472: - vulnerability-detector,gdpr_IV_35.7.d,pci_dss_11.2.1,pci_dss_11.2.3,tsc_CC7.1,tsc_CC7.2,
2020 Jun 12 07:11:07 (Debian) any->vulnerability-detector
Rule: 23505 (level 10) -> 'CVE-2019-12735 affects vim'
vulnerability.package.name: vim
vulnerability.package.version: 2:8.0.0197-4+deb9u1
vulnerability.package.architecture: amd64
vulnerability.package.condition: Package less than 2:8.0.0197-4+deb9u2
vulnerability.cvss.cvss2.vector.attack_vector: network
vulnerability.cvss.cvss2.vector.access_complexity: medium
vulnerability.cvss.cvss2.vector.authentication: none
vulnerability.cvss.cvss2.vector.confidentiality_impact: complete
vulnerability.cvss.cvss2.vector.integrity_impact: complete
vulnerability.cvss.cvss2.vector.availability: complete
vulnerability.cvss.cvss2.base_score: 9.300000
vulnerability.cvss.cvss3.vector.attack_vector: local
vulnerability.cvss.cvss3.vector.access_complexity: low
vulnerability.cvss.cvss3.vector.privileges_required: none
vulnerability.cvss.cvss3.vector.user_interaction: required
vulnerability.cvss.cvss3.vector.scope: changed
vulnerability.cvss.cvss3.vector.confidentiality_impact: high
vulnerability.cvss.cvss3.vector.integrity_impact: high
vulnerability.cvss.cvss3.vector.availability: high
vulnerability.cvss.cvss3.base_score: 8.600000
vulnerability.cve: CVE-2019-12735
vulnerability.title: CVE-2019-12735
vulnerability.rationale: getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command in a modeline, as demonstrated by execute in Vim, and assert_fails or nvim_input in Neovim.
vulnerability.severity: High
vulnerability.published: 2019-06-05
vulnerability.updated: 2019-06-13
vulnerability.cwe_reference: CWE-78
vulnerability.references: ["http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00031.html", "http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00036.html", "http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00037.html", "http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00034.html", "http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00050.html", "http://lists.opensuse.org/opensuse-security-announce/2019-08/msg00075.html", "http://www.securityfocus.com/bid/108724", "https://access.redhat.com/errata/RHSA-2019:1619", "https://access.redhat.com/errata/RHSA-2019:1774", "https://access.redhat.com/errata/RHSA-2019:1793", "https://access.redhat.com/errata/RHSA-2019:1947", "https://bugs.debian.org/930020", "https://bugs.debian.org/930024", "https://github.com/neovim/neovim/pull/10082", "https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md", "https://github.com/vim/vim/commit/53575521406739cf20bbe4e384d88e7dca11f040", "https://lists.debian.org/debian-lts-announce/2019/08/msg00003.html", "https://lists.fedoraproject.org/archives/list/[email protected]/message/2BMDSHTF754TITC6AQJPCS5IRIDMMIM7/", "https://lists.fedoraproject.org/archives/list/[email protected]/message/TRIRBC2YRGKPAWVRMZS4SZTGGCVRVZPR/", "https://seclists.org/bugtraq/2019/Jul/39", "https://seclists.org/bugtraq/2019/Jun/33", "https://security.gentoo.org/glsa/202003-04", "https://support.f5.com/csp/article/K93144355", "https://support.f5.com/csp/article/K93144355?utm_source=f5support&utm_medium=RSS", "https://usn.ubuntu.com/4016-1/", "https://usn.ubuntu.com/4016-2/", "https://www.debian.org/security/2019/dsa-4467", "https://www.debian.org/security/2019/dsa-4487", "https://nvd.nist.gov/vuln/detail/CVE-2019-12735", "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12735"]
vulnerability.assigner: [email protected]
vulnerability.cve_version: 4.0
Enfin, vous pouvez voir ici à quoi ressemblent les champs en surbrillance de l'alerte dans la WUI :