Summit Art Creations - stock.ado

Netzwerk-Monitoring mit Suricata, Zeek und netsniff-ng

Wer Suricata, Zeek und netsniff-ng kombiniert einsetzt, zum Beispiel mit Kali Linux, erhält eine gute Plattform für Netzwerküberwachung, Angriffserkennung und forensische Analysen.

Open-Source-Werkzeuge wie Suricata, Zeek und netsniff-ng ermöglichen eine mehrschichtige Netzwerküberwachung. Sie machen Angriffe sichtbar, zeichnen Kommunikationsmuster auf und liefern bei Bedarf eine vollständige Paketaufzeichnung.

Dabei hat jedes Tool eine klare Rolle: Suricata erkennt sicherheitsrelevante Ereignisse durch signaturbasierte Muster, Zeek liefert detaillierte Protokolle über das Kommunikationsverhalten und netsniff-ng erfasst bei Bedarf den kompletten Datenstrom zur späteren Analyse.

Wer diese Werkzeuge gezielt kombiniert, kann Sicherheitsvorfälle nicht nur erkennen, sondern auch technisch nachvollziehen und kontextualisieren. So entsteht eine belastbare Grundlage für automatisierte Auswertungen, forensische Untersuchungen und fundierte Reaktionen auf Bedrohungen.

Suricata: Angriffe in Echtzeit erkennen

Suricata analysiert den Netzwerkverkehr live und erkennt bekannte Angriffsmuster mithilfe eines regelbasierten Systems. Es arbeitet signaturbasiert, ähnlich wie Snort, und eignet sich hervorragend zur Abwehr von bekannten Exploits, Portscans oder Anomalien. Die Installation unter Kali Linux erfolgt mit einem einfachen Befehl:

sudo apt update && sudo apt install suricata -y

Nach der Installation muss die Konfiguration angepasst werden. Die Datei befindet sich unter /etc/suricata/suricata.yaml

In der Konfigurationsdatei wird festgelegt, welche Netzwerkschnittstelle überwacht werden soll. Unter dem Abschnitt af-packet trägt man die gewünschte Schnittstelle ein, etwa eth0 oder ens33, je nach Umgebung:

af-packet:

  - interface: eth0

    cluster-type: cluster_flow

    cluster-id: 99

    copy-mode: ips

    defrag: yes

Damit Suricata aktuelle Bedrohungen erkennen kann, müssen die Regeln regelmäßig aktualisiert werden. Dafür steht das Tool suricata-update zur Verfügung. Es lässt sich mit Pip installieren:

sudo pip3 install --upgrade suricata-update

Die Regeln werden dann über diesen Befehl bezogen:

sudo suricata-update

Vor dem Start sollten Sie prüfen, ob die Konfiguration korrekt ist:

sudo suricata -T -c /etc/suricata/suricata.yaml

Wenn keine Fehler gemeldet werden, kann Suricata im IDS-Modus gestartet werden:

sudo suricata -c /etc/suricata/suricata.yaml -i eth0

Die Logdaten werden im JSON-Format unter /var/log/suricata/eve.json gespeichert. Die laufende Analyse kann in Echtzeit überwacht werden:

tail -f /var/log/suricata/eve.json

Die so gewonnenen Informationen landen in der Datei eve.json und lassen sich weiterverarbeiten, zum Beispiel durch SIEM-Systeme oder eigene Skripte. Administratoren erhalten dadurch eine Vielzahl verwertbarer Datenpunkte: von IDS-Alerts über DNS-Abfragen bis hin zu TLS-Metadaten wie JA3-Fingerprints oder SNI-Feldern (Server Name Indication).

Diese Informationen liefern Hinweise, um verdächtige Hosts, Verbindungen oder wiederkehrende Angriffsmuster zu erkennen. Wird etwa eine Verbindung zu einer bekannten C2-Infrastruktur entdeckt, lässt sich sofort überprüfen, welcher Host im internen Netzwerk diese Verbindung aufgebaut hat, welcher Benutzer angemeldet war und über welchen Port kommuniziert wurde. Auch die Dauer der Verbindung, die übertragenen Datenmengen und verwandte Sitzungen lassen sich rekonstruieren. Wer die Logs automatisiert auswertet oder mit SIEM-Technologie koppelt, kann Bedrohungen nicht nur schneller erkennen, sondern auch deren Relevanz besser einschätzen.

Zeek: Netzwerkverhalten detailliert aufzeichnen

Zeek verfolgt einen anderen Ansatz. Es erkennt keine Angriffe anhand von Signaturen, sondern protokolliert Netzwerkereignisse systematisch. So entsteht ein vollständiges Bild über die Kommunikation im Netzwerk.

Zeek lässt sich mit Suricata kombinieren.
Abbildung 1: Zeek lässt sich mit Suricata kombinieren, um Angriffe im Netzwerk zu erkennen.

Besonders bei der forensischen Analyse oder bei der Aufklärung unbekannter Vorfälle ist Zeek ein wertvolles Werkzeug. Für ein schnelles Setup kann Zeek auch als Docker-Container betrieben werden:

docker pull zeekurity/zeek:latest

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

Die Option --net=host ist notwendig, damit Zeek Zugriff auf den echten Netzwerkverkehr bekommt. Nach dem Start wird Zeek über zeekctl eingerichtet:

zeekctl install

zeekctl deploy

zeekctl start

Die generierten Protokolle befinden sich im Verzeichnis /usr/local/zeek/logs/current/

Zeek schreibt für jeden Verbindungs- oder Protokolltyp eigene Dateien, zum Beispiel conn.log, dns.log, http.log oder ssl.log. Diese lassen sich mit Standardmitteln durchforsten:

grep "example.com" /usr/local/zeek/logs/current/dns.log

