# Triaging Security Alerts In Splunk

> 在 Splunk Enterprise Security 中对安全告警进行分类，通过 SPL 查询和事件审查（Incident Review） 仪表板对重要事件进行严重性分类、调查、关联相关遥测并做出升级或关闭决策。 适用于 SOC 分析师需要处理关联搜索产生的告警队列、确定调查优先级， 或需要为交接给二/三级分析师记录分类决策时。

- Skill: `killvxk/triaging-security-alerts-in-splunk` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add killvxk/triaging-security-alerts-in-splunk`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/triaging-security-alerts-in-splunk/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/triaging-security-alerts-in-splunk

---

# 在 Splunk 中对安全告警进行分类

## 适用场景

以下情况使用本技能：
- SOC 一级分析师需要处理 Splunk Enterprise Security（ES）中的事件审查队列
- 重要事件需要在升级前快速完成严重性分类和初步调查
- 告警量超过处理能力，分析师需要系统化的分类方法
- 管理层要求统计告警处置（真阳性、误报、良性）相关指标

**不适用于**深度取证调查——在初步分类确认存在恶意活动后应升级至二/三级处理。

## 前置条件

- Splunk Enterprise Security 7.x+，已配置事件审查（Incident Review）仪表板
- 已 CIM 归一化的数据源（Windows 事件日志、防火墙、代理、终端）
- 具有 `ess_analyst` 权限以更新重要事件状态
- 熟悉 SPL（搜索处理语言）

## 工作流程

### 步骤 1：访问事件审查并确定队列优先级

在 Splunk ES 中打开事件审查仪表板。按紧急度（由严重性 × 优先级计算得出）对重要事件进行排序。应用过滤器聚焦于未分配事件：

```spl
| `notable`
| search status="new" OR status="unassigned"
| sort - urgency
| table _time, rule_name, src, dest, user, urgency, status
| head 50
```

优先处理严重（Critical）和高（High）紧急度事件。按 `src` 或 `dest` 将相关告警分组，识别攻击链，而非单独处理每个告警。

### 步骤 2：调查重要事件上下文

对于每个重要事件，深入查看原始事件。以暴力破解告警为例：

```spl
index=wineventlog sourcetype="WinEventLog:Security" EventCode=4625
src_ip="192.168.1.105"
earliest=-1h latest=now
| stats count by src_ip, dest, user, status
| where count > 10
| sort - count
```

检查源 IP 是否为内部 IP（横向移动）或外部 IP（外围攻击）。与资产和身份查找表交叉关联：

```spl
| `notable`
| search rule_name="Brute Force Access Behavior Detected"
| lookup asset_lookup_by_cidr ip AS src OUTPUT category, owner, priority
| lookup identity_lookup_expanded identity AS user OUTPUT department, managedBy
| table _time, src, dest, user, category, owner, department
```

### 步骤 3：跨数据源关联

检查同一来源是否出现在其他遥测数据中：

```spl
index=proxy OR index=firewall src="192.168.1.105" earliest=-24h
| stats count by index, sourcetype, action, dest_port
| sort - count
```

寻找佐证：同一 IP 是否也触发了 DNS 异常、代理阻断或终端检测告警？

```spl
index=main sourcetype="cisco:asa" src="192.168.1.105" action=blocked earliest=-24h
| timechart span=1h count by dest_port
```

### 步骤 4：检查威胁情报丰富化

在威胁情报框架中查询已知 IOC：

```spl
| `notable`
| search search_name="Threat - Threat Intelligence Match - Rule"
| lookup threat_intel_by_ip ip AS src OUTPUT threat_collection, threat_description, threat_key
| table _time, src, dest, threat_collection, threat_description, weight
| where weight >= 3
```

针对域名查询威胁列表：

```spl
| tstats count from datamodel=Web where Web.url="*evil-domain.com*" by Web.src, Web.url, Web.status
| rename Web.* AS *
```

### 步骤 5：对告警进行分类和处置

在事件审查中更新重要事件状态：

| 处置 | 判定标准 | 处置动作 |
|------|----------|----------|
| **真阳性（True Positive）** | 佐证证据确认存在恶意活动 | 升级至二级，创建事件工单 |
| **良性真阳性（Benign True Positive）** | 告警正确触发但活动经过授权（如渗透测试） | 带注释关闭，如重复出现则添加抑制规则 |
| **误报（False Positive）** | 告警逻辑匹配了良性行为 | 关闭，调整关联搜索，记录模式 |
| **待定（Undetermined）** | 数据不足以完成分类 | 带调查备注分配给二级分析师 |

通过 Splunk ES 界面或 REST API 更新：

```spl
| sendalert update_notable_event param.status="2" param.urgency="critical"
  param.comment="已确认来自被入侵工作站的暴力破解。已升级至 IR-2024-0431。"
  param.owner="analyst_jdoe"
