1. ATT&CK框架概述:框架起源、核心价值、战术与技术矩阵、在安全运营中的角色
各位同行,咱们今天聊聊ATT&CK框架。说实话,我入行那会儿,还没有这么个好东西。那时候做安全分析,全靠经验堆,遇到一个攻击行为,得翻半天日志,凭感觉判断这是哪一步。后来MITRE搞出了ATT&CK,整个行业才算有了统一的“攻击语言”。
我个人习惯把ATT&CK比作一张“攻击地图”。你想想看,没有地图的时候,你只知道有人闯进来了,但不知道他从哪进来的、现在在哪个房间、下一步要去哪。有了这张地图,你就能看清全局。嗯,这就是它的核心价值。
1.1 框架起源:为什么会有ATT&CK?
ATT&CK的全称是Adversarial Tactics, Techniques, and Common Knowledge。说白了,就是“对手的战术、技术和通用知识库”。它由MITRE公司在2013年启动,最初只是为了研究APT(高级持续性威胁)的攻击行为。
我记得最早接触ATT&CK时,它还只是个Excel表格,里面列着几十种攻击技术。当时我心想:“这玩意儿能有用?”结果几年下来,它已经发展成包含14个战术、数百种技术的庞大知识体系。为什么会这样?因为攻击者在进化,我们的防御手段也得跟着升级。
核心起源背景:
- 2013年:MITRE启动ATT&CK项目,最初聚焦于Windows企业环境
- 2015年:发布第一个公开版本,包含96种技术
- 2017年:引入PRE-ATT&CK,覆盖攻击前的侦察阶段
- 2018年:发布ATT&CK for Enterprise和ATT&CK for Mobile
- 2020年:合并PRE-ATT&CK,形成完整的攻击生命周期覆盖
我在项目中遇到过不少团队,他们觉得ATT&CK太复杂,不愿意用。其实大可不必。你不需要一开始就掌握所有技术,从最常用的几个战术入手,慢慢扩展就行。
1.2 核心价值:ATT&CK能给我们带来什么?
ATT&CK的价值,说白了就四个字:统一语言。以前做安全运营,分析师说“有人执行了恶意命令”,开发说“什么命令?在哪执行的?”,双方鸡同鸭讲。现在好了,你说“T1059(命令和脚本解释器)”,大家都明白你在说什么。
具体来说,它的核心价值体现在这几个方面:
- 标准化描述:每个攻击技术都有唯一编号(如T1059),全球通用
- 攻击链可视化:从初始访问到目标达成,每个阶段都能对应到具体战术
- 防御措施映射:每个技术都列出了对应的缓解措施和检测方法
- 威胁情报关联:可以关联到具体的攻击组织、恶意软件
- 差距分析:帮你发现安全防护的薄弱环节
我的经验之谈:刚开始用ATT&CK时,别想着全覆盖。先挑你们业务最相关的10-20个技术,把检测规则做扎实了,再慢慢扩展。我曾经见过一个团队,一口气做了200条检测规则,结果全是误报,最后没人愿意看告警了。
1.3 战术与技术矩阵:这张“地图”长什么样?
ATT&CK矩阵,你可以把它想象成一个二维表格。横轴是战术(Tactics),也就是攻击者要达成的目标;纵轴是技术(Techniques),也就是具体怎么干。目前企业版ATT&CK包含14个战术:
| 战术编号 | 战术名称 | 中文含义 | 典型技术举例 |
|---|---|---|---|
| TA0043 | Reconnaissance | 侦察 | T1592(收集主机信息) |
| TA0042 | Resource Development | 资源开发 | T1583(获取基础设施) |
| TA0001 | Initial Access | 初始访问 | T1566(鱼叉式钓鱼) |
| TA0002 | Execution | 执行 | T1059(命令和脚本解释器) |
| TA0003 | Persistence | 持久化 | T1547(启动或登录自启动) |
| TA0004 | Privilege Escalation | 权限提升 | T1548(滥用提权机制) |
| TA0005 | Defense Evasion | 防御规避 | T1564(隐藏痕迹) |
| TA0006 | Credential Access | 凭证访问 | T1555(从密码存储中获取凭证) |
| TA0007 | Discovery | 发现 | T1087(账户发现) |
| TA0008 | Lateral Movement | 横向移动 | T1021(远程服务) |
| TA0009 | Collection | 收集 | T1114(邮箱收集) |
| TA0011 | Command and Control | 命令与控制 | T1071(应用层协议) |
| TA0010 | Exfiltration | 数据渗出 | T1048(通过替代协议渗出) |
| TA0040 | Impact | 影响 | T1486(数据加密勒索) |
每个战术下面,又细分出多个技术。比如“执行(TA0002)”这个战术,就包含了命令执行、脚本执行、API调用等多种方式。每个技术还有子技术,比如T1059下面有T1059.001(PowerShell)、T1059.002(AppleScript)等。
注意:矩阵不是死的。攻击者不会按顺序走完所有战术,他们可能跳过某些步骤,也可能反复执行某个战术。我曾经处理过一个案例,攻击者在横向移动阶段卡住了,来回尝试了7种不同的技术才成功。所以做威胁狩猎时,别死板地按矩阵顺序来,要灵活。
1.4 在安全运营中的角色:ATT&CK怎么用?
ATT&CK在安全运营中,扮演着几个关键角色。我把它总结为“三用”:
第一,用于检测规则设计。每个技术都给出了检测思路。比如针对T1059.001(PowerShell),你可以监控进程创建事件,看有没有powershell.exe启动并执行编码命令。我在项目中就遇到过,攻击者用Base64编码的PowerShell命令下载恶意载荷,如果没有ATT&CK的指导,我可能根本不会关注这个点。
第二,用于威胁狩猎。做威胁狩猎时,你不能漫无目的地翻日志。有了ATT&CK,你可以针对某个战术或技术,设计狩猎假设。比如“假设有攻击者正在通过远程服务进行横向移动”,然后去检查RDP、WinRM等服务的异常连接。
第三,用于安全评估和红蓝对抗。红队可以按照ATT&CK矩阵设计攻击路径,蓝队则根据矩阵评估自己的检测覆盖率。我建议每个季度做一次ATT&CK覆盖率评估,看看哪些技术你们能检测到,哪些还是盲区。
实战小技巧:做威胁狩猎时,我习惯把ATT&CK矩阵打印出来贴在工位上。每发现一个可疑行为,就在对应的技术上做个标记。时间长了,你就能看出哪些技术是你们环境中的“高频攻击点”,重点防守这些地方,事半功倍。
嗯,说到这里,我想强调一点:ATT&CK不是银弹。它是个工具,不是解决方案。你有了地图,还得有车、有油、有司机。同样,你有了ATT&CK,还得有日志采集、检测引擎、分析人员。别指望光靠一个框架就能解决所有安全问题。
最后,我建议刚接触ATT&CK的朋友,先从“初始访问”、“执行”、“持久化”这三个战术入手。为什么?因为这三个阶段是攻击者最容易暴露的环节,也是我们最容易发现异常的地方。等你把这几个战术吃透了,再慢慢扩展到其他战术。
好了,这一章就聊到这儿。下一章咱们会深入讲每个战术的具体技术,以及对应的检测方法。到时候我会分享一些我在实战中踩过的坑,希望能帮大家少走弯路。