InfraGuard

Erkennungs-Regelsätze

Ein schreibgeschützter Katalog, der jede von InfraGuard beobachtete Erkennungsregel zu 44 Regelsätzen in 11 Kategorien normalisiert und dabei laufende Auslösezähler sowie – per Klick – die zuletzt von jedem Regelsatz erfassten Ereignisse anzeigt.

Überblick — was der Bildschirm leistet

Erkennungs-Regelsätze (/security/rulesets) ist die kanonische Bibliothek, die jede von InfraGuard beobachtete und bewertete Erkennungsregel zu 44 Regelsätzen in 11 Kategorien normalisiert. Der Bildschirm erledigt drei Dinge an einem Ort:

  1. Überblick — ordnet Regelsatz-Karten innerhalb von Kategorieabschnitten an und zeigt für das gewählte Zeitfenster (1h/6h/24h) die tatsächliche Ereignisanzahl und den Zeitstempel der letzten Sichtung je Regelsatz.
  2. Erläuterung — beschreibt jeden Regelsatz in drei Schritten (was er erkennt · warum er auslöst · Worst Case).
  3. Wiedergabe — ein Klick auf eine Karte öffnet ein Modal mit den tatsächlich erfassten letzten Ereignissen dieses Regelsatzes, in einer engine-spezifischen Tabelle.

Der Kern des Entwurfs ist die Trennung von Klassifikationsstruktur und Erläuterungstext. Die Struktur (Kategorien, Regelsatz-Schlüssel, Trefferregeln je Engine) liegt in der gebietsschema-unabhängigen statischen SOT App\Support\SecurityRulebook (cache-sicher), der Erläuterungstext (Name, Bedeutung, Belege, Risiko) dagegen in resources/lang/{ko,en}/secrules.php. Das Frontend führt beide über key+category zusammen und rendert sie.

Dieser Bildschirm ist strikt schreibgeschützt. Er aktiviert, deaktiviert, bearbeitet oder löscht keine Regelsätze. Er ist ein Referenzkatalog, der die Frage beantwortet: „Was wird in dieser Organisation gerade beobachtet, und was bedeutet das?“ Die Stelle, an der die Erkennungskonstanten (Schwellenwerte/Fenster) tatsächlich geändert werden, ist Regeln und Schwellenwerte (Verwaltung ▸ Regeln).

Die 44 Regelsätze sind an echte Telemetrie angeschlossen

Regelsätze sind keine abstrakten Regeln — jeder ist über eine Trefferregel (match) an eine reale Erfassungstabelle gebunden. Alle Quellen liegen auf der Verbindung legacy_glory (die Alt-Datenbank, die die Collector-Flotte befüllt).

Engine Trefferregel Quelltabelle Regelsätze
Suricata IDS sig: Teilstring-Treffer in Kleinschreibung gegen ein Array von Signaturfragmenten suricata_alert_ct 33
Web (nginx) classifyWeb: priorisierte, disjunkte Klassifizierung von is_suspicious-Anfragen nach url/ua/status nginx_meta_ct 8
Kitsune ML source=kitsune: vom Autoencoder als anomal erkannte IPs kitsune_detail_log 1
Heuristik (srct) source=srct: heuristische Scan-/Raten-Läufe srct_process_log 1
JA3-Fingerabdruck source=ja3: JA3-Vielfalt (Rotation) je Quell-IP suricata_tls_ct 1

Wann Sie ihn nutzen

Aufbau

KPIs im Kopfbereich

KPI Beschriftung Bedeutung
total Regelsätze Gesamtzahl der Regelsätze im Katalog (immer 44)
active Beobachtete Regelsätze Regelsätze, die im Fenster mindestens ein Ereignis ausgelöst haben (firing)
events Ereignisse im Fenster Summe der Ereigniszähler über alle Regelsätze
cats Kategorien Anzahl der Kategorien (11)

Intern werden außerdem Summen je Engine berechnet (Ereignissummen für kitsune und suricata), damit die Zahlen mit der Stufe „Regelsätze“ des Sicherheits-Abwehrtrichters konsistent bleiben.

Bedienelemente

Kategorieabschnitte und Regelsatz-Karten

