InfraGuard

Bedrohungen — IDS-Bedrohungstriage

Triagieren Sie Suricata-IDS-Alarme als Quell-IP-Entitäten — mit Verknüpfungs-Badges zur automatischen Sperrung und Signaturerläuterungen, die erklären, was jede Erkennung wirklich bedeutet.

Überblick — was der Bildschirm leistet

Sicherheit ▸ Bedrohungen (/security/threats) formt die Suricata-IDS-Alarmtabelle suricata_alert_ct zu einer Ansicht von Quell-IP-Entitäten (src_ip) für die Triage um. Statt Tausende Rohalarme aufzulisten, bündelt der Bildschirm sie zu „Wer (welche IP) hat uns getroffen, wie hart und auf welche Weise“ und sortiert nach Schweregrad.

Er verbindet drei Dinge auf einer Seite:

  1. Triage der Bedrohungsentitäten — eine Karte je src_ip mit Alarmanzahl, höchstem Schweregrad, unterschiedlichen Signaturen und Zeitpunkt der letzten Beobachtung.
  2. Verknüpfung mit der automatischen Aktion (Sperrung) — das /24 jeder Bedrohungs-IP wird gegen die Auto-Defense-Tabelle blacklist_info abgeglichen und erhält ein Badge Gesperrt / Erkannt, damit Erkennung und Reaktion als eine Geschichte lesbar werden.
  3. Signaturerläuterung (Signature Lore) — die meisten Suricata-Signaturzeichenketten sind schwer lesbare Engine-Ereignisse (stream-, decoder- oder app-layer-Ereignisse) und keine Content-Regeln. Dieser Bildschirm erzählt in einem Erläuterungspanel, was jede Signatur tatsächlich impliziert (was sie erkannt hat · warum sie ausgelöst hat [benign→malicious] · worauf zu achten ist · Worst Case).

Alles ist schreibgeschützt. Die einzige zustandsändernde Aktion ist ein Deep Link, der eine Bedrohungs-IP an die Sperrliste übergibt; der eigentliche Sperr-Schreibvorgang erfolgt dort unter einer eigenen Berechtigung.

Wann Sie ihn nutzen

Aufbau

Obere KPIs (auf das Zeitfenster bezogen)

KPI Bedeutung Herleitung
alerts Gesamtzahl der IDS-Alarme im Zeitfenster Anzahl aus suricata_alert_ct mit alert_ts >= since
entities Anzahl der Bedrohungs-IP-Entitäten führende src_ips (bis zu 48)
blocked bereits automatisch gesperrte Bedrohungs-IPs /24 der Entität ∈ blacklist_info(is_use=1)
critical unbehandelte kritische Bedrohungs-IPs (alle beobachteten = critical_all) max_sev <= 1 und noch nicht gesperrt

Karten/Zeilen der Bedrohungsentitäten

Zeigt bis zu 48 führende src_ips, absteigend nach Alarmanzahl. Jede Entität führt mit:

Feld Beschreibung
ip Quell-IP (src_ip)
alerts Alarmanzahl dieser IP im Zeitfenster
sev höchster Schweregrad (1=kritisch … 3=informativ). Suricata: niedriger ist schwerwiegender → MIN(severity) ergibt den höchsten
sigs unterschiedliche Signaturen (sid) — Vielfalt des Angriffs
last_ts Zeitpunkt der letzten Beobachtung
blocked true, wenn das /24 dieser IP auf der Auto-Sperrliste steht
block_source Quell-Tag der Sperrung: kitsune · suricata · manual · other (aus der reason-Zeichenkette geparst)
country / asn Geo-/ASN-Anreicherung (ip_info_loop, neueste Zeile)

Ihr eigenes Netz wird ausgeschlossen. SecurityScope::excludePrefixes() filtert das /24 der IPs registrierter Instanzen (zuzüglich der Whitelist interner Netze aus der Betriebsrichtlinie) mit NOT LIKE heraus, damit Ihre eigenen Server nicht als Quelle auftauchen und die Bedrohungsliste zumüllen. Erscheint eine interne IP dennoch wegen der Richtungskennzeichnung, wird ihr ein internal-Badge angeheftet (gesteuert von internalMatchers) und die Reputationsschaltfläche ausgeblendet.

