关于 mapping-mitre-attack-techniques
用于将 SIEM 和 Sigma 检测规则映射到 MITRE ATT&CK 技术的安全分析技能,支持评估覆盖情况、按威胁组织优先排序、生成 Navigator 热图及汇总报告,不适用于实时事件分诊。
主要功能
- 01将检测规则映射到 ATT&CK ID
- 02评估检测覆盖与盲区
- 03依据威胁组织确定缺口优先级
- 04生成 Navigator 热图图层
- 05汇总覆盖情况供管理层报告
适用场景
- 01为 Sigma 规则或 SIEM 用例添加标签
- 02审查 ATT&CK 检测覆盖情况
- 03依据针对行业的威胁组织排列缺口优先级
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill mapping-mitre-attack-techniques安装后在 Claude Code 中输入/mapping-mitre-attack-techniques确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
映射 MITRE ATT&CK 技术
适用场景
在以下情况下使用此技能:
- 生成 ATT&CK 覆盖热力图,展示检测堆栈覆盖了哪些技术
- 为现有 SIEM 用例或 Sigma 规则添加 ATT&CK 技术 ID 标签,以便进行结构化报告
- 将安全计划路线图与已知以你所在行业为目标的特定对手组织相对应
请勿将此技能用于实时事件分诊——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 数据包:
curl -o enterprise-attack.json \
https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json
使用 mitreattack-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 标签:
tags:
- attack.execution
- attack.t1059.001 # PowerShell
- attack.t1059.003 # Windows Command Shell
创建覆盖矩阵:列出每个技术 ID,并标记为:已检测(触发警报)、已记录(存在数据但未触发警报)、盲区(无数据源)。
步骤 3:利用威胁情报确定覆盖缺口的优先级
将覆盖缺口与以你所在行业为目标的对手组织交叉比对。使用 ATT&CK Groups 数据:
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 图层:
import json
layer = {
"name": "SOC Detection Coverage Q1 2025",
"versions": {"attack": "14", "navigator": "4.9", "layer": "4.5"},
"domain": "enterprise-attack",
"techniques": [
{"techniqueID": "T1059.001", "score": 100, "comment": "Splunk rule: PS_Encoded_Command"},
{"techniqueID": "T1071.001", "score": 50, "comment": "Logged only, no alert"},
{"techniqueID": "T1055", "score": 0, "comment": "No coverage — blind spot"}
],
"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:生成高管覆盖报告
按战术类别(Initial Access、Execution、Persistence 等)汇总覆盖情况,提供数量和百分比。根据对手组织使用频率,按风险排序列出排名前 10 的盲区技术。建议添加数据源(例如:“启用 PowerShell Script Block Logging,以弥补 12 个 Execution 子技术的检测缺口”)。
核心概念
| 术语 | 定义 |
|---|---|
| ATT&CK 技术 | 以 T 编号标识的特定对手方法(例如,T1059 = 命令和脚本解释器) |
| 子技术 | 某项技术更具体的变体(例如,T1059.001 = PowerShell,T1059.003 = Windows 命令 Shell) |
| 战术 | ATT&CK 中的对手目标类别:Initial Access、Execution、Persistence、Privilege Escalation、Defense Evasion、Credential Access、Discovery、Lateral Movement、Collection、C&C、Exfiltration、Impact |
| 数据源 | 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 使用的技术与大众化恶意软件使用的技术。