Die 11 Kategorien bilden Abschnitte in Anzeigereihenfolge, und innerhalb jedes Abschnitts werden die Regelsätze in einem minmax(600)-Kartenraster angeordnet. Jede Karte zeigt den Regelsatznamen, ein MDI-Symbol, ein Schweregrad-Abzeichen (crit/warn/info), die Ereignisanzahl im Fenster, den Zeitstempel der letzten Sichtung sowie [Open]. Ohne Ereignisse zeigt sie „ruhig / nichts im Fenster beobachtet“.

# Kategorieschlüssel Beschriftung Engine Regelsätze
1 tcp_stream TCP-Stream-Integrität Suricata 10
2 packet_decode Paketdekodierung Suricata 4
3 protocol_anomaly Protokollanomalie Suricata 5
4 http_anomaly HTTP-Konformität Suricata 5
5 tls_anomaly TLS-Anomalie Suricata 5
6 dns_anomaly DNS-Anomalie Suricata 1
7 mail_anomaly Mail-Anomalie (SMTP) Suricata 3
8 web_attack Web-Angriffsmuster nginx 8
9 ml_anomaly ML-Anomalieerkennung Kitsune 1
10 heuristic_scan Heuristischer Scan srct 1
11 tls_fingerprint JA3-Fingerabdruck JA3 1

So gehen Sie vor

1) Fenster wählen → die Lage lesen

Wählen Sie zuerst das interessierende Fenster (1h/6h/24h). Nutzen Sie active (beobachtete Regelsätze) und die Ereignisanzahl jeder Karte, um zu sehen, was gerade auslöst. Beachten Sie: Das Schweregrad-Abzeichen ist ein implizierter Schweregrad — die meisten Suricata-Engine-Ereignisse sind sev3 (informativ), doch ihre Implikation unterscheidet sich (Rauschen / Scan / Exploit). Das Abzeichen des Regelsatzes spiegelt diesen Implikationston wider, nicht den rohen sev-Wert.

2) Auf eine Karte klicken → Modal mit den letzten Ereignissen

Ein Klick auf eine Karte ruft /security/rulesets/events?key=<rulesetKey>&range=<window> auf und öffnet ein Modal mit:

Spalten der engine-spezifischen Ereignistabelle:

Engine Spalten
Suricata Zeit · src · dst · Port · proto · Signatur · sev
nginx Zeit · src · Host · Methode · URL (rawurldecode, 180 Zeichen) · Status
Kitsune Zeit · IP · Anomaliewert · Sitzungen · blockiert
srct Zeit · gescannt · blockiert · Notiz
JA3 Zeit · IP · JA3-Vielfalt · TLS-Verbindungen · SNI-Vielfalt

3) Priorität der Web-Angriffsklassifizierung (disjunkt)

Die 8 Web-Regelsätze (nginx) sind gegenseitig disjunkt. Eine einzelne is_suspicious=1-Anfrage wird in der Definitionsreihenfolge des Katalogs geprüft und genau einem zuerst passenden Regelsatz zugeordnet; passt keiner, fällt sie an den Auffangposten (web_suspicious_other). Dieselbe Anfrage wird also nie in zwei Web-Regelsätzen doppelt gezählt.

