# Mapping Mitre Attack Techniques

> 将观察到的对手行为、安全告警和检测规则映射到 MITRE ATT&CK 技术和子技术，以量化检测覆盖率并指导控制优先级。当构建基于 ATT&CK 的覆盖热图、为 SIEM 告警标记技术 ID、将安全控制与对手攻击手册对齐，或向高层报告威胁暴露时使用。适用于涉及 ATT&CK Navigator、Sigma 规则、MITRE D3FEND 或覆盖缺口分析的请求。

- Skill: `killvxk/mapping-mitre-attack-techniques` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add killvxk/mapping-mitre-attack-techniques`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/mapping-mitre-attack-techniques/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/mapping-mitre-attack-techniques

---

# 映射 MITRE ATT&CK 技术

## 适用场景

在以下情况下使用本技能：
- 生成 ATT&CK 覆盖热图，展示检测栈涵盖的技术
- 用 ATT&CK 技术 ID 标记现有 SIEM 用例或 Sigma 规则，用于结构化报告
- 将安全计划路线图与已知针对您所在行业的特定对手组织对齐

**请勿使用**本技能进行实时事件分类——ATT&CK 映射是一项分析活动，最好在检测后或威胁猎捕规划期间执行。

## 前置条件

- 访问 MITRE ATT&CK 知识库（https://attack.mitre.org）或本地 ATT&CK STIX 数据包
- ATT&CK Navigator Web 应用或本地安装（https://mitre-attack.github.io/attack-navigator/）
- 评估当前覆盖率的现有检测规则清单（Sigma、Splunk、Sentinel KQL）
- ATT&CK Python 库：`pip install mitreattack-python`

## 工作流程

### 步骤 1：获取当前 ATT&CK 数据

下载相关矩阵（Enterprise、Mobile、ICS）的最新 ATT&CK STIX 包：
```bash
curl -o enterprise-attack.json \
  https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json
```

使用 mitreattack-python 库以编程方式查询技术：
```python
from mitreattack.stix20 import MitreAttackData

mitre = MitreAttackData("enterprise-attack.json")
techniques = mitre.get_techniques(remove_revoked_deprecated=True)
for t in techniques[:5]:
    print(t["external_references"][0]["external_id"], t["name"])
```

### 步骤 2：将现有检测映射到技术

对于每个 SIEM 规则或 Sigma 文件，分配 ATT&CK 技术 ID。Sigma 规则支持原生 ATT&CK 标记：
```yaml
tags:
  - attack.execution
  - attack.t1059.001  # PowerShell
  - attack.t1059.003  # Windows 命令行
```

创建覆盖矩阵：列出每个技术 ID 并标记为：已检测（告警触发）、已记录（数据存在但无告警）、盲点（无数据源）。

### 步骤 3：使用威胁情报优先化覆盖缺口

将覆盖缺口与针对您所在行业的对手组织进行交叉参考。使用 ATT&CK 组织数据：
```python
groups = mitre.get_groups()
apt29 = mitre.get_object_by_attack_id("G0016", "groups")
apt29_techniques = mitre.get_techniques_used_by_group(apt29)
for t in apt29_techniques:
    print(t["object"]["external_references"][0]["external_id"])
```

优先为高优先级威胁组织使用的技术添加检测，尤其是覆盖盲点处。

### 步骤 4：构建 Navigator 热图

将覆盖评分导出为 ATT&CK Navigator JSON 层：
```python
import json

layer = {
    "name": "SOC 检测覆盖 Q1 2025",
    "versions": {"attack": "14", "navigator": "4.9", "layer": "4.5"},
    "domain": "enterprise-attack",
    "techniques": [
        {"techniqueID": "T1059.001", "score": 100, "comment": "Splunk 规则：PS_Encoded_Command"},
        {"techniqueID": "T1071.001", "score": 50, "comment": "仅记录，无告警"},
        {"techniqueID": "T1055", "score": 0, "comment": "无覆盖——盲点"}
    ],
    "gradient": {"colors": ["#ff6666", "#ffe766", "#8ec843"], "minValue": 0, "maxValue": 100}
}
with open("coverage_layer.json", "w") as f:
    json.dump(layer, f)
```

将层导入 ATT&CK Navigator（https://mitre-attack.github.io/attack-navigator/）进行可视化。

### 步骤 5：生成高层覆盖报告

按战术类别（初始访问、执行、持久化等）汇总覆盖率，包含数量和百分比。根据对手组织使用频率提供风险排名的前 10 盲点技术列表。推荐添加数据源（例如"启用 PowerShell 脚本块日志记录以解决 12 个执行子技术缺口"）。

## 核心概念

| 术语 | 定义 |
|------|-----------|
| **ATT&CK 技术** | 以 T 号码标识的特定对手方法（例如 T1059 = 命令和脚本解释器） |
| **子技术** | 技术的更细粒度变体（例如 T1059.001 = PowerShell，T1059.003 = Windows 命令行） |
| **战术** | ATT&CK 中的对手目标类别：初始访问、执行、持久化、权限提升、防御规避、凭据访问、发现、横向移动、收集、C&C、数据渗出、影响 |
| **数据源** | ATT&CK v10+ 组件，标识检测技术所需的遥测（例如进程创建、网络流量） |
| **覆盖评分** | 表示技术检测完整性的数值（0-100）：0=盲点，50=仅记录，100=已告警 |
| **MITRE D3FEND** | 补充 ATT&CK 的防御对策本体——将防御技术映射到其缓解的攻击技术 |

## 工具与系统

- **ATT&CK Navigator**：基于浏览器的热图可视化工具，用于在 ATT&CK 矩阵上分层显示覆盖评分和注释
- **mitreattack-python**：MITRE 官方 Python 库，用于以编程方式访问 ATT&CK STIX 数据（技术、组织、软件、缓解措施）
- **Atomic Red Team**：提供原子测试用例的 MITRE 对齐测试库，用于验证每种技术的检测
- **Sigma**：支持 ATT&CK 标记的检测规则格式；可转换为 Splunk、Sentinel、QRadar、Elastic
- **ATT&CK Workbench**：用于维护自定义技术扩展的自托管 ATT&CK 知识库

## 常见陷阱

- **过度声明覆盖**：记录数据源（例如进程创建事件）并不意味着检测到相关技术——规则必须实际针对恶意模式触发。
- **仅在战术级别映射**：将规则标记为"attack.execution"而没有具体技术 ID 会阻止细粒度缺口分析。
- **忽视子技术**：许多对手使用特定子技术。T1059（父技术）的覆盖并不意味着 T1059.005（Visual Basic）的覆盖。
- **不更新的静态映射**：ATT&CK 每年发布主要版本。随着技术被添加、修改或弃用，覆盖图会过时。
- **不映射到对手组织**：通用覆盖图无法区分针对您所在行业的 APT 使用的技术与商品恶意软件。

