# Performing Alert Triage With Elastic Siem

> 在 Elastic Security SIEM 中执行系统化的告警分诊，快速分类、优先排序和调查安全告警，以支持 SOC 运营。

- Skill: `killvxk/performing-alert-triage-with-elastic-siem` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/performing-alert-triage-with-elastic-siem`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/performing-alert-triage-with-elastic-siem/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/performing-alert-triage-with-elastic-siem

---


# 使用 Elastic SIEM 执行告警分诊

## 概述

Elastic Security 中的告警分诊（Alert Triage）是对安全告警进行审查、分类和优先排序的系统化流程，旨在判断哪些告警代表真实威胁。Elastic 的 AI 驱动攻击发现（Attack Discovery）功能可将数百个告警归并为离散的攻击链，但熟练分析师的人工分诊仍不可或缺。使用 Elastic 内置工具，结构化分诊工作流通常每个告警簇耗时 5-10 分钟。

## 前置条件

- 已部署 Elastic Security（版本 8.x 或更高）
- 已为端点和网络数据采集配置 Elastic Agent 或 Beats
- 检测规则已启用并正在生成告警
- 各数据源符合 Elastic Common Schema（ECS）规范
- 分析师具备访问 Kibana Security 应用的相应权限

## 告警分诊工作流程

### 步骤 1：初步告警评估（2 分钟）

在 Elastic Security 中查看告警时，检查告警详情面板：

```
告警详情面板：
- Rule Name and Description
- Severity and Risk Score
- MITRE ATT&CK Mapping
- Host and User Context
- Process Tree (for endpoint alerts)
- Timeline of related events
```

#### 优先检查的关键字段

| 字段 | 用途 | ECS 字段 |
|---|---|---|
| 规则严重性 | 初步优先级评估 | `kibana.alert.severity` |
| 风险评分 | 量化威胁级别 | `kibana.alert.risk_score` |
| 主机名 | 受影响系统 | `host.name` |
| 用户名 | 受影响身份 | `user.name` |
| 进程名 | 执行进程 | `process.name` |
| 源 IP | 活动来源 | `source.ip` |
| 目标 IP | 活动目标 | `destination.ip` |
| MITRE 战术 | 攻击阶段 | `threat.tactic.name` |

### 步骤 2：上下文收集（3 分钟）

#### 使用 ES|QL 查询相关事件

```esql
FROM logs-endpoint.events.*
| WHERE host.name == "affected-host" AND @timestamp > NOW() - 1 HOUR
| STATS count = COUNT(*) BY event.category, event.action
| SORT count DESC
```

#### 查找可疑用户的所有活动

```esql
FROM logs-*
| WHERE user.name == "suspicious-user" AND @timestamp > NOW() - 24 HOURS
| STATS count = COUNT(*), unique_hosts = COUNT_DISTINCT(host.name) BY event.category
| SORT count DESC
```

#### 检查来自同一来源的相关告警

```esql
FROM .alerts-security.alerts-default
| WHERE source.ip == "10.0.0.50" AND @timestamp > NOW() - 24 HOURS
| STATS alert_count = COUNT(*) BY kibana.alert.rule.name, kibana.alert.severity
| SORT alert_count DESC
```

#### 调查来自同一 IP 的横向移动

```esql
FROM logs-system.auth-*
| WHERE source.ip == "10.0.0.50" AND event.outcome == "success"
| STATS login_count = COUNT(*), hosts = COUNT_DISTINCT(host.name) BY user.name
| WHERE hosts > 3
```

### 步骤 3：威胁情报富化（2 分钟）

对照威胁情报检查指标：

```esql
FROM logs-ti_*
| WHERE threat.indicator.ip == "203.0.113.50"
| KEEP threat.indicator.type, threat.indicator.provider, threat.indicator.confidence, threat.feed.name
```

#### 对照已知威胁检查文件哈希

```esql
FROM logs-endpoint.events.file-*
| WHERE file.hash.sha256 == "abc123..."
| STATS occurrences = COUNT(*) BY host.name, file.path, user.name
```

### 步骤 4：分类决策（2 分钟）

| 分类 | 判断标准 | 处理措施 |
|---|---|---|
| 真阳性（True Positive） | 已确认的恶意活动 | 升级为事件，开始遏制 |
| 良性真阳性（Benign True Positive） | 符合规则的预期行为 | 在告警备注中记录，确认关闭 |
| 假阳性（False Positive） | 规则对良性活动触发 | 标记为假阳性，创建调优任务 |
| 待调查（Needs Investigation） | 数据不足以做出判断 | 指派进行深入调查 |

### 步骤 5：记录与升级（1 分钟）

对每个分诊后的告警，记录：
- 分类决策及理由
- 已审查的证据制品
- 相关告警或调查
- 建议的后续步骤

## 用于分诊的检测规则

### 预置检测规则

Elastic Security 包含 1000+ 条预置检测规则，按以下维度组织：
- **MITRE ATT&CK 战术**：初始访问、执行、持久化等
- **平台**：Windows、Linux、macOS、云
- **数据源**：端点、网络、云、身份

### 自定义告警关联规则

```json
{
  "name": "Multiple Failed Logins Followed by Success",
  "type": "threshold",
  "query": "event.category:authentication AND event.outcome:failure",
  "threshold": {
    "field": ["source.ip", "user.name"],
    "value": 5,
    "cardinality": [
      {
        "field": "user.name",
        "value": 3
      }
    ]
  },
  "severity": "high",
  "risk_score": 73,
  "threat": [
    {
      "framework": "MITRE ATT&CK",
      "tactic": {
        "id": "TA0006",
        "name": "Credential Access"
      },
      "technique": [
        {
          "id": "T1110",
          "name": "Brute Force"
        }
      ]
    }
  ]
}
```

## AI 辅助分诊

### Elastic AI Assistant 集成

1. 在 Elastic Security 中打开告警
2. 点击 AI Assistant 面板
3. 使用快捷提示：
   - "Summarize this alert" - 获取初步评估
   - "Generate ES|QL query to find related activity" - 扩展调查范围
   - "What are the recommended response actions?" - 获取响应手册指引
   - "Is this likely a false positive?" - 获取 AI 置信度评估

### 攻击发现（Attack Discovery）

Elastic 的 Attack Discovery 自动执行以下操作：
- 将相关告警归组为攻击链
- 将告警映射到 MITRE ATT&CK 杀伤链阶段
- 使用机器学习模型过滤假阳性
- 基于业务影响进行优先级排序
- 提供攻击的叙述性摘要

## 分诊优先级矩阵

| 风险评分 | 严重性 | 资产关键性 | 响应 SLA |
|---|---|---|---|
| 90-100 | 严重 | 高 | 15 分钟 |
| 70-89 | 高 | 高 | 30 分钟 |
| 70-89 | 高 | 中 | 1 小时 |
| 50-69 | 中 | 任意 | 4 小时 |
| 21-49 | 低 | 任意 | 8 小时 |
| 1-20 | 信息 | 任意 | 24 小时 |

## 分诊指标与 KPI

| 指标 | 目标值 | 计量方式 |
|---|---|---|
| 平均分诊时间（MTTT） | < 10 分钟 | 从告警创建到分类完成的时间 |
| 假阳性率 | < 30% | 假阳性数 / 告警总数 |
| 升级率 | 10-20% | 已升级告警数 / 告警总数 |
| 告警覆盖率 | > 80% | 已分诊告警数 / 每班产生告警数 |
| 重新分类率 | < 5% | 变更分类数 / 已分类总数 |

## 参考资料

- [Elastic Security - 告警分诊文档](https://www.elastic.co/docs/solutions/security/ai/triage-alerts)
- [SOC 分析师 Elastic 分诊指南](https://systemweakness.com/from-alert-to-action-a-soc-analysts-guide-to-triage-with-elastic-%EF%B8%8F-4e5354ab5da9)
- [Elastic 博客 - AI 与 2025 SIEM 格局](https://www.elastic.co/blog/ai-siem-landscape)
- [使用 Elastic 和 Tines 减少假阳性](https://www.elastic.co/blog/false-positives-automated-siem-investigations-elastic-tines)

