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的朋友,先从“初始访问”、“执行”、“持久化”这三个战术入手。为什么?因为这三个阶段是攻击者最容易暴露的环节,也是我们最容易发现异常的地方。等你把这几个战术吃透了,再慢慢扩展到其他战术。