building-incident-response-dashboard
在 Splunk、Elastic 或 Grafana 中构建实时事件响应(Incident Response)仪表盘,为安全运营中心(SOC)分析师和领导层提供主动事件处理过程中的态势感知(Situational Awareness),追踪受影响系统、遏制状态、失陷指标(IOC)扩散和响应时间线。适用于 IR 团队在事件协调和事后报告期间需要统一可见性的场景。
Best use case
building-incident-response-dashboard is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
在 Splunk、Elastic 或 Grafana 中构建实时事件响应(Incident Response)仪表盘,为安全运营中心(SOC)分析师和领导层提供主动事件处理过程中的态势感知(Situational Awareness),追踪受影响系统、遏制状态、失陷指标(IOC)扩散和响应时间线。适用于 IR 团队在事件协调和事后报告期间需要统一可见性的场景。
Teams using building-incident-response-dashboard should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/building-incident-response-dashboard/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How building-incident-response-dashboard Compares
| Feature / Agent | building-incident-response-dashboard | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
在 Splunk、Elastic 或 Grafana 中构建实时事件响应(Incident Response)仪表盘,为安全运营中心(SOC)分析师和领导层提供主动事件处理过程中的态势感知(Situational Awareness),追踪受影响系统、遏制状态、失陷指标(IOC)扩散和响应时间线。适用于 IR 团队在事件协调和事后报告期间需要统一可见性的场景。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 构建事件响应仪表盘
## 适用场景
在以下情况使用本技能:
- IR 团队在主动事件处理期间需要实时仪表盘进行协调和跟踪
- SOC 领导层需要展示事件状态和分析师工作负载的运营仪表盘
- 事后审查需要可视化时间线和影响评估
- 高管汇报需要高级别的事件指标和趋势分析
**不适用于**日常 SOC 监控仪表盘(应使用事件审查功能)——IR 仪表盘专为主动事件协调和管理报告而设计。
## 前置条件
- SIEM 平台(带有 Dashboard Studio 的 Splunk、Elastic Kibana 或 Grafana)
- SIEM 中的重要事件和事件数据(Splunk ES incident_review 索引)
- 用于修复跟踪的工单系统集成(ServiceNow、Jira)
- 用于上下文丰富的资产和身份查找表
- 面向 SOC 团队和管理层分发的仪表盘发布访问权限
## 工作流程
### 步骤 1:设计主动事件仪表盘布局
构建 Splunk Dashboard Studio 仪表盘用于主动事件跟踪:
```xml
<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:构建实时受影响系统面板
跟踪受影响系统及其遏制状态:
```spl
| 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 在环境中的扩散:
```spl
--- 事件期间识别的 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:构建响应时间线面板
创建按时间顺序排列的事件时间线:
```spl
| 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, "其他"
)
| 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
```
时间线数据示例:
```csv
_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 性能指标:
```spl
--- 按严重性划分的事件量(过去 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:构建高管汇报仪表盘
在重大事件期间为领导层创建高级别仪表盘:
```spl
--- 高管摘要面板
| makeresults
| eval metrics = "业务影响:1 台文件服务器离线(财务部门),"
."预计恢复:4 小时,"
."数据丢失风险:低(备份已验证),"
."客户影响:无,"
."监管通知:不需要(未确认 PII 暴露)"
--- 趋势对比(本月与上月)
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 计划搜索维护仪表盘数据:
```spl
--- 计划搜索:更新受影响系统查找表(每 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
```
## 核心概念
| 术语 | 定义 |
|------|-----------|
| **态势感知(Situational Awareness)** | 实时了解事件范围、受影响系统和响应进展 |
| **MTTD** | 平均检测时间(Mean Time to Detect)——从威胁发生到 SOC 告警生成的平均时间 |
| **MTTR** | 平均响应时间(Mean Time to Respond)——从告警到事件解决或遏制的平均时间 |
| **遏制率(Containment Rate)** | 相对于已被攻陷的系统总数,成功隔离的受影响系统百分比 |
| **燃尽图(Burn-Down Chart)** | 事件期间随时间推移跟踪剩余未完成调查任务的可视化图表 |
| **高管汇报(Executive Briefing)** | 显示业务影响、时间线和恢复状态的非技术性摘要仪表盘 |
## 工具与系统
- **Splunk Dashboard Studio**:具有拖放可视化和实时数据的现代仪表盘框架
- **Elastic Kibana Dashboard**:具有 Lens、Maps 和 Canvas 的可视化平台,用于安全仪表盘
- **Grafana**:支持包括 Elasticsearch 和 Splunk 在内的多种数据源的开源可视化平台
- **Microsoft Sentinel Workbooks**:基于 Kusto 的分析可视化的 Azure 原生仪表盘框架
- **TheHive**:开源事件响应平台,具有内置案例跟踪和指标仪表盘
## 常见场景
- **主动勒索软件事件**:显示加密扩散、遏制状态、备份验证和恢复进展的仪表盘
- **数据泄露调查**:跟踪受影响数据存储、外泄(Exfiltration)量和通知要求的仪表盘
- **钓鱼(Phishing)攻击活动响应**:显示收件人数量、点击率、凭据暴露和修复状态的仪表盘
- **月度 SOC 报告**:具有事件趋势、MTTD/MTTR 指标和分析师绩效的领导层仪表盘
- **合规审计**:演示检测覆盖率、响应 SLA 合规性和事件关闭指标的仪表盘
## 输出格式
```
事件响应仪表盘 — IR-2024-0450
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
状态:遏制阶段(已历时 6 小时 30 分钟)
受影响系统: 遏制进度:
已攻陷: 2 [==========----------] 71%
调查中: 1 7 个系统中已遏制 5 个
已遏制: 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 人(Tier 2:2 人,Tier 3:1 人)
业务影响:低 — 财务文件服务器离线,无面向客户的系统受影响
```Related Skills
triaging-security-incident
使用 NIST SP 800-61r3 和 SANS PICERL 框架对安全事件进行初始分类,确定严重性、范围和所需响应行动。 按类型对事件分类,根据业务影响分配优先级,并路由到相应的响应团队。适用于事件分类、 安全告警分类、严重性评估、事件优先级排序或初始事件分析等请求场景。
triaging-security-incident-with-ir-playbook
使用结构化 IR Playbook 对安全事件进行分类和优先排序,确定严重性、分配响应团队并启动适当的响应程序。
performing-ransomware-response
执行结构化的勒索软件事件响应,从初始检测到遏制、取证分析、解密评估、恢复和事后加固。 处理勒索谈判考量、备份完整性验证和法规通知要求。适用于勒索软件响应、 勒索软件恢复、加密勒索软件、数据加密攻击、赎金支付决策或勒索软件遏制等请求场景。
performing-ransomware-incident-response
执行结构化的勒索软件事件响应,包括遏制、解密评估、从备份恢复以及根除勒索软件持久化机制。
performing-cloud-incident-containment-procedures
在 AWS、Azure 和 GCP 中执行云原生事件遏制,包括隔离受攻陷资源、撤销凭据、保全取证证据,以及应用安全组限制以防止横向移动。
investigating-phishing-email-incident
调查钓鱼(Phishing)邮件事件,从初始用户举报开始,经过邮件头分析、URL/附件引爆、 受影响用户识别和遏制行动,使用 Splunk、Microsoft Defender 和沙箱分析平台等 SOC 工具。 适用于收到的钓鱼邮件举报需要进行完整事件调查以确定范围和影响时。
implementing-ticketing-system-for-incidents
实施集成事件工单系统,将 SIEM 告警对接 ServiceNow、Jira 或 TheHive, 用于结构化事件跟踪、SLA 管理、升级工作流和合规文档记录。 适用于 SOC 团队需要通过自动化工单创建、分配路由和解决跟踪来规范事件生命周期管理时。
implementing-ot-incident-response-playbook
按照SANS PICERL框架、IEC 62443和NIST SP 800-82,开发并实施OT专用事件响应剧本,解决包括安全关键系统、有限停机容忍度以及IT SOC、OT工程和工厂运营团队协调等ICS特有挑战。
conducting-post-incident-lessons-learned
主持结构化的事件后审查,以识别根本原因、记录有效和无效的措施,并提出可操作的改进建议以提升未来的事件响应能力。
conducting-phishing-incident-response
通过分析举报的邮件、提取指标、评估凭据受攻陷情况、在全组织范围隔离恶意邮件并修复受影响账号来响应网络钓鱼事件。涵盖邮件头分析、URL/附件沙箱检测和邮箱范围清除操作。适用于网络钓鱼响应、邮件事件、凭据钓鱼、鱼叉式网络钓鱼调查或钓鱼修复相关请求。
conducting-malware-incident-response
响应企业端点的恶意软件感染,识别恶意软件家族、确定感染向量、评估传播范围,并执行根除程序。涵盖从检测到遏制、分析、清除和恢复的完整生命周期。适用于恶意软件响应、恶意软件根除、木马清除、蠕虫遏制、恶意软件分类或受感染端点修复相关请求。
conducting-cloud-incident-response
响应云环境(AWS、Azure、GCP)中的安全事件,执行基于身份的遏制、云原生日志分析、资源隔离和针对临时云基础设施的取证证据采集。适用于云事件响应、AWS 安全事件、Azure 受攻陷、GCP 泄露、云取证或云身份受攻陷相关请求。