```

### 步骤 6：记录分类发现

在重要事件注释字段中记录：
- 涉及的源/目标
- 已检查的数据源
- 关联发现（相关告警、威胁情报匹配）
- 处置依据
- 升级的后续步骤

```spl
| `notable`
| search rule_name="Brute Force*" status="closed"
| stats count by status_label, disposition
| addtotal
```

### 步骤 7：追踪分类指标

随时间监控分类效率：

```spl
| `notable`
| where status_end > 0
| eval triage_time = status_end - _time
| stats avg(triage_time) AS avg_triage_sec, median(triage_time) AS med_triage_sec,
        count by rule_name, status_label
| eval avg_triage_min = round(avg_triage_sec/60, 1)
| sort - count
| table rule_name, status_label, count, avg_triage_min
```

## 核心概念

| 术语 | 定义 |
|------|------|
| **重要事件（Notable Event）** | Splunk ES 关联搜索在满足定义的风险或阈值条件时生成的告警 |
| **紧急度（Urgency）** | 综合事件严重性与资产/身份优先级计算得出的字段（严重/高/中/低/信息） |
| **关联搜索（Correlation Search）** | 定时运行的 SPL 查询，检测威胁模式并在条件匹配时生成重要事件 |
| **CIM** | 通用信息模型——Splunk 规范化字段命名约定，支持跨源查询 |
| **处置（Disposition）** | 告警的最终分类：真阳性、误报、良性真阳性或待定 |
| **MTTD/MTTR** | 平均检测时间/平均响应时间——衡量检测和处置速度的关键 SOC 指标 |

## 工具与系统

- **Splunk Enterprise Security**：提供事件审查仪表板、关联搜索和风险驱动告警的 SIEM 平台
- **Splunk SOAR（Phantom）**：自动化分类 Playbook 和丰富化动作的编排平台
- **资产与身份框架**：Splunk ES 查找表，将 IP 映射到资产所有者，将用户映射到所属部门以提供上下文丰富化
- **威胁情报框架**：Splunk ES 模块，接收 STIX/TAXII 订阅并将 IOC 与重要事件进行匹配

## 常见场景

- **暴力破解告警**：将 EventCode 4625（登录失败）与来自同一来源的 4624（登录成功）关联，判断攻击是否成功
- **恶意软件检测**：将终端 AV 告警与代理日志交叉关联，确认 C2 回调
- **数据渗漏告警**：根据 DLP 和代理日志对比用户基线，检查出站数据量
- **权限提升**：将非管理员用户的 EventCode 4672（分配特殊权限）与 4720（账户创建）关联
- **横向移动**：追踪单一来源向多个目标的 EventCode 4648（显式凭据登录）

## 输出格式

```
分类报告 — 重要事件 #NE-2024-08921
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
告警：        Brute Force Access Behavior Detected
时间：        2024-03-15 14:23:07 UTC
来源：        192.168.1.105（WORKSTATION-042，财务部）
目标：        10.0.5.20（DC-PRIMARY，域控制器）
用户：        jsmith（财务分析师）

调查：
  - 12 分钟内来自该来源的 847 次登录失败（4625）
  - 暴力破解后在 14:35:02 成功登录（4624）
  - 过去 24 小时内该来源无代理/DNS 异常
  - 来源 IP 不在威胁情报列表中

处置：  真阳性 — 凭据被入侵
动作：  已升级至二级，创建工单 IR-2024-0431
        账号 jsmith 已禁用，等待密码重置
```