Schweregradverteilung · Kategorien · Signaturen

Panel der Signaturerläuterung

App\Support\SignatureLore::classify() klassifiziert die Signaturzeichenkette in eine Familie und einen Detailschlüssel; der eigentliche Text liegt im Sprachpaket resources/lang/{ko,en}/siglore.php. Das Frontend führt family + key zusammen (das Detail überschreibt die Familie) und rendert daraus eine vierteilige Erzählung.

Teil Inhalt
Was sie erkannt hat (meaning) was die Signatur protokollseitig erfasst hat
Warum sie ausgelöst hat · Möglichkeiten (why) mögliche Ursachen, nach Tonfall aufgeführt [benign] → [watch] → [malicious]
Worauf zu achten ist (caution) wie sich Rauschen von einem echten Signal trennen lässt
Worst Case (worst) die Kompromittierung, zu der es führen kann, wenn man es ignoriert

Jede Familie trägt einen implizierten Schweregrad (tone) — selbst informative Ereignisse implizieren Unterschiedliches.

family Bezeichnung tone Symbol
stream Anomalie beim Reassemblieren des TCP-Streams warn mdi-transit-connection-variant
decoder Anomalie bei Paketdekodierung/-integrität info mdi-package-variant-closed
applayer Anomalie des Anwendungsprotokolls warn mdi-swap-horizontal-bold
http Anomalie beim HTTP-Parsing warn mdi-web
tls TLS-Anomalie warn mdi-lock-outline
dns DNS-Anomalie warn mdi-dns-outline
scan Scan/Aufklärung warn mdi-radar
exploit Exploit-Versuch crit mdi-bug-outline
malware Schadsoftware/C2 crit mdi-virus-outline
dos DoS/Flooding crit mdi-flash-alert-outline
policy Richtlinie/Information info mdi-file-document-outline
generic sonstige IDS-Signatur info mdi-shield-alert-outline

Es gibt 14 Detailschlüssel, die die Familie überschreiben: invalid_timestamp · checksum · retransmit · handshake · evasion · stateanomaly · host_header · desync · malformed · one_direction · mismatch · starttls · tls_anomaly · unsolicited.

Die meisten stream-/decoder-Signaturen (z. B. SURICATA STREAM Packet with invalid timestamp, SURICATA TCPv4 invalid checksum) sind informativ auf sev3 und lösen massenhaft aufgrund von Infrastruktureigenschaften wie asymmetrischem Routing und Prüfsummen-Offloading der Netzwerkkarte aus — harmloses Rauschen. Achten Sie weniger auf die Signatur selbst als darauf, ob dieselbe src_ip in einem kurzen Zeitfenster mehrere Familien stapelt (Scan + Handshake-Anomalie usw.). Diese Häufung ist das Signal für Absicht.

Vorgehen

1) Zeitraum wählen

Das Standardfenster beträgt 24 h. Unterstützte Zeiträume:

range Fenster (Min.)
1h 60
6h 360
24h 1440 (Standard)

Der Umschalter wird als ?range= übergeben; jeder Wert außerhalb der Whitelist wird auf 24h heruntergestuft.

2) Bedrohungs-IPs triagieren

  1. Beginnen Sie bei den Entitäten mit dem höchsten Schweregrad (sev=1 kritisch) und der größten Alarmanzahl.
  2. Ein Badge Gesperrt bedeutet, dass die Auto-Defense bereits reagiert hat — prüfen Sie block_source, um zu sehen, welche Engine gesperrt hat.
  3. Nicht gesperrt + hoher Schweregrad + viele Signaturen ist Ihr wichtigster Kandidat für Untersuchung bzw. Sperrung.

3) IP-Detailansicht (sicherheitsspezifisches Popover)

Ein Klick auf eine IP ruft GET /security/threats/ip-detail?ip=<IP>&range=<range> auf. Die IP wird streng mit FILTER_VALIDATE_IP validiert; ein ungültiger Wert liefert 422 (invalid_ip). Zurückgegebene Felder:

