23. Oktober 2018 Engineering

Bessere Security Analytics mit Elastic Stack, Wazuh und IDS

Von Mike PaquetteSantiago Bassett

Der Elastic Stack enthält Security-Analytics-Funktionen, die regelmäßig zur Erkennung, Analyse und Abwehr von Bedrohungen und Vorfällen eingesetzt werden. Dank der Geschwindigkeit, mit der Elasticsearch sicherheitsrelevante Informationen indexiert und durchsucht, können Sicherheitsanalysten effizienter arbeiten, und Kibana-Dashboards liefern Transparenz und ermöglichen eine interaktive Jagd nach Bedrohungen. Mit der Machine Learning Engine können Sie außerdem die Analyse komplexer Datensätze automatisieren, um Eindringlinge zu entdecken, die andernfalls unbemerkt geblieben wären.

Beliebte Intrusion Detection Systems (IDS) wie etwa Wazuh oder Suricata verwenden einen signaturbasierten Ansatz für die Bedrohungserkennung. Sie vergleichen also Muster in Dateien, in Protokollen und im Netzwerkverkehr mit einer Datenbank von Mustern, die bekannterweise im Zusammenhang mit bösartigen Aktivitäten stehen, und geben bei einer Übereinstimmung eine Warnung aus. Diese Lösungen liefern hilfreiche Regelsätze zum Analysieren und Korrelieren von Daten, generieren jedoch in einer Produktionsumgebung normalerweise Tausende oder Millionen von Warnungen pro Tag.

Ein möglichst grobes Netz sorgt dafür, dass alle potenziellen Sicherheitsereignisse gefunden werden, führt jedoch auch zu mehr Arbeit, da jeden Tag Tausende (oder Millionen) von Warnungen gesichtet werden müssen. Mit den Elastic Machine Learning-Funktionen können Sie ungewöhnliche Verhaltensweisen automatisch erkennen, um das Hintergrundrauschen zu reduzieren. Hier haben wir einen Anwendungsfall, bei dem anomalie- und signaturbasierte Technologien einander klar ergänzen, um Bedrohungen besser erkennen und effizienter untersuchen zu können.

Wazuh wird oft zusammen mit dem Elastic Stack bereitgestellt und ist ein Open Source Host-Based Intrusion Detection System (HIDS). Mit dieser Lösung erhalten Sie Log-Analysen, Überwachung der Dateiintegrität, Erkennung von Rootkits und Sicherheitslücken sowie Konfigurationsbewertungen und können besser auf Vorfälle reagieren. Die Wazuh-Lösungsarchitektur verwendet plattformübergreifende Lightweight-Agents, die auf überwachten Systemen ausgeführt werden und Daten zur Analyse an einen zentralisierten Server übermitteln. Außerdem erhalten Sie ein vollständiges Kibana-Plugin für die Bereiche Konfigurationsverwaltung, Statusüberwachung und Visualisierung von Abfrage- und Warnungsdaten.

Suricata hingegen ist ein kostenloses Open-Source-Modul zur Erkennung von Netzwerkbedrohungen und deckt die Bereiche Echtzeit-Einbruchserkennung im Netzwerk (NIDS), Inline-Einbruchsverhinderung (NIPS), Überwachung der Netzwerksicherheit (NSM) und Offline-PCAP-Verarbeitung ab. Suricata analysiert den Netzwerkverkehr mit einer Regel- und Signatursprache, erkennt bekannte Bedrohungen, Richtlinienverletzungen und bösartige Verhaltensweisen und unterstützt Skripts zur Erkennung komplexer Bedrohungen.

In diesem Blogpost erfahren Sie, wie Sie mit einer Integration von Wazuh und Suricata in Kombination mit Elastic Machine Learning-Jobs Eindringlinge entdecken und Ihre Untersuchungen priorisieren können.

Integration von Wazuh, Suricata und dem Elastic Stack

