Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Suricata-Regeln für die IDS-Signatur-Erstellung: Ein praxisnahes Tutorial (Projekt 4, Fall 25)

Lernen Sie, wie Sie effektive Suricata-Regeln schreiben – von einfachen IP-basierten Alerts bis zu komplexen Pattern-Matches. Dieses Tutorial führt Sie Schritt für Schritt durch typische Szenarien aus dem Hochschulprojekt Cs/pubp-6261/8803.

Suricata Regeln IDS Signature Project Cs/pubp-6261 Netzwerksicherheit Bedrohungs-IP erkennen phpMyAdmin Scan Phishing E-Mail erkennen Yahoo Messenger Protokoll Suricata Regel erstellen Hochschule Projekt 4 Cycurity Analyst SOC Analyst KI Phishing Suricata Tutorial Deutsch Intrusion Detection System

Einleitung: Warum Suricata-Regeln heute wichtiger sind denn je

In Zeiten von KI-gestützten Angriffen und datengetriebenen Phishing-Kampagnen ist die Fähigkeit, eigene Suricata-Regeln zu schreiben, eine unverzichtbare Kompetenz für jeden angehenden Sicherheitsexperten. Ob Sie gerade Ihr Projekt 4: IDS Signature Project im Kurs Cs/pubp-6261/8803 bearbeiten oder sich auf eine Karriere im Bereich Netzwerksicherheit vorbereiten – dieses Tutorial vermittelt Ihnen die Grundlagen und fortgeschrittene Techniken.

Grundlagen: Aufbau einer Suricata-Regel

Bevor wir in die konkreten Szenarien eintauchen, wiederholen wir kurz den Aufbau einer Suricata-Regel. Eine Regel besteht aus drei Teilen: Action, Header und Rule Options. Ein einfaches Beispiel:

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"Beispielregel"; sid:1000001; rev:1;)

Die Action (alert), das Protokoll (tcp), Quell- und Zieladresse sowie die Optionen in Klammern. Jetzt wenden wir dieses Wissen auf typische Aufgaben aus dem IDS Signature Project an.

Szenario 1: Alert auf eine bekannte Bedrohungs-IP

Stellen Sie sich vor, Sie erhalten einen Threat-Intelligence-Feed, der die IP 27.43.100.29 als Angreifer auf Webdienste identifiziert. Ihre Aufgabe: Schreiben Sie eine Regel, die bei jedem Zugriff von dieser IP auf einen lokalen Webserver warnt.

Die Lösung nutzt die ip.src-Option und filtert auf Port 80/443 (HTTP/HTTPS). Da HTTP_PORTS bereits definiert ist, können wir diesen Macro verwenden:

alert tcp 27.43.100.29 any -> $HOME_NET $HTTP_PORTS (msg:"Bedrohungs-IP 27.43.100.29 greift Webdienst an"; sid:1; rev:1;)

Diese Regel erzeugt einen Alert, sobald die IP 27.43.100.29 eine Verbindung zu einem HTTP-Port im Heimnetz aufbaut. Der sid:1 entspricht der Aufgabenstellung.

Szenario 2: Erkennung von phpMyAdmin-Scans ohne User-Agent

Ihr Unternehmen beobachtet Scans nach der Datei /phpMyAdmin/scripts/setup.php. Auffällig: Die Scans enthalten keinen User-Agent-Header. So schreiben Sie eine Regel, die genau diesen Traffic erkennt:

alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"phpMyAdmin Scan ohne User-Agent"; flow:to_server,established; content:"/phpMyAdmin/scripts/setup.php"; http_uri; content:!"User-Agent"; http_raw_header; nocase; sid:2; rev:1;)

Erklärung: content:"/phpMyAdmin/scripts/setup.php"; http_uri; sucht nach dem Pfad in der URI. content:!"User-Agent"; http_raw_header; prüft, ob der Header nicht vorhanden ist. Das Ausrufezeichen negiert den Inhalt. Testen Sie diese Regel mit der bereitgestellten http.pcap-Datei.

Szenario 3: Phishing-Links in E-Mails erkennen

Ein bekannter Phishing-Angriff nutzte einen manipulierten OAuth-Link: https://accounts.google.com/o/oauth2/auth. Ihre Regel soll jede E-Mail (SMTP) mit diesem Link identifizieren. Da Suricata SMTP-Daten analysieren kann, nutzen wir file.data oder content im SMTP-Stream:

alert tcp $EXTERNAL_NET any -> $HOME_NET 25 (msg:"Phishing-Link zu Google OAuth in E-Mail"; flow:to_server; content:"accounts.google.com/o/oauth2/auth"; nocase; sid:3; rev:1;)

Hinweis: In der Praxis müssten Sie möglicherweise auch ssl oder tls für verschlüsselte Verbindungen berücksichtigen. Für die Aufgabe reicht diese einfache Regel, die mit smtp.pcap getestet werden kann.

Szenario 4 (Extra Credit): Yahoo! Messenger Protokollanalyse

Hier wird es fortgeschritten: Sie sollen Yahoo! Messenger Pakete mit dem Service-Wert 00 f1 identifizieren. Das Protokoll verwendet einen binären Header. Wir nutzen content mit Hex-Notation:

alert tcp any any -> any any (msg:"Yahoo Messenger mit Service 0x00F1"; content:"|00 f1|"; depth:2; offset:?; sid:4; rev:1;)

Wichtig: Der genaue Offset hängt vom Protokollaufbau ab. In der Praxis müssen Sie die Paketstruktur aus der Dokumentation entnehmen. Testen Sie mit ymsg2.pcap.

Best Practices und häufige Fehler

  • Reihenfolge der Regeln: Da frühere SIDs spätere beeinflussen können, platzieren Sie spezifische Regeln vor allgemeinen.
  • Verwendung von Macros: Nutzen Sie vordefinierte Variablen wie $HOME_NET, $EXTERNAL_NET, $HTTP_PORTS, um die Lesbarkeit zu erhöhen.
  • Testen: Verwenden Sie die angegebene Test-URL, um Ihre Regeln zu validieren.
  • Performance: Vermeiden Sie zu viele content-Matches ohne fast_pattern, da dies die Geschwindigkeit beeinträchtigt.

Trends und aktuelle Bezüge

Aktuelle Bedrohungen wie KI-generierte Phishing-Mails oder Supply-Chain-Angriffe machen deutlich, warum maßgeschneiderte IDS-Regeln unverzichtbar sind. Mit Suricata können Sie auf neue Angriffsmuster reagieren, ohne auf Updates von Drittanbietern warten zu müssen. Dieses Wissen ist nicht nur für das Projekt 4 relevant, sondern auch für die Zertifizierung zum Cybersecurity Analyst oder für den Einsatz in SOCs.

Fazit

Sie haben gelernt, wie Sie Suricata-Regeln für verschiedene Szenarien schreiben: von einfachen IP-basierten Alerts über URI-Matching bis zu binären Protokollen. Üben Sie mit den bereitgestellten PCAP-Dateien und passen Sie die Regeln an Ihre Umgebung an. Viel Erfolg bei Ihrem Cs/pubp-6261/8803 Projekt 4!