01 · 四层对象模型:Tactic / Technique / Sub-technique / Procedure
ATT&CK对对手行为的描述遵循严格的四层粒度体系,理解四层的区别是映射准确性的前提:
| 层级 | 回答的问题 | 说明与示例 |
|---|---|---|
| Tactic 战术 | 为什么做(目的) | 攻击生命周期的阶段性目标,如Initial Access、Credential Access;Enterprise矩阵共14个,以TA开头编号 |
| Technique 技术 | 用什么方法做 | 达成战术目标的一般性方法,如T1003 OS Credential Dumping、T1566 Phishing;编号格式T+四位数字 |
| Sub-technique 子技术 | 哪种具体变体 | 技术的具体实现变体,如T1003.001 LSASS Memory、T1566.002 Spearphishing Link;编号格式TXXXX.YYY,与父技术有明确的subtechnique-of关系 |
| Procedure 过程 | 实际怎么做的 | 具体组织或软件在真实事件中的操作实现,如某报告中"使用mimikatz导出lsass内存凭证";Procedure不是ATT&CK矩阵中的独立条目,而是记录在技术条目页的"程序示例"与各组织详情页中,是映射工作的原始素材 |
关键区分:同一个技术可以服务于多个战术(如T1059 Command and Scripting Interpreter横跨Execution与Defense Evasion等战术列),因此技术条目通过kill chain phases与多个战术关联;而子技术继承父技术的战术归属。映射时应优先精确到子技术层级——粒度过粗会稀释检测价值,过细则可能超出公开证据。
1.1 组织、软件与战役:TTP的"主语"
仅有行为动词(技术)不构成完整情报,ATT&CK用三类对象为TTP标注"谁":Group(威胁组织,intrusion-set对象,含别名、目标行业、隶属归因)、Software(恶意软件与工具,分malware与tool两类)、Campaign(战役,一段时间内的协同攻击活动)。三者与技术之间均以"uses"关系关联。以v17官方统计为例,Enterprise域收录166个组织、755个软件条目、47个战役(v17口径;当前版本v19为174组织/821软件/56战役)。近年收录的Enterprise组织包括Salt Typhoon、APT42、Sea Turtle、Velvet Ant、Storm-1811、RedEcho等——各组织的具体收录版本以官方机器可读changelog为准,引用时须逐条核对版本归属。这些对象及其关系共同构成TTP知识库的骨架。
1.2 缓解措施与数据源:TTP的"宾语"与"检测要件"
完整对象图谱还包括:Mitigation(缓解措施,course-of-action对象,与技术经mitigates关系关联;v17对Enterprise全部44项缓解措施描述进行了系统性重写)、Data Source / Data Component(数据源/数据组件,检测该技术所需的数据要件,经detects关系关联技术;v17 Enterprise域含37个数据源)、以及Asset(资产,ICS域特有,描述工控场景中的设备/系统类型)。消费TTP情报时,"uses什么软件—mitigates用什么措施—detects需要什么数据"三条关系链缺一不可。
02 · 技术条目属性体系
每个技术/子技术条目包含一组标准化属性。下表以T1003 OS Credential Dumping为例说明各字段的语义及其在映射工作中的用途:
| 属性 | 语义 | 映射工作中的用途 |
|---|---|---|
| ID / Name | 技术编号与名称(如T1003 OS Credential Dumping) | 全局唯一标识,情报交换与检测标注的锚点 |
| Description | 技术定义与行为描述 | 映射裁决时与报告原文比对的基准文本 |
| Platforms | 适用平台(Windows、macOS、Linux、Network Devices、ESXi、Containers、SaaS、Office Suite、Identity等) | 校验技术是否适用于目标环境,避免无效映射 |
| Data Sources | 检测该技术所需的数据源与数据组件(自v10起结构化) | 狩猎查询前的遥测可用性校验(详见第3页) |
| Detection | 官方检测建议文字 | 检测工程参考,需转化为具体数据源查询 |
| Permissions Required / Effective | 所需权限与执行后有效权限 | 攻击链阶段推断与优先级评估 |
| Sub-techniques | 下属子技术清单 | 粒度下沉的依据 |
| Version History | 条目创建/修订/合并/撤销历史 | 版本漂移跟踪(第1页3.3节) |
| External References | 引用该技术的公开报告出处(含CAPEC映射) | 置信度评估与溯源核验的入口 |
严谨性提醒:上表属性名称为ATT&CK网站展示层面的通用叫法,机器交换层面字段名称以STIX数据包中的x_mitre_*扩展属性为准(见下节)。两者大体对应但不完全同名,开发转换器时须以官方STIX数据包实际字段为准,不可凭网页显示臆造字段。
03 · STIX 2.1数据模型:ATT&CK的机器交换底座
3.1 为什么选择STIX 2.1
MITRE以STIX 2.1(Structured Threat Information Expression)格式分发ATT&CK全部数据。STIX 2.1是OASIS网络安全威胁情报技术委员会(CTI TC)制定的结构化威胁信息表达标准(2021年成为OASIS标准),采用JSON序列化与图模型设计,原生支持对象间关系(SRO, STIX Relationship Object)与版本化标识(STIX ID)。选择STIX 2.1意味着ATT&CK知识库可以不经信息损失地接入任何兼容STIX的威胁情报平台(TIP),与TAXII 2.1传输标准配套构成完整的交换管道(对应子课题01的标准化体系)。
3.2 ATT&CK对象到STIX 2.1的映射
| ATT&CK概念 | STIX 2.1对象类型 | 映射要点 |
|---|---|---|
| 战术 Tactic | 自定义SDO:x-mitre-tactic | 含x_mitre_shortname(kill chain phase引用名);技术通过kill_chain_phases(kill_chain_name为mitre-attack)关联战术 |
| 技术/子技术 | attack-pattern SDO | external_references中source_name为mitre-attack、external_id为T编号;子技术以x_mitre_is_subtechnique标记,并经SRO(relationship_type: subtechnique-of)挂接父技术 |
| 威胁组织 Group | intrusion-set SDO | 别名存放于aliases属性;与技术/软件间经uses关系SRO关联 |
| 软件 Software | malware / tool SDO | 恶意软件与合法滥用工具分列两类;通过uses关系关联技术 |
| 战役 Campaign | campaign SDO | 记录一段时间内的协同活动及其uses关系 |
| 缓解措施 Mitigation | course-of-action SDO | 与技术间经mitigates关系SRO关联 |
| 数据源/数据组件 | 自定义SDO:x-mitre-data-source / x-mitre-data-component | 自ATT&CK v10起结构化表达检测数据需求,数据组件经detects关系关联技术 |
| 外部引用 | external-reference(内嵌字段) | 含MITRE官网URL与CAPEC(Common Attack Pattern Enumeration and Classification)编号映射 |
注:x-mitre-*为MITRE在STIX 2.1基础上定义的扩展对象类型,属ATT&CK数据包的事实结构,字段清单以mitre/cti仓库实际数据为准。
3.3 核心SRO关系类型速查
| relationship_type | 语义 | 示例 |
|---|---|---|
uses | 组织/战役/软件使用某技术或软件 | Lazarus Group uses T1059.001 |
subtechnique-of | 子技术归属父技术 | T1003.001 subtechnique-of T1003 |
mitigates | 缓解措施缓解某技术 | M1041 Mitigate Anti-virus/Antimalware mitigates T1059 |
detects | 数据组件可检测某技术 | Process: Process Access detects T1003.001 |
说明:上表列出的是与ATT&CK消费最相关的四类关系;STIX 2.1完整关系清单以OASIS规范与mitre/cti数据包实际取值为准。
3.4 attack-pattern条目结构示例(节选示意)
以下JSON节选基于MITRE官方STIX数据包的真实结构改写(ID为占位示意值,字段以官方数据为准):
{
"type": "attack-pattern",
"id": "attack-pattern--00000000-1111-2222-3333-444444444444",
"name": "OS Credential Dumping",
"description": "Adversaries may attempt to dump credentials ...",
"kill_chain_phases": [
{ "kill_chain_name": "mitre-attack", "phase_name": "credential-access" }
],
"external_references": [
{
"source_name": "mitre-attack",
"external_id": "T1003",
"url": "https://attack.mitre.org/techniques/T1003"
}
],
"x_mitre_data_sources": ["Process", "Command", "..."],
"x_mitre_platforms": ["Windows", "macOS", "Linux"],
"x_mitre_is_subtechnique": false,
"x_mitre_detection": "Monitor for processes ...",
"x_mitre_version": "1.0"
}STIX ID与ATT&CK编号的分工:STIX ID(attack-pattern--UUID)在STIX生态内全局唯一且跨版本稳定;ATT&CK编号(T1003)是人类可读的公开标识。两者在external_references与x_mitre_*字段中互相关联。知识库设计应同时保留两者:对外展示与检测标注用T编号,平台内部关联与去重用STIX ID。
04 · 官方数据获取方式
MITRE通过两条官方渠道持续发布ATT&CK机器可读数据,均免费公开:
| 渠道 | 形式 | 特点与适用场景 |
|---|---|---|
| GitHub仓库 github.com/mitre/cti | 按域分目录的STIX 2.1 JSON文件(如enterprise-attack/enterprise-attack.json),随版本打tag | 可整体下载、可git跟踪diff、有完整版本tag;适合本地化知识库构建与版本对比 |
| TAXII 2.1服务 cti-taxii.mitre.org | 按Collection划分的STIX 2.1对象流(公开集合包括Enterprise、Mobile、ICS三大域),遵循TAXII 2.1 API规范 | 支持增量拉取与订阅式消费;适合TIP平台直接对接(如MISP、OpenCTI) |
TAXII服务按域划分公开集合(Enterprise ATT&CK、Mobile ATT&CK、ICS ATT&CK等),企业矩阵集合的API路径为/stix/collections/95ecc380-afe9-11e4-9b6c-751b66dd541e/(该集合ID为官方文档公开示例所用,见参考来源[10])。此外,官方同时提供STIX 2.0历史格式与逐版本Excel导出——Excel视图不含已撤销/弃用对象,适合快速人工检索与培训配套,但不应作为机器交换源(与STIX数据包可能存在同步差)。
获取后的本地加工遵循三条原则:①版本固定——每次导入记录源版本号(格式建议"大版本.小版本",官方在相邻大版本间会发布内容补丁,如v17.1、v18.1、v19.1、v19.2)并保留原始文件,禁止覆盖式更新;②diff跟踪——用官方提供的机器可读changelog(JSON diff,v17起格式规范化)识别新增/改名/撤销对象,触发知识库增量更新而非全量重建;③校验兜底——用stix2 Python官方库解析校验,拒绝格式异常的对象进入下游。
4.1 版本对象变更类型及处理策略
| 变更类型 | 官方机制 | 本地处理策略 |
|---|---|---|
| 新增 | 新STIX ID+T编号 | 入库存档,进入下一轮映射工作流 |
| 修订 | 同ID同编号,x_mitre_version递增 | 保留历史版本,标注生效区间;引用该条目的情报记录需评估是否重映射 |
| 合并/改名 | 撤销(revoke)旧对象,建立映射说明 | 旧编号保留别名与指向关系,禁止物理删除,保证历史情报可溯源 |
| 弃用 | deprecated标记,无替代对象 | 冻结引用并标注"已弃用",下游查询默认排除,但保留可追溯 |
05 · TTP提取六步方法论
从非结构化威胁报告到结构化TTP知识,本课题定义如下六步流水线,每一步均设置质量门:
5.1 映射裁决规范(针对KQ-1)
同一段攻击描述被不同分析员映射到不同技术,是TTP知识库劣化的主要根源。本课题规定三条裁决规则:
- 证据优先于推断:报告明确描述的行为映射到对应技术;仅靠攻击链位置推测的行为(如"随后必然提权")标注为推断级,不得作为组织画像的证据。
- 粒度就低原则:证据只能支撑技术层级时映射到技术(Txxxx);只有原文明确描述实现变体时才下沉到子技术(Txxxx.yyy)。禁止为"显得专业"过度细化。
- 上下文保留:每条映射必须保留原文摘录(procedure文本)与出处链接,使任何第三方可独立复核;无法溯源到公开出处的映射不进入知识库。
5.2 置信度分级
| 置信度 | 定义 | 典型场景 |
|---|---|---|
| 高 | 多个独立公开来源一致描述,且与已知组织行为吻合 | 多厂商报告交叉印证的TTP |
| 中 | 单一权威来源明确描述,或语义匹配度高的直接观察 | 官方CSIRT通报中的行为描述 |
| 低 | 间接推断、归因存疑或来源可靠性不明 | 仅凭工具相似性的归因猜测 |
置信度分级参照威胁情报领域通行的证据强度表达方式,与ATT&CK条目自身的"出处引用"机制互补:ATT&CK官方条目只收录有公开报告支撑的行为,本课题在消费层再叠加证据强度分级,两者不可混为一谈。
5.3 映射示例(Procedure → 技术编号)
以下两条示例展示"报告原文摘录→映射结果"的标准形态(示例行为均为ATT&CK条目公开收录的典型Procedure,本表仅演示标注格式):
| 报告行为摘录(示意) | 映射结果 | 裁决依据 |
|---|---|---|
| "攻击者使用凭证转储工具读取lsass.exe进程内存,获取已登录用户的明文口令与NTLM哈希" | T1003.001 LSASS Memory | 原文明确指向LSASS内存转储变体,证据直达子技术层级 |
| "用户收到仿冒IT部门的邮件,点击链接后跳转至与官方登录页视觉一致的克隆页面并输入账号口令" | T1566.002 Spearphishing Link(入口)+T1078 Valid Accounts(后续滥用) | 链接投递行为与凭证滥用行为分属两个战术列,按行为分段映射,禁止合并标注 |
5.4 高频映射错误清单
- 把IOC当TTP:报告中出现IP/域名/哈希只说明基础设施,不构成技术映射;须继续追踪"对该基础设施做了什么"。
- 把工具名当技术名:"使用了Cobalt Strike"应映射到其实际执行的行为(如T1055进程注入、T1027混淆),而非软件条目本身。
- 忽视平台约束:技术在目标平台不适用时映射无效(如将ESXi平台技术映射到纯物理Windows环境)。
- 一行为多技术不拆分:复合行为(如"钓鱼邮件投递恶意文档并诱导启用宏")应拆为T1566.001与T1204.002分别标注。
5.5 映射复核与仲裁机制(终审增补)
仅靠入库清单(§07)的事前校验仍无法完全消除分析员间的一致性偏差。本课题在流程上再设三道事后防线(直接回应KQ-1"映射的准确性与一致性"):
- 抽样互审:每期入库映射随机抽取不低于10%由第二名分析员独立复核,两人映射不一致率超过15%即触发本期全量复审——用数据而非感觉监控映射质量。
- 争议仲裁:分歧条目提交三人仲裁小组,裁决结论与双方原始映射一并保留并标注"仲裁";仲裁依据必须引用条目原文定义与公开出处,不允许以资历定案。
- 定期校准:每半年用一批已标注金标准事件(公开评估报告、攻击复盘通报)对团队做盲测,量化团队映射一致率(建议目标≥80%),结果纳入分析师能力档案。
方法来源说明:抽样互审与仲裁借鉴军事情报分析与开源软件代码评审的通行质量控制实践,金标准盲测借鉴TRAM类工具的评测思路;该组合为本课题设计,非任何单一标准原文。
06 · 工具链选型
围绕"初筛—裁决—维护—分发"四个环节,社区已形成较成熟的工具生态(以下均为真实可查的开源项目,维护状态以各仓库为准):
| 工具 | 维护方 | 功能定位 | 环节 |
|---|---|---|---|
| TRAM Threat Report ATT&CK Mapper | MITRE CTID | 对威胁报告文本做NLP处理,自动给出候选技术映射,供分析员确认 | 候选匹配 |
| Decider | MITRE CTID | 以引导式问答帮助分析员将观察到的行为裁决到正确技术,降低映射门槛 | 映射裁决 |
| attackcti | 开源社区(OTRF) | Python库,封装TAXII/GitHub数据源访问,便于批量查询技术、组织、关系对象 | 数据访问 |
| stix2 | OASIS CTI TC | STIX 2.x官方Python库,对象解析、校验、序列化 | 数据访问 |
| ATT&CK Workbench | MITRE CTID | 本地ATT&CK知识库管理与扩展工具,支持自建条目与官方数据融合 | 入库维护 |
| MISP | MISP项目社区 | 开源威胁情报平台,内置ATT&CK Galaxy(技术/组织/软件标签体系),支持与STIX 2.x互转 | 分发消费 |
| OpenCTI | Filigran等社区 | 开源TIP平台,原生以STIX 2.1为数据模型,可接入ATT&CK数据源 | 分发消费 |
选型建议:轻量团队可用"attackcti + 人工裁决 + MISP标签"的最小组合起步;有平台的团队建议"Workbench维护 + OpenCTI/MISP分发"。所有工具产出的映射记录都应带分析员标识与出处字段——映射结论的可复核性比映射速度更重要。工具链版本与维护状态变化较快,选型时应以各项目仓库的近期提交记录与许可证为准。
07 · 入库质量校验清单
TTP知识库入库前逐条过检。以下清单为本课题强制质量门,任一不通过即退回:
| 序号 | 校验项 | 通过标准 |
|---|---|---|
| 1 | 编号合法性 | T编号在所用版本数据包中真实存在且未revoke/deprecate(机器校验) |
| 2 | 平台适用性 | 条目Platforms与目标环境/事件环境存在交集 |
| 3 | 出处可溯 | 含原文摘录+公开URL+访问日期;内部来源标注密级与知悉范围 |
| 4 | 裁决留痕 | 含分析员标识、裁决时间、裁决依据(对应§5.1三规则) |
| 5 | 置信度标注 | 高/中/低三级且有判定理由;推断级映射不得标高置信度 |
| 6 | 粒度一致性 | 证据层级与标注层级匹配(无过度细化,无证据悬空) |
| 7 | 冲突处理 | 与既有记录冲突时保留双记录并标注争议,禁止静默覆盖 |
| 8 | 版本兼容 | 记录源数据版本号;版本升级后进入复核队列而非自动生效 |
本节参考来源(第2页)
以下均为真实可查的权威来源,用于支撑本页事实性表述。
OASIS《STIX Version 2.1》官方规范(2021年成为OASIS标准):docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html
OASIS《TAXII Version 2.1》官方规范:docs.oasis-open.org/cti/taxii/v2.1/os/taxii-v2.1-os.html
MITRE官方CTI数据仓库(STIX 2.1 JSON,含enterprise-attack等数据包):github.com/mitre/cti;TAXII 2.1服务:cti-taxii.mitre.org
TRAM(Threat Report ATT&CK Mapper):github.com/center-for-threat-informed-defense/tram
Decider:github.com/center-for-threat-informed-defense/decider;ATT&CK Workbench:github.com/center-for-threat-informed-defense/attack-workbench-frontend
attackcti Python库:github.com/OTRF/attackcti;stix2官方Python库:github.com/oasis-open/cti-python-stix2
MISP项目(含ATT&CK Galaxy标签体系):misp-project.org;MITRE CAPEC:capec.mitre.org
MITRE ATT&CK技术条目页示例 T1003 OS Credential Dumping:attack.mitre.org/techniques/T1003
MITRE官方《Working with ATT&CK》数据使用指南:attack.mitre.org/resources/working-with-attack(终审核验可达)
MITRE ATT&CK v18官方发布说明(TAXII集合、STIX 2.0/2.1与Excel导出说明的出处):attack.mitre.org/resources/updates/updates-october-2025(终审核验可达)
MITRE官方mitreattack-python库(attackcti之外的官方数据访问替代方案,见第6页§02提示):github.com/mitre-attack/mitreattack-python