关于 building-incident-response-dashboard
该技能指导事件响应团队构建用于活动事件协调和管理汇报的仪表板,适用于 SOC 分析人员与管理层。内容包括受影响系统、IOC、响应时间线、运营指标及高层简报视图。
主要功能
- 01展示受影响系统及遏制状态
- 02追踪 IOC 在环境中的传播
- 03呈现事件响应时间线
- 04汇总 SOC 运营指标
- 05提供管理层事件简报
适用场景
- 01协调勒索软件事件处置
- 02跟踪数据泄露调查进展
- 03监控钓鱼活动响应和修复
- 04整理 SOC 月度指标报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill building-incident-response-dashboard安装后在 Claude Code 中输入/building-incident-response-dashboard确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSESKILL.es.mdreferences/api-reference.mdscripts/agent.py详细介绍
构建事件响应仪表盘
何时使用
在以下情况下使用此技能:
- IR 团队在活跃事件期间需要实时仪表盘以进行协调和跟踪
- SOC 领导层需要展示事件状态和分析师工作量的运营仪表盘
- 事件后复盘需要可视化时间线和影响评估
- 高管简报需要高层级的事件指标和趋势分析
不要用于日常 SOC 监控仪表盘(请改用 Incident Review)——IR 仪表盘专为活跃事件协调和管理层报告而设计。
前提条件
- SIEM 平台(带 Dashboard Studio 的 Splunk、Elastic Kibana 或 Grafana)
- SIEM 中的重大事件和事件数据(Splunk ES incident_review 索引)
- 工单系统集成(ServiceNow、Jira)用于修复跟踪
- 用于上下文补充的资产和身份查找表
- 仪表盘发布权限,以便向 SOC 团队和管理层分发
工作流
步骤 1:设计活跃事件仪表盘布局
为活跃事件跟踪构建 Splunk Dashboard Studio 仪表盘:
<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>
步骤 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
--- Detailed host table
| 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 在环境中的传播:
--- IOCs identified during incident
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 timeline
index=* (src_ip IN ("185.234.218.50") OR dest="evil-c2.com")
earliest="2024-03-14"
| timechart span=1h count by sourcetype
--- New IOC discovery tracking
| 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,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
步骤 5:构建 SOC 运营仪表盘
跟踪整体 SOC 性能指标:
--- Incident volume by severity (last 30 days)
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
--- Analyst workload distribution
index=notable earliest=-7d
| stats count by owner
| sort - count
--- Alert disposition breakdown
index=notable earliest=-30d status_label IN ("Resolved*", "Closed*")
| stats count by disposition
| eval percentage = round(count / sum(count) * 100, 1)
| sort - count
步骤 6:构建高管简报仪表盘
为重大事件期间的管理层创建高层级仪表盘:
--- 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)"
--- Trend comparison (this month vs last month)
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 threat categories
index=notable earliest=-30d
| top rule_name limit=10
| table rule_name, count, percent
步骤 7:自动化仪表盘更新
使用 Splunk 计划搜索维护仪表盘数据:
--- Scheduled search to update affected systems lookup (runs every 5 minutes)
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 合规性和事件关闭指标
输出格式
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
评论
支持 Markdown