In diesem Beitrag geht es um die Erkennung von Sicherheitslücken in Wazuh
Voraussetzungen
Installieren Sie die Wazuh-Open-Source-Sicherheitsplattform und den Wazuh-Agenten mithilfe der unten aufgeführten Blogs.
1:WAZUH Die Open-Source-Sicherheitsplattform
2:Installation des WAZUH-Agenten
Wazuh ist in der Lage, Schwachstellen in den Anwendungen zu erkennen, die in Agenten installiert sind, die das Vulnerability Detector-Modul verwenden. Dieses Software-Audit wird durch die Integration von Schwachstellen-Feeds durchgeführt, die von Canonical, Debian, Red Hat und der National Vulnerability Database indiziert werden.
Wie es funktioniert
Um Schwachstellen erkennen zu können, können Agenten jetzt nativ eine Liste installierter Anwendungen sammeln und diese regelmäßig an den Manager senden (wo sie in lokalen SQLite-Datenbanken gespeichert werden, eine pro Agent). Außerdem erstellt der Manager eine globale Schwachstellendatenbank aus öffentlich verfügbaren CVE-Repositories und verwendet sie später, um diese Informationen mit den Bestandsdaten der Anwendungen des Agenten zu korrelieren.
Die globale Schwachstellendatenbank wird automatisch erstellt und bezieht derzeit Daten aus den folgenden Repositories:
- https://canonical.com:Wird verwendet, um CVEs für Ubuntu-Linux-Distributionen abzurufen.
- https://www.redhat.com:Wird verwendet, um CVEs für Red Hat- und CentOS-Linux-Distributionen abzurufen.
- https://www.debian.org:Wird verwendet, um CVEs für Debian-Linux-Distributionen abzurufen.
- https://nvd.nist.gov/:Wird verwendet, um CVEs aus der National Vulnerability Database abzurufen.
- https://feed.wazuh.com/:Wird verwendet, um den MSU-Feed mit CVEs und Patches für Microsoft-Produkte abzurufen.
Diese Datenbank kann so konfiguriert werden, dass sie regelmäßig aktualisiert wird, um sicherzustellen, dass die Lösung nach den allerneuesten CVEs sucht.
Nachdem die globale Schwachstellendatenbank (mit den CVEs) erstellt wurde, sucht der Erkennungsprozess nach anfälligen Paketen in den Bestandsdatenbanken (eindeutig pro Agent). Warnungen werden generiert, wenn ein CVE (Common Vulnerabilities and Exposures) ein Paket betrifft, von dem bekannt ist, dass es auf einem der überwachten Server installiert ist. Ein Paket wird als anfällig gekennzeichnet, wenn seine Version im betroffenen Bereich einer CVE enthalten ist. Die Ergebnisse werden als Alerts präsentiert und auch in einer Datenbank gespeichert. So können Sie die letzten Scan-Warnungen überprüfen oder die DB der anfälligen Software jedes einzelnen Agenten abfragen.
Scan-Typen
Das Vulnerability Detector-Modul kann beim Start (run_on_start) und in bestimmten Zeitabständen (Intervall) einen Scan ausführen. In jedem dieser Fälle warten die bereits gescannten Pakete, bis dieignore_time abgelaufen ist, bevor sie erneut gescannt werden. Dies verbessert die Performance und vermeidet wiederholte Alarme während einer konfigurierbaren Zeit. Wir haben dann zwei verschiedene Arten von Scans:
- Vollständiger Scan:Beim ersten Mal scannt Vulnerability Detector jedes einzelne installierte Paket. Danach werden alle verfügbaren Pakete erst dann erneut gescannt, wenn die konfigurierte ignore_time abgelaufen ist.
- Teilweise Scans:Nur neue Pakete werden gescannt, solange die Ignorierzeit noch gültig ist.
Aus diesem Verhalten ergeben sich einige Überlegungen:
- Jeder vollständige Scan generiert Warnungen für alle Pakete, sodass die Warnungen wiederholt werden, bis sie behoben sind.
- Der Benutzer kann keinen vollständigen Scan manuell auslösen, die einzige Möglichkeit besteht darin, die Einstellung "ignore_time" zu verringern.
- Die partiellen Scans generieren Warnungen für neue Pakete, aber sie löschen keine Warnungen für entfernte Pakete.
- Teilweise Scans können mit einem Manager-Neustart ausgelöst werden.
Weitere Konfigurationsdetails finden Sie in den Einstellungen des Schwachstellendetektors.
Das folgende Beispiel kann hilfreich sein, um alle beteiligten Schritte zu verstehen
Kompatibilitätsmatrix
Die folgende Tabelle zeigt die Betriebssysteme, auf denen der Schwachstellendetektor derzeit unterstützt wird, und die für jede Distribution erforderliche Anbieterkonfiguration.
Verteilung | Versionen | Konfigurationsanbieter |
---|---|---|
Red Hat und CentOS | 5 | Red HatNational Vulnerability Database |
6 | ||
7 | ||
8 | ||
Ubuntu | treu / 14 | CanonicalNational Vulnerability Database |
xenial / 16 | ||
bionisch / 18 | ||
Fokus / 20 | ||
Debian | Strecke / 9 | DebianNational Vulnerability Database |
Buster / 10 | ||
Windows | Alle unterstützten Versionen | National Vulnerability DatabaseMSU |
MacOS | Alle unterstützten Versionen | Nationale Schwachstellendatenbank |
Schwachstellenerkennung
Das folgende Beispiel zeigt, wie die erforderlichen Komponenten konfiguriert werden, um den Schwachstellenerkennungsprozess auszuführen.
- Aktivieren Sie das Agentenmodul, das zum Sammeln installierter Pakete auf dem überwachten System verwendet wird.
Dies kann durch Hinzufügen des folgenden Einstellungsblocks zu Ihrer gemeinsamen Agentenkonfigurationsdatei erfolgen:
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<os>yes</os>
<packages>yes</packages>
</wodle>
Wenn Sie Schwachstellen in Windows-Agenten scannen möchten, müssen Sie auch die hotfixes
hinzufügen Scannen:
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<os>yes</os>
<packages>yes</packages>
<hotfixes>yes</hotfixes>
</wodle>
Diese Scans sind standardmäßig aktiviert. Weitere Informationen zum Inventory-Modul finden Sie in den Syscollector-Einstellungen. Aktivieren Sie das Manager-Modul, das zum Erkennen von Schwachstellen verwendet wird.
Sie können dies tun, indem Sie Ihrer Manager-Konfigurationsdatei einen Block wie den folgenden hinzufügen:
<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>
Denken Sie daran, den Manager neu zu starten, um die Änderungen zu übernehmen:
systemctl restart wazuh-manager
service wazuh-manager restart
Hier sehen Sie eine echte Benachrichtigung, bei der die erklärten Felder ausgefüllt sind:
** 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
Abschließend sehen Sie hier, wie die hervorgehobenen Felder des Alerts im WUI aussehen: