Communitygithub.com

事件回應儀表板建置

在 Splunk、Elastic 或 Grafana 中建置即時事件回應儀表板,用於協調、追蹤與管理報告。

事件回應儀表板建置 是什麼?

這項技能專為資安事件應變 (IR) 團隊設計,可在 Splunk、Elastic Kibana 或 Grafana 等 SIEM 平台中建立即時的事件回應儀表板。其主要用途是支援正在進行中的事件,提供事件摘要、受影響系統的隔離狀態、IOC 散佈情況、應變時間軸以及 SOC 營運指標等視覺化面板。此技能也涵蓋了建置高階主管簡報儀表板、自動化儀表板更新排程,以及輸出統一的文字格式摘要。它特別強調與事件處理流程的深度整合,例如使用 Splunk 的 `ir_affected_systems.csv` 查閱檔案和排程搜尋來維持資料的即時性。對於需要在上級簡報或事後檢討中呈現事件全貌的 SOC 管理層或紅隊成員來說,這項工具能顯著提升溝通效率與態勢感知能力。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/building-incident-response-dashboard

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

建置事件回應儀表板

使用時機

在以下情況使用此技能:

  • IR 團隊在進行中的事件期間,需要即時儀表板進行協調與追蹤
  • SOC 領導階層需要呈現事件狀態和分析師工作量的營運儀表板
  • 事後檢討需要視覺化的時間軸與影響評估
  • 高階主管簡報需要高層級的事件指標與趨勢分析

請勿將此用於日常 SOC 監控儀表板(請改用 Incident Review)——IR 儀表板專為進行中事件的協調與管理報告而設計。

先決條件

  • SIEM 平台(Splunk Dashboard Studio、Elastic Kibana 或 Grafana)
  • SIEM 中的 Notable Event 和事件資料(Splunk ES incident_review 索引)
  • 工單系統整合(ServiceNow、Jira)以進行補救追蹤
  • 用於脈絡強化的資產與身分查詢表格
  • 儀表板發布權限,以便分發給 SOC 團隊與管理階層

工作流程

步驟 1:設計進行中事件儀表板佈局

使用 Splunk Dashboard Studio 建置進行中事件追蹤儀表板:

<dashboard version="2" theme="dark">
  <label>進行中事件回應儀表板</label>
  <description>IR-2024-0450 即時追蹤</description>

  <row>
    <panel>
      <title>事件摘要</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>

步驟 2:建置即時受影響系統面板

追蹤受影響系統及其隔離狀態:

| 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

--- 詳細主機表格
| 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

步驟 3:建置 IOC 追蹤面板

監控 IOC 在環境中的散佈情況:

--- 事件期間識別出的 IOC
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 時間軸
index=* (src_ip IN ("185.234.218.50") OR dest="evil-c2.com")
earliest="2024-03-14"
| timechart span=1h count by sourcetype

--- 新 IOC 發現追蹤
| 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

步驟 4:建置應變時間軸面板

建立按時間順序排列的事件時間軸:

| 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

範例時間軸資料:

_time,action_type,action,analyst,details
2024-03-15 14:00,detection,警報觸發 - 檢測到 Cobalt Strike 信標,splunk_es,Notable event NE-2024-08921
2024-03-15 14:12,triage,警報分級 - 確認為真陽性,analyst_jdoe,VT score 52/72 on beacon hash
2024-03-15 14:23,containment,主機 WORKSTATION-042 已隔離,analyst_jdoe,CrowdStrike 網路隔離
2024-03-15 14:35,containment,防火牆已封鎖 C2 網域,analyst_msmith,Palo Alto 規則已部署
2024-03-15 15:00,eradication,啟動全企業 IOC 掃描,analyst_jdoe,Splunk 搜尋所有索引
2024-03-15 15:30,containment,識別並隔離 3 台額外主機,analyst_msmith,已確認橫向移動
2024-03-15 16:00,eradication,已從所有受影響主機移除惡意軟體,analyst_tier3,CrowdStrike RTR 清理
2024-03-15 18:00,recovery,系統已還原並開始監控,analyst_msmith,已啟動 72 小時監控期

步驟 5:建置 SOC 營運儀表板

