Mobile-Menu

SIEM und Intrusion Detection mit Open Source im lokalen Netz Netzwerk Security Monitoring mit Zeek

Von Thomas Joos 4 min Lesedauer

Das Open Source-Tool Zeek ist eine Lösung, mit der Netzwerke dauerhaft in Echtzeit überwacht werden können. Zeek ist auch als Alternative zu Intrusion-Detection-Systemen sinnvoll einsetzbar. Wir zeigen, wie das Tool funktioniert.

Mit dem Security Monitoring Tool Zeek, das auch mit kommerziellen IDS- und SIEM-Werkzeugen zusammenarbeitet, lassen sich mittlere und große Umgebungen überwachen.(Bild:  The Zeek Project)
Mit dem Security Monitoring Tool Zeek, das auch mit kommerziellen IDS- und SIEM-Werkzeugen zusammenarbeitet, lassen sich mittlere und große Umgebungen überwachen.
(Bild: The Zeek Project)

Zeek ist ein Open Source-Tool zur dauerhaften Überwachung von Netzwerken und für das Netzwerk Security Monitoring. Bereits standardmäßig bringt Zeek umfassende Möglichkeiten mit, um Netzwerke umfassend zu überwachen und die Überwachungsdaten zu speichern. Die Bereitstellung kann als Docker-Container über eine herkömmliche Installation auf Linux, FreeBSD oder macOS erfolgen. Seine Ergebnisse speichert Zeek in Protokolldateien, die sich auch mit anderen Tools analysieren lassen. So kann Zeek dann auch an ein SIEM oder andere Systeme in diesem Bereich angebunden werden.

Zeek installieren und erste Schritte

Neben der Installation als Docker-Container, kann die Installation auch auf Ubuntu, macOS oder FreeBSD erfolgen. Für die Installation auf macOS kann Homebrew zum Einsatz kommen:

brew install zeek

Auf BSD kann die Installation mit dem folgenden Befehl erfolgen:

sudo pkg install -y zeek

Einfacher ist die Installation als Docker-Container. Die jeweils aktuelle Version lässt sich mit dem folgenden Befehl herunterladen:

docker pull zeekurity/zeek:latest

Die Container bestehen aus einer Debian-Installation und einer grundlegenden Installation von Zeek, die sich aber manuell erweitern lässt. Sobald das Image heruntergeladen und extrahiert wurde, kann es gestartet werden. Das Image lässt sich mit direktem Zugriff auf die Netzwerkadapter des Hosts mit dem folgenden Befehl aktivieren:

docker run -ti --net=host --name=zeek zeekurity/zeek:latest /bin/bash

Durch den Parameter „--net=host“ bindet sich der Zeek-Container an die Netzwerkadapter des Hosts, um dessen Netzwerkverkehr zu überwachen und in Protokollen zu speichern. Innerhalb der Debian-Distribution von Zeek kann es sinnvoll sein, mit „apt update && apt upgrade“ eine Aktualisierung durchzuführen, damit die Pakete auf dem neusten Stand sind. Mit „apt install net-tools“ werden dann noch wichtige Tools für die Analyse der Netzwerkadapter und -Einstellungen installiert. Natürlich lassen sich innerhalb des Debian-Containers mit Zeek auch weitere Programme und Erweiterungen für Zeek installieren.

ZeekControl für die Steuerung von Zeek nutzen

Nach Eingabe des entsprechenden Docker-Befehls startet der Container als „zeek“ und bietet direkten Zugriff auf die Umgebung. Mit „zeekctl“ lässt sich ZeekControl starten. Dann erfolgen die Konfiguration und Steuerung der Umgebung. Zunächst sollte mit „install“ und dann mit „start“ gefolgt von „deploy“ die Einrichtung der Umgebung erfolgen. Danach steht Zeek auf dem Rechner im Docker-Container zur Verfügung. Die Steuerung erfolgt innerhalb von ZeekControl. Der Befehl „config“ zeigt die aktuelle Konfiguration der Umgebung an. Die verschiedenen Nodes und deren Konfiguration lassen sich wiederum mit dem Befehl „nodes“ in ZeekControl anzeigen.

Innerhalb von ZeekControl lassen sich mit „check“ die Konfiguration von Zeek und die dabei verwendeten Skripte überprüfen. Der Befehl „diag“ überprüft die einzelnen Knoten auf Funktion und zeigt Informationen an, die eine Rolle spielen, um die Konfiguration zu testen. Mit „peerstatus“ lässt sich in ZeekControl überprüfen, ob der aktuelle Knoten mit Zeek verbunden ist und Zeek funktioniert. So erhalten Admins eine umfassende Information zur Umgebung.

Um eine Zeek-Bereitstellung zu beenden, damit diese keine Überwachung mehr durchführt, kommt der Befehl „stop“ in ZeekControl zum Einsatz. Mit „help“ zeigt ZeekControl verschiedene Optionen an. Generell ist es sinnvoll, sich mit dem Zeek Quick Start Guide auf der Webseite der Entwickler auseinanderzusetzen.

Wenn Zeek das Netzwerk überwacht, speichert das Tool die Protokolldateien im Verzeichnis „$PREFIX/logs/current/“. Diese Protokolldateien lassen sich in Linux auslesen, an andere Systeme schicken oder auch mit einem SIEM verbinden. Generell beginnt Zeek nach dem Start von „Zeekctl“ durch Eingabe von „start“ mit dem Schreiben von Protokolldateien. Mit „stop“ wird die Überwachung wieder beendet.

Informationen zum laufenden Betrieb sind mit „status“ zu finden. „restart“ startet Zeek auf dem Server neu. Die Shell von Zeek wird mit „quit“ beendet, dabei bleiben die Prozesse zum Überwachen des Netzwerks aber weiter gestartet. Der aktuelle Status der Überwachung und Statistiken zum Interface sind mit „capstats“ zu sehen. Der Befehl „netstats“ zeigt für die einzelnen Knoten die aktuellen Paket-Zähler an.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Netzwerktechnik, IP-Kommunikation und UCC

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Die Verwaltung von Zeek

Generell sollten Admins darauf achten, dass die Protokolldateien auf dem Zeek-Server nicht den kompletten Speicherplatz verbrauchen. Innerhalb von ZeekControl kann mit „df“ der aktuell verwendete und noch freie Speicherplatz angezeigt werden. Um auf allen Zeek-Hosts Befehle auszuführen, kommt innerhalb von ZeekControl der Befehl „exec <Befehl>“ zum Einsatz. Mit „scripts“ zeigt Zeek die Skripte an, die das Tool beim Starten berücksichtigt.

Fazit

Mit Zeek können Admins in relativ kurzer Zeit eine umfassende Netzwerküberwachung durchführen, die auch in großen Umgebungen und über Cluster umfangreiche Informationen liefert. Zwar lassen sich die Daten auch lokal auslesen, der weitaus bessere Weg ist es aber, die verschiedenen Protokolldateien außerhalb von Zeek zu analysieren oder an ein SIEM zu senden. Durch die Bereitstellung in einem Container lassen sich sehr schnell mittlere und auch große Umgebungen abdecken und die Docker-Unterstützung macht die Inbetriebnahme einfach. In wenigen Minuten steht der erste Zeek-Knoten bereit.

(ID:49199595)