Gängige Splunk-Suchzeichenfolgen für aufgezeichnete zukünftige Risikolisten
Diese Seite enthält Beispielsuchen für die Korrelation von Risikolisten für die aufgezeichnete Zukunft mit verschiedenen Protokolldateien, die üblicherweise für die Indizierung in Splunk Enterprise konfiguriert sind. Es ist unwahrscheinlich, dass eine dieser Suchvorgänge direkt "so wie sie ist" verwendet werden kann. Vielmehr sollen sie sachkundigen Splunk-Ingenieuren einen Ausgangspunkt für die Erstellung von Suchvorgängen bieten, die Risikolisten für die aufgezeichnete Zukunft mit verschiedenen Protokolldateien korrelieren, die sich in Client-Splunk-Instanzen befinden. Viele der Beispiele konzentrieren sich auf IP-Adressen, und ähnliche Suchvorgänge nach Domänen, Schwachstellen und Hashes lassen sich einfach aus den hier aufgeführten Beispielen erstellen.
Hier ist die Liste der verfügbaren Suchanfragen auf dieser Support-Seite:
- Beispiel für eine einzelne Quelle – Beispiel für ein einzelnes Feld
- Einzelne Quelle – Beispiel für mehrere Felder
- Hinzufügen von aufgezeichneten zukünftigen Risikoinformationen zu einer ursprünglichen Protokollquelle
- Domain-Extraktion und -Suche
- Hash-Extraktion und -Suche
- Verwenden von Splunk Stats zum Hinzufügen von Zählern zu Ereignissen
- Suche nach HF-Daten im Splunk Threat Intelligence KV Store
- Suche nach IP in der Nachschlagetabelle "Aufgezeichnete Zukunft" in ES
- Suche nach IP-Adressen in der Nachschlagetabelle "Recorded Future" in Core Splunk
Vorschläge für weitere gängige und nützliche Suchanfragen sind willkommen!
Single Source – Beispiel für ein einzelnes Feld:
Diese Suche korreliert die Daten der letzten 24 Stunden von einer Firewall (z. B. netscreen) mit der Suche nach der Risikoliste für aufgezeichnete zukünftige IP-Adressen. Alle Ziel-IP-Adressen ("DST") aus den Firewall-Protokollen, die mit einem Risiko ungleich Null korrelieren, werden im Ergebnis angezeigt.
sourcetype=netscreen:firewall frühester=-24h | Eval Name=dst | Eval Zeit=start_time | Nachschlagen rf_ip_threatfeed Name OUTPUT Risk, RiskString, EvidenceDetails | Suche Risiko != "" | Eval RiskScore = Risiko | Eval Regel = spath(EvidenceDetails,"EvidenceDetails{}. Regel")| Eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}. EvidenceString")| Suche Risiko != "" | sort -RiskScore | Tabelle Name, Zeit, RiskScore, RiskString, Regel, EvidenceString | umbenennen Name als IPAddress
Einzelne Quelle – Beispiel für mehrere Felder
Dies ist ein ähnliches Beispiel wie das obige Beispiel, aber die Korrelation verwendet sowohl die Spalten "src" als auch "dst" der Firewalldaten, um riskante IP-Adressen zu identifizieren.
sourcetype=netscreen:firewall frühester=-24h | Eval Name=src + "; " + Sommerzeit | makemv delim="; " Name | mvexpand Name | Eval Zeit=start_time | Nachschlagen rf_ip_threatfeed Name OUTPUT Risk, RiskString, EvidenceDetails | Suche Risiko != "" | Eval RiskScore = Risiko | Eval Regel = spath(EvidenceDetails,"EvidenceDetails{}. Regel")| Eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}. EvidenceString")| Suche Risiko != "" | sort -RiskScore | Tabelle Name, Zeit, RiskScore, RiskString, Regel, EvidenceString | umbenennen Name als IPAddress
Hinzufügen von aufgezeichneten zukünftigen Risikoinformationen zu einer ursprünglichen Protokollquelle:
Dies ist ein Beispiel für die Massenanreicherung. Im folgenden Beispiel wird davon ausgegangen, dass Schwachstellen-Scan-Daten von Rapid7 in Splunk geladen wurden und wir Informationen zu aufgezeichneten zukünftigen Risiken an den Datensatz anhängen
source="Rapid7_Nexpose_Splunk_Vulnerability_Data" | fields cve, asset_id, dest | eval Name=cve | lookup rf_vuln_threatfeed Name OUTPUT Risk, RiskString, EvidenceDetails | search Risk != "" | eval Rule = spath(EvidenceDetails,"EvidenceDetails{}. Regel")| eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}. EvidenceString") | ctime(_time) als Zeit | table Time, Name, asset_id, dest, Risk, RiskString, Rule, EvidenceString | asset_id in "NeXpose AssetID" umbenennen| sort -Risk </query>
Domain-Extraktion und -Suche:
Diese Suche extrahiert den Domainnamen, der in den letzten 24 Stunden im Protokollfeld "_raw" gefunden wurde, und zeigt alle an, die mit einer Domain ungleich Null korrelieren, die von Recorded Future bewertet wurde.
index=main evalNsourcetype=squid:Zugriff frühest=-24h | rex field=_raw "http://(?<domain>[^/]+)/.+" | Eval Time=strftime(_time,"%m/%d/%y %I:%M:%S:%p") | Eval Name=Domäne | Nachschlagen rf_domain_threatfeed Name OUTPUT Risk, RiskString, EvidenceDetails | Suche Risiko != "" | Eval Domäne = Name | Eval RiskScore = Risiko | Eval Regel = spath(EvidenceDetails,"EvidenceDetails{}. Regel")| Eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}. EvidenceString") |sort -RiskScore | Tabelle Domäne, Zeit, RiskScore, RiskString, Regel, EvidenceString
Hash-Extraktion und -Suche:
Diese Suche korreliert Hashes, die auf einem Endgerätgerät protokolliert wurden (z. Symantec) mit der Hash-Risikoliste von Recorded Future. Hashes, die mit Daten in riskanten Daten vom Typ "Aufgezeichnete Zukunft" ungleich Null übereinstimmen, werden zusammen mit dem Zeitstempel angezeigt, zu dem der Hash beobachtet wurde.
sourcetype="Symantec:ep:risk:file" frühest=-24h | rex field=_raw "Anwendungs-Hash: (?<file_hash>[^,]+)" | Eval Name=file_hash | Eval Time=strftime(_time,"%m/%d/%y %I:%M:%S:%p") | Nachschlagen rf_hash_threatfeed Name OUTPUT Risk, RiskString, EvidenceDetails | Suche Risiko != "" | Eval Regel = spath(EvidenceDetails,"EvidenceDetails{}. Regel")| Eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}. EvidenceString") |sort -Risiko | Tabelle Name, Zeit, Risiko, RiskString, Regel, EvidenceString | umbenennen Name als Hash
Verwenden von Splunk Stats zum Hinzufügen von Zählern zu Ereignissen
Bei dieser Suche wird das Feld "remoteip" aus einer haproxy-Protokolldatei mit der Risikoliste für aufgezeichnete zukünftige IP-Adressen korreliert. Anstatt nur jede Korrelation eines Protokolldatensatzes mit der Risikoliste anzuzeigen, gruppiert diese Suche nach der IP-Adresse und zeigt die # korrelierten Ereignisse innerhalb der letzten 24 Stunden an.
sourcetype="haproxy:http" frühest=-24h | rex field=captured_headers "^(?<remoteip>\d+\.\d+\.\d+\.\d+).*$" | Suche remoteip=* | Eval Name=remoteip | Nachschlagen rf_ip_threatfeed Name OUTPUT Risk, RiskString, EvidenceDetails | Suche Risiko != "" | eventstats zählen nach Name |Eval Regel = spath(EvidenceDetails,"EvidenceDetails{}. Regel")| Eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}. EvidenceString") | Sortieren -Zählen | Tabelle Name, Anzahl, Risiko, RiskString, Regel, EvidenceString | Name in "Ziel-IP" umbenennen | count in Count umbenennen | Regel in "Regel(n)"umbenennen
Suche nach HF-Daten im Splunk Threat Intelligence KV Store
Dadurch wird im KV-Speicher von Threat Intelligence nach verfügbaren Risikolisten für aufgezeichnete zukünftige Risiken gesucht.
| "ip_intel" | Suche threat_key=RF*
Suche nach IP in der RF-Lookup-Tabelle in ES
Hierbei handelt es sich um eine einfache Suche, um nach einer bestimmten IP-Adresse in der Recorded Future IP risklist lookup table (Splunk ES) zu suchen.
| inputlookup recordedFutureIpThreatList | search Name=162.208.22.34
Search for IP (e.g., 162.208.22.34) in RF lookup table in Core Splunk
Hierbei handelt es sich um eine einfache Suche nach einer bestimmten IP-Adresse in der Suchtabelle "Recorded Future IP risklist" (Splunk Enterprise).
| inputlookup rf_ip_threatfeed | search Name=162.208.22.34<