Für diesen Blogpost haben wir eine Laborumgebung eingerichtet und Wazuh-Agents auf mehreren mit dem Internet verbundenen Servern bereitgestellt, um System- und Anwendungsprotokolle, Dateiintegrität und Systemaufrufe zu überwachen.

Außerdem verwenden wir einen Suricata-Sensor zur Überwachung des Netzwerkverkehrs. Dieser Sensor wird oft über einen Netzwerkzugriff, einen Spiegelungs-Port oder einen SPAN-Port (Switched Port Analyzer) installiert, kann jedoch auch direkt auf Ihren Servern bereitgestellt werden.

Um diese beiden Tools optimal zu nutzen, verwenden wir Wazuh-Regeln, um die Suricata-Warnungen zu analysieren, das Warnungsformat zu vereinheitlichen, Daten zu korrelieren (z. B. mit Quellen für Bedrohungsdaten) und automatische Reaktionen auszulösen.

Für diese Integration haben wir einen Wazuh-Agent für das Auslesen der JSON-Ausgabe von Suricata konfiguriert. Dieser Agent sammelt die NIDS-Warnungen von Suricata und leitet sie an den Wazuh-Server weiter, wo sie mit den Wazuh-Protokollanalyseregeln verarbeitet werden, um neue und angereicherte Sicherheitsereignisse zu generieren.

Im Anschluss daran werden sowohl NIDS- als auch HIDS-Warnungen per Filebeat (liest Wazuh-Warnungen) und Logstash (auch für Geo-Anreicherung verwendet) an Elasticsearch übermittelt und dort mit Machine Learning-Jobs verarbeitet, um Anomalien und ungewöhnliche Verhaltensweise zu erkennen.

Hier sehen Sie ein Beispiel für eine Bereitstellung mit host- und netzwerkbasierten IDS-Technologien und die Integration mit Elastic Stack:

Security Analytics mit Elastic Stack und Wazuh

Erkennen von Angreifern mit Machine Learning-Jobs

In unserer Laborumgebung haben wir sämtliche Regeln aktiviert und herausgefunden, dass unser Wazuh-Agent lediglich für einen der mit dem Internet verbundenen Server zwischen 4.000 und 10.000 IDS-Warnungen pro Tag ausgibt. Dabei handelt es sich hauptsächlich um Web-Angriffe, Authentifizierungsfehler, Konfigurationsprobleme (erkannt mit Härtungsprüfungen), Änderungen an der Dateiintegrität oder anfällige Software.

Um Sicherheitsanalysten das Leben zu erleichtern, werden Wazuh IDS-Warnungen mit Metadaten wie etwa Schweregrad oder Gruppe angereichert, um sie nach Priorität oder Typ filtern zu können. Außerdem erhalten Sie mit dem Wazuh Kibana-Plugin vorkonfigurierte Dashboards mit hilfreichen Informationen zu Agentenstatus, Konfiguration und Warnungen. Beachten Sie den folgenden Screenshot:

Die von Wazuh gelieferten Informationen sind zwar praktisch, helfen uns aber immer noch nicht dabei, ungewöhnliche Verhaltensweisen zu erkennen. Dazu benötigen wir einen Elastic Machine Learning-Job.

Mit Elastic Machine Learning können wir mehrere Arten von Jobs erstellen. Ein Job ist ein grundlegendes Element bei der Machine Learning-Analyse. In unserem Fall erstellen wir eine sogenannte Populationsanalyse, bei der wir die Machine Learning-Engine anweisen, ein Baseline-Modell für das typische Verhalten von IP-Adressen über einen Zeitraum zu erstellen. Anschließend können wir diejenigen Adressen identifizieren, die sich im Vergleich zum Rest der Population abnormal verhalten.

Genauer gesagt möchten wir diejenigen IP-Adressen finden, für die im Vergleich zu allen anderen IP-Adressen eine ungewöhnlich hohe Anzahl an Warnungstypen ausgelöst wird. Dazu reichen einfache Aggregationstabellen nicht aus, da die Anomalien zu einem Zeitpunkt aufgetreten sind, den unser Sicherheitsanalyst nicht kennt, und wir Warnungsdaten für mehr als 60 Tage verarbeiten (wir haben Angriffe erkannt, die nicht länger als zwei Minuten gedauert haben).

