Communitygithub.com

构建事件响应仪表板

在 Splunk、Elastic 或 Grafana 中构建实时事件响应仪表板。

构建事件响应仪表板 是什么?

该技能专注于为安全运营中心(SOC)和事件响应(IR)团队构建实时事件响应仪表板,支持 Splunk Dashboard Studio、Elastic Kibana 和 Grafana 等主流 SIEM 平台。它提供了一套完整的工作流,用于设计主动事件跟踪仪表板、构建实时受影响系统面板、追踪 IOC 传播情况、创建响应时间线,以及开发 SOC 运营和行政简报仪表板。该技能通过 SPL 查询、查找表、定时搜索和自动化机制,帮助团队实时掌握事件范围、受控状态、分析人员工作负载和关键性能指标(如 MTTD/MTTR)。它特别适合活跃的安全事件(如勒索软件、数据泄露、钓鱼活动)响应、月度 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 的新对话。

文档

构建事件响应仪表板 是做什么的?

何时使用

在以下情况下使用此技能:

  • 事件响应团队在活跃事件期间需要实时仪表板进行协调和跟踪
  • SOC 领导层需要展示事件状态和分析人员工作负载的运营仪表板
  • 事后复盘需要可视化时间线和影响评估
  • 向管理层汇报时需要高级别的事件指标和趋势分析

不要在常规 SOC 监控仪表板中使用(应使用事件审核功能)——事件响应仪表板专为实时事件协调和管理报告设计。

前提条件

  • SIEM 平台(Splunk 且含 Dashboard Studio、Elastic Kibana 或 Grafana)
  • SIEM 中已有 Notable 事件和事件数据(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", "检测",
    action_type="triage", "分类",
    action_type="containment", "遏制",
    action_type="eradication", "清除",
    action_type="recovery", "恢复",
    1=1, "其他"
  )
| eval phase_color = case(
    phase="检测", "#e74c3c",
    phase="分类", "#f39c12",
    phase="遏制", "#e67e22",
    phase="清除", "#2ecc71",
    phase="恢复", "#3498db"
  )
| table _time, phase, action, analyst, details

示例时间线数据:

_time,action_type,action,analyst,details
2024-03-15 14:00,detection,告警触发 - 检测到 Cobalt Strike 信标,splunk_es,Notable 事件 NE-2024-08921
2024-03-15 14:12,triage,告警分类 - 确认真阳性,analyst_jdoe,信标哈希 VT 评分 52/72
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"), "活跃", "静默")
| 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          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(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,

相关技能