Dashboard für Incident Response erstellen
Verwendungszweck
Verwenden Sie diesen Skill, wenn:
- IR-Teams während aktiver Vorfälle Echtzeit-Dashboards für Koordination und Nachverfolgung benötigen
- SOC-Führungskräfte operative Dashboards mit Incident-Status und Analystenauslastung wünschen
- Nachbesprechungen nach Vorfällen visuelle Zeitstrahlen und Auswirkungsbewertungen benötigen
- Führungsetagen-Briefings hochrangige Incident-Kennzahlen und Trendanalysen erfordern
Nicht verwenden für alltägliche SOC-Überwachungs-Dashboards (dafür dient das Incident Review) – IR-Dashboards sind für die aktive Koordination von Vorfällen und das Management-Reporting konzipiert.
Voraussetzungen
- SIEM-Plattform (Splunk mit Dashboard Studio, Elastic Kibana oder Grafana)
- Notable Event- und Incident-Daten im SIEM (Splunk ES incident_review-Index)
- Integration eines Ticketingsystems (ServiceNow, Jira) für die Nachverfolgung von Abhilfemaßnahmen
- Asset- und Identitäts-Nachschlagetabellen für die Kontextanreicherung
- Veröffentlichungszugriff auf Dashboards für SOC-Team und Management-Verteilung
Arbeitsablauf
Schritt 1: Layout des aktiven Incident-Dashboards entwerfen
Erstellen Sie ein Splunk Dashboard Studio-Dashboard für die aktive Incident-Verfolgung:
<dashboard version="2" theme="dark">
<label>Active Incident Response Dashboard</label>
<description>Real-time tracking for IR-2024-0450</description>
<row>
<panel>
<title>Incident Summary</title>
<single>
<search>
<query>
| makeresults
| eval incident_id="IR-2024-0450",
status="CONTAINMENT",
severity="Critical",
affected_hosts=7,
contained_hosts=5,
iocs_identified=23,
hours_elapsed=round((now()-strptime("2024-03-15 14:00","%Y-%m-%d %H:%M"))/3600,1)
| table incident_id, status, severity, affected_hosts, contained_hosts, iocs_identified, hours_elapsed
</query>
</search>
</single>
</panel>
</row>
</dashboard>
Schritt 2: Echtzeit-Panel für betroffene Systeme erstellen
Verfolgen Sie betroffene Systeme und deren Eindämmungsstatus:
| inputlookup ir_affected_systems.csv
| eval status_color = case(
status="Contained", "#2ecc71",
status="Compromised", "#e74c3c",
status="Investigating", "#f39c12",
status="Recovered", "#3498db",
1=1, "#95a5a6"
)
| stats count by status
| eval order = case(status="Compromised", 1, status="Investigating", 2,
status="Contained", 3, status="Recovered", 4)
| sort order
| table status, count
--- Detailtabelle der Hosts
| inputlookup ir_affected_systems.csv
| lookup asset_lookup_by_cidr ip AS host_ip OUTPUT category, owner, priority
| table hostname, host_ip, category, owner, status, containment_time,
compromise_vector, analyst_assigned
| sort status, hostname
Schritt 3: IOC-Überwachungspanel erstellen
Überwachen Sie die Ausbreitung von IOCs in der Umgebung:
--- Während des Vorfalls identifizierte IOCs
index=* (src_ip IN ("185.234.218.50", "45.77.123.45") OR
dest IN ("evil-c2.com", "malware-drop.com") OR
file_hash IN ("a1b2c3d4...", "e5f6a7b8..."))
earliest="2024-03-14"
| stats count AS hits, dc(src_ip) AS unique_sources,
dc(dest) AS unique_dests, latest(_time) AS last_seen
by sourcetype
| sort - hits
--- IOC-Zeitstrahl
index=* (src_ip IN ("185.234.218.50") OR dest="evil-c2.com")
earliest="2024-03-14"
| timechart span=1h count by sourcetype
--- Verfolgung neu entdeckter IOCs
| inputlookup ir_ioc_list.csv
| stats count by ioc_type, source, discovery_time
| sort discovery_time
| table discovery_time, ioc_type, ioc_value, source, status
Schritt 4: Reaktionszeitstrahl-Panel erstellen
Erstellen Sie einen chronologischen Vorfallzeitstrahl:
| inputlookup ir_timeline.csv
| sort _time
| eval phase = case(
action_type="detection", "Detection",
action_type="triage", "Triage",
action_type="containment", "Containment",
action_type="eradication", "Eradication",
action_type="recovery", "Recovery",
1=1, "Other"
)
| eval phase_color = case(
phase="Detection", "#e74c3c",
phase="Triage", "#f39c12",
phase="Containment", "#e67e22",
phase="Eradication", "#2ecc71",
phase="Recovery", "#3498db"
)
| table _time, phase, action, analyst, details
Beispiel für Zeitstrahldaten:
_time,action_type,action,analyst,details
2024-03-15 14:00,detection,Alert triggered - Cobalt Strike beacon detected,splunk_es,Notable event NE-2024-08921
2024-03-15 14:12,triage,Alert triaged - confirmed true positive,analyst_jdoe,VT score 52/72 on beacon hash
2024-03-15 14:23,containment,Host WORKSTATION-042 isolated,analyst_jdoe,CrowdStrike network isolation
2024-03-15 14:35,containment,C2 domain blocked on firewall,analyst_msmith,Palo Alto rule deployed
2024-03-15 15:00,eradication,Enterprise-wide IOC scan initiated,analyst_jdoe,Splunk search across all indices
2024-03-15 15:30,containment,3 additional hosts identified and isolated,analyst_msmith,Lateral movement confirmed
2024-03-15 16:00,eradication,Malware removed from all affected hosts,analyst_tier3,CrowdStrike RTR cleanup
2024-03-15 18:00,recovery,Systems restored and monitored,analyst_msmith,72-hour monitoring period started
Schritt 5: SOC-Betriebs-Dashboard erstellen
Verfolgen Sie übergreifende SOC-Leistungskennzahlen:
--- Vorfallvolumen nach Schweregrad (letzte 30 Tage)
index=notable earliest=-30d
| stats count by urgency
| eval order = case(urgency="critical", 1, urgency="high", 2, urgency="medium", 3,
urgency="low", 4, urgency="informational", 5)
| sort order
--- MTTD (Mean Time to Detect)
index=notable earliest=-30d status_label="Resolved*"
| eval mttd_minutes = round((time_of_first_event - orig_time) / 60, 1)
| stats avg(mttd_minutes) AS avg_mttd, median(mttd_minutes) AS med_mttd,
perc95(mttd_minutes) AS p95_mttd
--- MTTR (Mean Time to Respond/Resolve)
index=notable earliest=-30d status_label="Resolved*"
| eval mttr_hours = round((status_end - _time) / 3600, 1)
| stats avg(mttr_hours) AS avg_mttr, median(mttr_hours) AS med_mttr by urgency
--- Arbeitslastverteilung der Analysten
index=notable earliest=-7d
| stats count by owner
| sort - count
--- Aufschlüsselung des Alert-Dispositions
index=notable earliest=-30d status_label IN ("Resolved*", "Closed*")
| stats count by disposition
| eval percentage = round(count / sum(count) * 100, 1)
| sort - count
Schritt 6: Executive-Briefing-Dashboard erstellen
Erstellen Sie ein übergeordnetes Dashboard für die Führungsebene bei größeren Vorfällen:
--- Executive Summary Panel
| makeresults
| eval metrics = "Business Impact: 1 file server offline (Finance dept), "
."Estimated Recovery: 4 hours, "
."Data Loss Risk: Low (backups verified), "
."Customer Impact: None, "
."Regulatory Notification: Not required (no PII exposure confirmed)"
--- Trendvergleich (dieser Monat vs. letzter Monat)
index=notable earliest=-60d
| eval period = if(_time > relative_time(now(), "-30d"), "Current Month", "Previous Month")
| stats count by period, urgency
| chart sum(count) AS incidents by period, urgency
--- Top-Bedrohungskategorien
index=notable earliest=-30d
| top rule_name limit=10
| table rule_name, count, percent
Schritt 7: Dashboard-Updates automatisieren
Verwenden Sie geplante Splunk-Suchabfragen, um die Dashboard-Daten aktuell zu halten:
--- Geplante Suche zur Aktualisierung der Nachschlagetabelle für betroffene Systeme (alle 5 Minuten)
index=* (src_ip IN [| inputlookup ir_ioc_list.csv | search ioc_type="ip"
| fields ioc_value | rename ioc_value AS src_ip])
earliest=-1h
| stats latest(_time) AS last_seen, count AS event_count,
values(sourcetype) AS data_sources by src_ip
| eval status = if(last_seen > relative_time(now(), "-15m"), "Active", "Dormant")
| outputlookup ir_affected_systems_auto.csv
Schlüsselkonzepte
| Begriff | Definition |
|---|---|
| Gefahrenbewusstsein (Situational Awareness) | Echtzeit-Verständnis des Vorfallsumfangs, der betroffenen Systeme und des Reaktionsfortschritts |
| MTTD | Mean Time to Detect – durchschnittliche Zeit vom Auftreten der Bedrohung bis zur SOC-Alarmgenerierung |
| MTTR | Mean Time to Respond – durchschnittliche Zeit vom Alarm bis zur Lösung oder Eindämmung des Vorfalls |
| Containment Rate | Prozentsatz der erfolgreich isolierten betroffenen Systeme im Verhältnis zur Gesamtzahl der kompromittierten Systeme |
| Burn-Down-Diagramm | Visuelle Verfolgung der verbleibenden offenen Untersuchungsaufgaben im Zeitverlauf während eines Vorfalls |
| Executive Briefing | Nicht-technisches Zusammenfassungs-Dashboard mit Darstellung der geschäftlichen Auswirkungen, des Zeitstrahls und des Wiederherstellungsstatus |
Tools & Systeme
- Splunk Dashboard Studio: Modernes Dashboard-Framework mit Drag-and-Drop-Visualisierung und Echtzeitdaten
- Elastic Kibana Dashboard: Visualisierungsplattform mit Lens, Maps und Canvas für Sicherheits-Dashboards
- Grafana: Open-Source-Visualisierungsplattform, die mehrere Datenquellen unterstützt, einschließlich Elasticsearch und Splunk
- Microsoft Sentinel Workbooks: Azure-natives Dashboard-Framework mit Kusto-basierter Analyse-Visualisierung
- TheHive: Open-Source-Vorfallreaktionsplattform mit integrierter Fallverfolgung und Metrik-Dashboards
Häufige Szenarien
- Aktiver Ransomware-Vorfall: Dashboard mit Darstellung der Verschlüsselungsausbreitung, des Eindämmungsstatus, der Backup-Überprüfung und des Wiederherstellungsfortschritts
- Datenpanne-Untersuchung: Dashboard zur Verfolgung betroffener Datenspeicher, Exfiltrationsvolumen und Benachrichtigungsanforderungen
- Phishing-Kampagnen-Reaktion: Dashboard mit Empfängeranzahl, Klickrate, Gefährdung von Anmeldedaten und Sanierungsstatus
- Monatlicher SOC-Bericht: Führungs-Dashboard mit Vorfalltrends, MTTD/MTTR-Kennzahlen und Analystenleistung
- Compliance-Prüfung: Dashboard zum Nachweis der Erkennungsabdeckung, Reaktions-SLA-Einhaltung und Abschlusskennzahlen von Vorfällen
Ausgabeformat
INCIDENT RESPONSE DASHBOARD — IR-2024-0450
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STATUS: CONTAINMENT PHASE (6h 30m elapsed)
Affected Systems: Containment Progress:
Compromised: 2 [==========----------] 71%
Investigating: 1 5 of 7 systems contained
Contained: 3
Recovered: 1
IOC Summary: Response Timeline:
IPs: 4 14:00 — Alert triggered
Domains: 2 14:12 — Confirmed malicious
Hashes: 3 14:23 — First host isolated
URLs: 5 15:00 — Enterprise scan started
Emails: 1 15:30 — 3 more hosts isolated
Key Metrics:
MTTD: 12 minutes
MTTC: 23 minutes (first host)
Analysts Active: 3 (Tier 2: 2, Tier 3: 1)
Business Impact: LOW — Finance file server offline, no customer-facing systems affected