Bei unserer Populationsanalyse finden wir verschiedene abnormale Verhaltensweisen (in Form einer Liste von IP-Quelladressen), die wir anschließend untersuchen. Mit dem „Anomaly Explorer“ können wir herausfinden, wann diese potenziellen bösartigen Akteure unsere Umgebung angegriffen haben.

Untersuchung eines Einbruchsversuchs

Als Beispiel für eine Sicherheitsanalyse behandeln wir die Untersuchung einer der IP-Adressen, die unser Machine Learning-Job identifiziert hat. Diese IP-Adresse hat in weniger als einer Minute mehrere NIDS- und HIDS-Warnungen ausgelöst, woraufhin Wazuh die IP-Adresse in der lokalen Firewall auf unserem Webserver automatisch blockiert hat.

Wie Sie im obigen Screenshot sehen, hat Suricata NIDS bösartigen Datenverkehr von der angegebenen IP-Quelladresse erkannt. Die Regeln für den eingehenden Datenverkehr generieren die folgenden Warnungen:

  • ET DROP Dshield Block Listed Source group 1
  • ET CINS Active Threat Intelligence Poor Reputation IP group 77
  • SURICATA HTTP URI terminated by non-compliant character
  • SURICATA HTTP METHOD terminated by non-compliant character

Die ersten beiden Regeln gehören zur Regelgruppe für aufkommende Bedrohungen und deuten auf eine zweifelhafte Reputation der IP-Quelladresse laut unserer Threat Intelligence (TI)-Quellen hin: Dshield und Active Threat Intelligence.

Außerdem haben zwei weitere Signaturen abnormale HTTP-Aktivitäten von derselben IP-Quelladresse erkannt. Vermutlich haben die Angreifer Scans durchgeführt, um Informationen über potenzielle Sicherheitslücken zu sammeln.

Die Wazuh HIDS-Komponente hat außerdem verschiedene Warnungen bei der Analyse der Zugriffsprotokolle des Webservers ausgelöst. Dieser Ansatz unterscheidet sich grundlegend von der Netzwerkpaketinspektion und hat die folgenden Warnungen ergeben:

  • IP address found in AlienVault reputation database
  • Host Blocked by firewall-drop.sh Active Response
  • Host Unblocked by firewall-drop.sh Active Response

Die erste Warnung deutet darauf hin, dass die IP-Quelladresse außerdem in einer weiteren Threat Intelligence (TI)-Quelle bekannt ist: Die IP-Reputationsdatenbank AlienVault OTX.

Die restlichen Warnungen wurden vom Wazuh Active Response-Modul generiert, das aufgrund der zuvor erwähnten Warnungen automatisch eine Firewall-Regel hinzugefügt hat, um den Datenverkehr von dieser IP-Quelladresse für exakt 60 Sekunden zu blockieren (dieser Zeitraum ist konfigurierbar). Diese Aktion war ausreichend, um die Scan-Aktivitäten zu blockieren, und der Angreifer hat seinen Einbruchsversuch abgebrochen.

Fazit

Es ist sinnvoll, sowohl signatur- als auch anomaliebasierte Erkennungsmechanismen mit Technologien wie Wazuh, Suricata und Elastic Machine Learning einzusetzen, um Bedrohungen leichter erkennen und effizienter untersuchen zu können.

Außerdem können Sie die Erkennung von Bedrohungen verbessern und mehr Einblicke in Ihre Sicherheit erhalten, indem Sie hostbasierte IDS (Überwachung von Systemen auf Hostebene) mit netzwerkbasierten IDS (Analyse des Netzwerkverkehrs) integrieren. Wazuh unterstützt Sie dabei, host- und netzwerkbasierte IDS mit dem Elastic Stack zu integrieren, und liefert Mechanismen für automatische Reaktionen und die Abwehr von Angriffen in Echtzeit.