Priorität Regelsatz-Schlüssel Trefferindiz (url/ua) Schweregrad
1 web_secret_scan .env .git wp-config id_rsa .aws credentials backup.sql .bak warn
2 web_path_traversal ../ ..%2f %2e%2e etc/passwd boot.ini proc/self crit
3 web_sqli union select information_schema sleep( or 1=1 %27or crit
4 web_xss <script onerror= javascript: document.cookie warn
5 web_rce_probe /bin/sh exec( system( jndi: ${ phpunit crit
6 web_admin_brute wp-login xmlrpc.php phpmyadmin /admin/login warn
7 web_bad_bot UA: sqlmap nikto masscan nuclei python-requests curl/ warn
8 web_suspicious_other (Auffangposten — verdächtige Anfragen, die auf keinen der obigen passen) info

Aus Performancegründen aggregiert die Web-Klassifizierung über eine Stichprobe der jüngsten 6,000 Zeilen (Repository-Obergrenze 8,000). Während starker Scans werden Ereignisse außerhalb der Stichprobe womöglich nicht abgebildet — lesen Sie die Zahlen als Verteilung/Trend, nicht als absolute Zähler.

4) Was der Suricata-Teilstringtreffer impliziert

Suricata-Regelsätze lösen bei einem Teilstringtreffer in Kleinschreibung der Signaturzeichenkette aus. Beispielsweise summiert stream_invalid_ts jedes Ereignis, dessen Signatur invalid timestamp enthält. Ein einzelner Regelsatz kann mehrere tatsächliche Signaturen bündeln (im Modal als Chips „passende Signaturen“ sichtbar), und die sig-Schlüsselwörter verschiedener Regelsätze sind so entworfen, dass sie sich nicht überschneiden.

5) Gemessenes Beispiel (zur Orientierung)

Eine beispielhafte 24h-Momentaufnahme: 37 von 44 Regelsätzen lösen aus, stream_invalid_ts 10,243, web_secret_scan 3,304 (überwiegend 404 aus der .env-Familie), srct_heuristic 126,252, ja3_rotation 300 (Vielfalt 307/307). Die Werte variieren je nach Organisation und Zeitpunkt.

Datenquellen

Alle Quellen liegen auf der Verbindung legacy_glory (schreibgeschützt) und werden ausschließlich über config('database.connections.legacy_glory') erreicht — keine fest im Code hinterlegten Zugangsdaten.

Regelsatz-Familie Tabelle Repository-Methoden (Auszug)
Suricata (33) suricata_alert_ct signatureHistogram() · recentAlertsBySignatures() · distinctIpsBySignatures()
Web (8) nginx_meta_ct (is_suspicious=1) suspiciousRows($since, 6000)
Kitsune ML (1) kitsune_detail_log kitsuneCount() · kitsuneRecentInWindow()
Heuristik (1) srct_process_log srctBlockedSum() · srctRunsInWindow()
JA3 (1) suricata_tls_ct topJa3Ips($since, N, excludePrefixes)

Performance und Caching

Zugriff

Level-Konvention: demo=1 · staff=5 · admin=10. Einige Bereiche sind zusätzlich durch die Middleware infr.level:N geschützt. Das vollständige Stufenschema finden Sie unter RBAC-Level.

Fehlerbehebung und FAQ

Alle Karten zeigen „ruhig“

Entweder gibt es im gewählten Fenster (Standard 24h) keine passenden Ereignisse, oder die Verbindung legacy_glory ist nicht erreichbar. Der Dienst fängt Quellfehler kulant ab und zeigt leere Zähler (0) — Karten verschwinden nicht. Erweitern Sie das Fenster oder prüfen Sie die Verbindung.

Die Zähler der Web-Regelsätze weichen von [Bedrohungen] / [Erkennungen] ab

Die Web-Klassifizierung ist ein Verteilungsaggregat über eine Stichprobe der jüngsten 6,000 Zeilen (kein absoluter Zähler). Sie ist zudem disjunkt, sodass eine Anfrage genau einem Regelsatz zugeordnet wird. Die maßgebliche Ereignisquelle folgt der jeweils eigenen Abfrage jedes Bildschirms.

Eine bestimmte Signatur wird von keinem Regelsatz erfasst

Der Suricata-Abgleich erfolgt als Schlüsselwort-Teilstring-Treffer. Neue oder benutzerdefinierte Signaturen, die der Katalog nicht abdeckt, fließen in keinen Regelsatz-Zähler ein. Um sie zu klassifizieren und zu erläutern, fügen Sie das Signatur-Schlüsselwort dem sig-Array von SecurityRulebook hinzu — eine Codeänderung, keine Laufzeiteinstellung.

JA3-Auffällige sind 0, obwohl viel TLS-Verkehr anliegt

Der JA3-Regelsatz zählt nur Quell-IPs mit ja3_variety >= 2 (Fingerabdruck-Rotation) als Auffällige. Ohne Rotation gilt eine Quelle als normal und wird nicht gezählt. IPs des eigenen Netzes sind ebenfalls ausgeschlossen.

Eine IP zeigt im Ereignis-Modal ein internal-Abzeichen

Das ist eine registrierte IP des internen Netzes, ermittelt durch SecurityScope::internalMatchers(). Sie verhindert, dass eigene Server — die die Richtungslogik von Suricata als „Quelle“ ausweisen kann — für Angreifer gehalten werden, und blendet die Reputationsschaltfläche aus. Die Definition des internen Netzes wird unter internal_networks in der Betriebsrichtlinie verwaltet.

Verwandte Themen

탐지 룰셋 카탈로그
탐지 룰셋 카탈로그