一、ATT&CK框架概述:框架起源与发展、核心价值与理念、框架结构
大家好,我是你们这门课的老朋友。今天咱们聊聊ATT&CK框架。说实话,我最早接触这个框架是在2015年,那时候它还是个“小透明”。现在呢?几乎成了安全圈儿的“标配”。
你可能会问:为什么一个框架能火成这样?别急,咱们慢慢聊。
1.1 框架起源与发展
ATT&CK的全称是Adversarial Tactics, Techniques, and Common Knowledge。翻译过来就是“对抗性战术、技术与公共知识”。
它最早由MITRE公司在2013年提出。嗯,这里要注意,MITRE不是商业公司,而是一家非营利性研究机构。他们做这个框架的初衷很简单:把黑客的攻击手法系统化、标准化。
我记得2017年第一次在项目里用ATT&CK时,整个团队都懵了——原来攻击者的套路这么多!从最初的几十种技术,到现在已经发展到14大战术、超过200种技术、400多种子技术。这个增长速度,说实话,挺吓人的。
关键里程碑:
- 2013年:MITRE启动ATT&CK项目,最初只针对Windows平台
- 2017年:发布ATT&CK for Enterprise,覆盖macOS、Linux
- 2018年:加入移动端(ATT&CK for Mobile)
- 2020年:发布ATT&CK v8,引入云平台和网络设备
- 2023年:v13版本,新增ICS(工业控制系统)和容器技术
为什么会发展这么快?说白了,攻击者在进化,防御者也需要进化。我在做红蓝对抗时发现,没有框架之前,大家描述攻击行为全靠“我觉得”、“我记得”。有了ATT&CK,大家终于有了共同语言。
1.2 核心价值与理念
ATT&CK的核心价值,我个人总结为三点:
- 标准化语言:让安全团队用同一套术语沟通。你想想看,以前说“钓鱼攻击”,有人理解是邮件钓鱼,有人理解是鱼叉式钓鱼,还有人理解是水坑攻击。现在?直接说T1566,大家都懂。
- 对抗性思维:框架不是教你“怎么防”,而是告诉你“攻击者会怎么打”。这个理念很关键——知己知彼,百战不殆。
- 可操作性:每个技术都有对应的检测建议、缓解措施。不是纸上谈兵。
我的个人经验:在2019年的一次应急响应中,我们通过ATT&CK框架快速定位了攻击者的T1059(命令和脚本解释器)技术。如果没有框架,光排查日志就得花三天。那次之后,我团队的所有安全分析报告都强制要求标注ATT&CK ID。
ATT&CK的理念其实很简单:不要试图预测攻击者会用什么武器,而是理解他们想达成什么目标。比如,攻击者想获取凭证(T1552),他可以用键盘记录器、内存抓取、配置文件读取……你防得住一种,防不住所有。但如果你知道他要“获取凭证”这个战术目标,就可以在关键节点布防。
1.3 框架结构:战术、技术、子技术
ATT&CK的结构,说白了就是三层:
| 层级 | 说明 | 示例 |
|---|---|---|
| 战术(Tactic) | 攻击者想要达成的阶段性目标 | 初始访问、执行、持久化、防御绕过 |
| 技术(Technique) | 达成战术目标的具体方法 | T1566(钓鱼攻击)、T1059(命令执行) |
| 子技术(Sub-technique) | 技术的更细粒度变种 | T1566.001(鱼叉式钓鱼附件) |
举个例子你就明白了。攻击者想“初始访问”(战术),他可以用“钓鱼攻击”(技术T1566)。具体怎么钓?可以是“鱼叉式钓鱼附件”(子技术T1566.001),也可以是“鱼叉式钓鱼链接”(子技术T1566.002)。
嗯,这里要注意:子技术不是必须的。有些技术没有子技术,比如T1190(利用面向公众的应用程序漏洞)。但大部分主流技术都有子技术,因为攻击手法越来越精细化。
避坑指南:我曾经见过一个团队,把ATT&CK的战术和技术混为一谈。比如把“持久化”当成技术来检测,结果漏掉了真正的攻击。记住:战术是“为什么”,技术是“怎么做”。检测时关注技术,分析时关注战术。
目前ATT&CK v13定义了14大战术:
- 侦察(Reconnaissance)
- 资源开发(Resource Development)
- 初始访问(Initial Access)
- 执行(Execution)
- 持久化(Persistence)
- 权限提升(Privilege Escalation)
- 防御绕过(Defense Evasion)
- 凭证访问(Credential Access)
- 发现(Discovery)
- 横向移动(Lateral Movement)
- 收集(Collection)
- 命令与控制(Command and Control)
- 数据渗出(Exfiltration)
- 影响(Impact)
你想想看,这14个战术基本覆盖了攻击者的完整攻击链。从踩点(侦察)到搞破坏(影响),一个不落。
1.4 与其他框架的关系
说到ATT&CK,就不得不提另一个经典框架——Cyber Kill Chain(网络杀伤链)。很多人问我:这两个框架到底啥关系?
我打个比方你就懂了:Cyber Kill Chain是“时间线”,ATT&CK是“地图”。
- Cyber Kill Chain:由Lockheed Martin提出,把攻击分为7个阶段(侦察、武器化、投递、利用、安装、命令与控制、行动)。它关注的是攻击的时间顺序。
- ATT&CK:关注的是攻击的具体手法。它不强调时间顺序,而是强调“攻击者在这个阶段能做什么”。
举个例子:在Cyber Kill Chain的“投递”阶段,ATT&CK会告诉你具体有哪些投递技术——T1566(钓鱼)、T1192(通过可移动介质传播)、T1204(用户执行)等等。
我的建议:在实际工作中,我习惯把两者结合使用。用Cyber Kill Chain做攻击阶段划分,用ATT&CK做技术细节分析。比如写安全报告时,我会说:“攻击者在‘投递’阶段使用了T1566.001(鱼叉式钓鱼附件)技术。”这样既清晰又专业。
除了Cyber Kill Chain,ATT&CK还和Diamond Model(钻石模型)有互补关系。钻石模型关注攻击的四个维度(攻击者、受害者、基础设施、能力),而ATT&CK关注的是“能力”这个维度的具体技术细节。
说白了,ATT&CK不是要取代谁,而是给整个安全行业提供了一套“通用语言”。我见过很多团队,以前用各种自创的术语描述攻击,沟通成本极高。现在?直接说ATT&CK ID,大家都懂。
个人经验:有一次和国外团队做联合演练,对方说“We observed T1059.003 in the wild”。我立刻知道他说的是Windows命令执行。如果没有ATT&CK,光翻译就得半天。所以,学ATT&CK不仅是学技术,更是学国际通用语言。
好了,第一章就聊到这儿。记住:ATT&CK不是圣经,而是一个工具箱。怎么用好它,后面的章节我会手把手教你。