追蹤整體 SOC 績效指標:

--- 依嚴重性分類的事件數量(過去 30 天)
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(平均偵測時間)
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(平均應變/解決時間)
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

--- 分析師工作量分配
index=notable earliest=-7d
| stats count by owner
| sort - count

--- 警報處置分類
index=notable earliest=-30d status_label IN ("Resolved*", "Closed*")
| stats count by disposition
| eval percentage = round(count / sum(count) * 100, 1)
| sort - count

步驟 6:建置高階主管簡報儀表板

為重大事件期間的管理階層建立高層級儀表板:

--- 高階主管摘要面板
| makeresults
| eval metrics = "業務影響:1 台檔案伺服器離線(財務部門),"
                ."預計恢復時間:4 小時,"
                ."資料遺失風險:低(備份已驗證),"
                ."客戶影響:無,"
                ."法規通報:不需要(已確認無 PII 外洩)"

--- 趨勢比較(本月 vs 上月)
index=notable earliest=-60d
| eval period = if(_time > relative_time(now(), "-30d"), "本月", "上月")
| stats count by period, urgency
| chart sum(count) AS incidents by period, urgency

--- 主要威脅類別
index=notable earliest=-30d
| top rule_name limit=10
| table rule_name, count, percent

步驟 7:自動化儀表板更新

使用 Splunk 排程搜尋來維護儀表板資料:

--- 排程搜尋以更新受影響系統查閱檔案(每 5 分鐘執行一次)
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

關鍵概念

術語定義
態勢感知即時了解事件範圍、受影響系統與應變進度
MTTD平均偵測時間 — 從威脅發生到 SOC 警報產生的平均時間
MTTR平均應變時間 — 從警報產生到事件解決或隔離的平均時間
隔離率成功隔離的受影響系統相對於總受損系統的百分比
燃盡圖事件期間,隨時間推移追蹤剩餘開放調查任務的視覺化圖表
高階主管簡報非技術性的摘要儀表板,顯示業務影響、時間軸與恢復狀態

工具與系統

  • Splunk Dashboard Studio:現代儀表板框架,具備拖放式視覺化與即時資料功能
  • Elastic Kibana Dashboard:視覺化平台,提供 Lens、Maps 和 Canvas 以建置安全儀表板
  • Grafana:開放原始碼視覺化平台,支援包括 Elasticsearch 和 Splunk 在內的多種資料來源
  • Microsoft Sentinel Workbooks:Azure 原生儀表板框架,搭配以 Kusto 為基礎的分析視覺化
  • TheHive:開放原始碼事件回應平台,內建案件追蹤與指標儀表板

常見場景

  • 進行中的勒索軟體事件:顯示加密散佈、隔離狀態、備份驗證、恢復進度的儀表板
  • 資料外洩調查:追蹤受影響資料儲存庫、外洩量、通報要求的儀表板
  • 釣魚郵件活動應變:顯示收件人數、點擊率、憑證外洩、補救狀態的儀表板
  • 每月 SOC 報告:顯示事件趨勢、MTTD/MTTR 指標、分析師績效的管理儀表板
  • 合規稽核:展示偵測覆蓋率、應變 SLA 遵循情況及事件結案指標的儀表板

輸出格式

事件回應儀表板 — IR-2024-0450
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

狀態:隔離階段(已過 6 小時 30 分)

受影響系統:               隔離進度:
  已受損:   2              [==========----------] 71%
  調查中:   1              5 / 7 個系統已隔離
  已隔離:   3
  已恢復:   1

IOC 摘要:                  應變時間軸:
  IP:      4               14:00 — 警報觸發
  網域:    2               14:12 — 確認惡意
  雜湊值:  3               14:23 — 第一台主機隔離
  URL:     5               15:00 — 啟動企業掃描
  電子郵件:1               15:30 — 再隔離 3 台主機

關鍵指標:
  MTTD:    12 分鐘
  MTTC:    23 分鐘(第一台主機)
  活躍分析師:3 人(第 2 級:2 人,第 3 級:1 人)

業務影響:低 — 財務部門檔案伺服器離線,無面向客戶的系統受影響

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

相關技能