Eine Besonderheit von Zeek ist die Unterstützung der Community-ID. Dabei handelt es sich um einen Hashwert, der auf Basis von Verbindungsmerkmalen berechnet wird und als gemeinsame Referenz zwischen Zeek, Suricata und anderen Tools dient. Auf diese Weise lassen sich Ereignisse aus verschiedenen Quellen zusammenführen.

Zeek arbeitet mit Skripten.
Abbildung 2: Zeek arbeitet mit Skripten, um Angriffe im Netzwerk zu erkennen.

netsniff-ng: Performance-Sniffer ohne Paketverlust

netsniff-ng ist ein Sniffer-Werkzeug für Linux. Es setzt auf Zero-Copy-Technologie, wodurch Pakete direkt vom Kernel verarbeitet werden, ohne dass sie in den Userspace kopiert werden müssen. Das macht netsniff-ng besonders effizient, auch unter hoher Last.

Installiert wird es mit:

sudo apt install netsniff-ng

Um eine Netzwerkschnittstelle live mitzuschneiden und die Daten in einer Datei zu speichern, wird folgender Befehl verwendet:

sudo netsniff-ng -i eth0 -o traffic.pcap

Die erzeugte PCAP-Datei lässt sich anschließend mit netsniff-ng selbst oder mit Wireshark analysieren. Wer den Mitschnitt sofort untersuchen möchte, kann dies direkt tun:

sudo netsniff-ng -r traffic.pcap

Mit trafgen bietet das Toolkit auch ein Werkzeug zum Generieren synthetischen Traffics, nützlich für Testszenarien.

netsniff-ng
Abbildung 3: netsniff-ng kann den Datenverkehr unter Linux in Echtzeit mitschneiden.

Neben der Aufzeichnung und Wiedergabe von Netzwerkverkehr eignet sich netsniff-ng für zeitlich begrenzte, zielgerichtete Mitschnitte, etwa zur forensischen Absicherung nach einem Suricata-Alert oder einer auffälligen Verbindung in den Zeek-Logs. Nützlich ist netsniff-ng, wenn ein laufendes System nicht permanent mitprotokolliert, aber im Verdachtsmoment eine vollständige Paketaufnahme benötigt wird.

Ein typisches Einsatzszenario: Suricata erkennt eine Verbindung mit einem verdächtigen JA3-Hash oder einer bekannten SNI-Domain. Über die Community-ID lässt sich der Vorgang in Zeek nachvollziehen. Um diesen Netzwerkfluss im Detail zu sichern, wird netsniff-ng auf der entsprechenden Schnittstelle mit einem Berkeley Packet Filter (BPF) gestartet:

sudo netsniff-ng -i eth0 -o suspicious_tls.pcap -f "host 192.168.1.50 and port 443"

Hierbei wird nur der Verkehr zu einem spezifischen Host auf Port 443 erfasst, zum Beispiel weil Zeek oder Suricata diesen Host zuvor als Quelle eines Anomalie-Musters erkannt haben. Der Filter host ... and port ... entspricht dem klassischen BPF-Syntax und kann flexibel erweitert werden, etwa mit and not port 53 zur Ausblendung von DNS.

Für dynamische Szenarien, in denen nur bei aktiver Verbindung mitgeschnitten werden soll, kann netsniff-ng auch kombiniert mit einem Zeek-Event-Trigger oder einem einfachen Shell-Skript genutzt werden. Beispiel:

if grep -q "ja3" /usr/local/zeek/logs/current/ssl.log; then

  netsniff-ng -i eth0 -o ja3_capture_$(date +%F_%T).pcap -d 30

fi

Dieser rudimentäre Ansatz liest die Zeek-Logdatei aus und startet im Falle eines Treffers eine 30-sekündige Aufzeichnung mit -d 30 (Duration-Modus). Damit werden genau jene Sekundenpakete gesichert, in denen der Angriff oder die auffällige Kommunikation aktiv war. Die so erzeugten PCAPs können direkt mit suricata -r im Offline-Modus analysiert werden:

sudo suricata -c /etc/suricata/suricata.yaml -r ja3_capture_2025-05-07_14:22:33.pcap

Oder sie lassen sich über Zeek einlesen:

zeek -r ja3_capture_2025-05-07_14:22:33.pcap

Dadurch können Sie auch zurückliegende Vorfälle vollständig aufrollen, ohne dass Suricata oder Zeek zuvor im Live-Modus aktiv mitgelaufen sind. netsniff-ng übernimmt in diesem Fall die Rolle des diskreten Beobachters, der punktuell einsetzt und für Klarheit sorgt, wenn ein Alarm oder eine Korrelation ausgelöst wird.

Zusammenspiel der Tools: Stärken kombinieren

Die volle Leistungsfähigkeit dieser Werkzeuge zeigt sich erst im koordinierten Einsatz. Suricata liefert präzise Warnungen in Echtzeit, sobald verdächtiger Netzwerkverkehr erkannt wird. Zeek dokumentiert parallel dazu das Kommunikationsverhalten und ermöglicht dadurch die zeitliche und inhaltliche Einordnung von Ereignissen. netsniff-ng kommt zum Einsatz, wenn die vollständige Aufzeichnung einzelner Verbindungen erforderlich ist, beispielsweise für forensische Sicherungen oder tiefgehende Nachanalysen.

In Kombination entsteht daraus ein dreistufiges Sicherheitsmodell: Ereignisse erkennen, Zusammenhänge verstehen und Daten gezielt sichern. Wer diese Tools integriert einsetzt, schafft nicht nur mehr Sichtbarkeit im Netzwerk, sondern auch die operative Grundlage für eine schnelle, fundierte Reaktion auf Bedrohungen.

Erfahren Sie mehr über Netzwerk-Monitoring und -Analyse