{
  "ok": true,
  "detail": {
    "ip": "203.0.113.10",
    "cidr": "203.0.113.0/24",
    "geo": { "country": "US", "city": null, "asn": "ASNNNNN", "isp": "...", "org": "..." },
    "signatures": [
      { "signature": "...", "severity": 3, "cnt": 42, "explain": { "family": "stream", "key": "invalid_timestamp", "tone": "warn", "icon": "mdi-...", "svg": "stream" } }
    ],
    "blocked": true,
    "block_source": "suricata",
    "block_reason": "[Suricata Auto-Block] ...",
    "block_at": "2026-08-13 04:12:00",
    "abuse_url": "https://www.abuseipdb.com/check/203.0.113.10"
  }
}

4) Reputation prüfen · zur Sperrung befördern

Datenquellen

Tabelle Zweck Zugriff
suricata_alert_ct IDS-Alarme (src_ip · severity · category · signature · sid · alert_ts) lesend
blacklist_info Auto-Sperrliste (/24 c_class · reason · country · is_use) lesend (Badge der automatischen Aktion)
ip_info_loop Geo-/ASN-/ISP-Anreicherung lesend
IPs registrierter Instanzen + interne Netze aus der Betriebsrichtlinie Ausschluss des eigenen Netzes · internal-Badge SecurityScope

Alle Quellen liegen auf der Verbindung legacy_glory (präfixlose Legacy-Tabellen, die von der Collector-Flotte gefüllt werden) und sind schreibgeschützt. Das Lese-Rückgrat ist App\Repositories\SecurityRepository (Parameterbindung · enge Zeitfenster · LIMIT). Controller und Service legen diese Tabellen niemals an und ändern sie nie.

Cache · Aktualisierung

Zugriff

Aktion Level
Bildschirm ansehen · Detailansicht · Reputation ≥ 2 (staff=5, admin=10)
Demo-Zugriff (1) verweigert

Fehlerbehebung und FAQ

F. invalid timestamp / invalid checksum überwiegen — ist das ein Angriff? Meistens nicht. invalid checksum löst massenhaft im Verkehr Ihrer eigenen Server aus, weil die Netzwerkkarte die Prüfsummenberechnung übernimmt; invalid timestamp entsteht durch asymmetrisches Routing und Middleboxen. Beides ist harmloses Rauschen auf sev3 — genau das erklären die [benign]-Einträge der Erläuterung. Werden Sie erst dann misstrauisch, wenn sie sich auf eine bestimmte externe src_ip konzentrieren, die zusätzlich weitere Signale stapelt (Scan · Handshake-Anomalie).

F. Warum ist Schweregrad 1 der kritischste? Nach der Suricata-Konvention gilt severity 1=hoch, 2=mittel, 3=informativ. Deshalb wird das höchste Risiko einer Entität mit MIN(severity) berechnet.

F. Die IP meines eigenen Servers erscheint in der Bedrohungsliste. SecurityScope schließt die /24 registrierter Instanzen und die interne Whitelist aus, doch eine nicht registrierte IP oder eine Richtungskennzeichnung (src/dst) kann sie dennoch zutage fördern. Registrieren Sie die IP unter Instanzen oder ergänzen Sie den Bereich in der Betriebsrichtlinie. Erscheint sie weiterhin, wird ein internal-Badge angeheftet.

F. Die IP-Detailansicht liefert 422. Der Parameter ip ist keine gültige IP (invalid_ip). Vergewissern Sie sich, dass es sich um einen echten IPv4-/IPv6-Wert handelt.

F. Die Erläuterung zeigt nur „sonstige IDS-Signatur“. Signaturen, die keine Schlüsselwortregel von SignatureLore::match() erfasst, fallen auf die Familie generic zurück. Beurteilen Sie sie anhand von Kategorie und Signaturname und ergänzen Sie bei Bedarf einen Detailschlüssel in siglore.php.

F. Die Liste bleibt 30 Sekunden lang unverändert. Das ist so vorgesehen. Der Service nutzt einen Cache von 30 Sekunden je Zeitraum plus 30-Sekunden-Polling. Wenn Sie sofort den frischesten Wert brauchen, laden Sie nach Ablauf des Caches neu (das erzwingt eine Neuberechnung).

Verwandte Themen

IDS 위협 트리아지
IDS 위협 트리아지