根据威胁防御中心的统计,在 2019 年 4 月至 2021 年 7 月一共在野观测到 184 项技术,共计超过六百万次。
按频次分布,其中 TOP 15 的技术项占发现总技术项的 90%,且这些技术中的大多数都滥用了合法的系统工具。
技术项如下所示:
计划任务(T1053)
命令/脚本解释器(T1059)
劫持执行流(T1574)
代理(T1090)
伪装(T1036)
代理执行(T1218)
创建/修改系统进程(T1543)
进程注入(T1055)
削弱防御(T1562)
混淆文件或信息(T1027)
远程服务(T1021)
非应用层协议(T1095)
WMI(T1047)
修改注册表(T1112)
入侵工具转送(T1105)
时间分布
T1574 从 2019 年几乎没有快速增长到 2020 年的第二大技术,实际上该技术项在 2020 年 3 月 12 日才添加进 ATT&CK 中。
共现技术
A 指向 B 代表在技术 A 出现的时候技术 B 往往会出现。
非应用层协议(T1095)与代理(T1090)是双向连接的,攻击者经常建立代理使用非应用层协议。
共现分析也是一个 ATT&CK 的新领域,威胁防御中心正在开发名为 Attack Flow 的项目,以一种可共享的数据格式来表示攻击流。
战术阶段
TOP 15 的技术项实际上只涉及 14 个战术阶段中的 6 个,防御逃避(TA0005)是发现最多的战术阶段。
TOP 50 的技术项涉及 14 个战术阶段中的 11 个,仅侦察(TA0043)、资源开发(TA0042)和数据外带(TA0010)战术阶段不存在,这是由于数据采集的局限。
子技术
单独看子技术的情况下,TOP 15 如下所示:
如果考虑子技术,有 26 个子技术占到 90%。下面选取部分技术项进一步查看子技术项:
计划任务(T1053)
计划任务中针对 Windows 系统的计划任务(T1053.005)和针对 Linux 与 macOS 系统的计划任务(T1053.003)占绝大多数,前者甚至占比达 85%。
命令/脚本解释器(T1059)
PowerShell(T1059.001)占比超过三分之一,而 Windows Command Shell 和 Unix Shell 合并占比超过四分之一。
劫持执行流(T1574)
该技术项被发现的几乎所有都是 DLL 搜索顺序劫持(T1574.001),只有 12 个是其他子技术项。
伪装(T1036)
伪装合法名称/位置(T1036.005)是最常见的,其次是重命名系统实用程序(T1036.003)。
代理执行(T1218)
最常见的是 mshta(T1218.005)与 rundll32(T1218.011),其次是 regsvr32(T1218.010)与 cmstp(T1218.003)。
进程注入(T1055)
据大多数都是 T1055,其次就是占比超过 10% 的 Process Hollowing(T1055.012)。
远程服务(T1021)
发现的绝大多数都属于 SMB/Windows Admin Shares(T1021.002),且 Windows Remote Management(T1021.006)与 Remote Services(T1021)也有一定的占比。
此前认为,攻击者会拥有有效账户(T1078)与该技术项联动,但是数据中并没有这种关联。
总结
在公开的分析报告中,攻击者使用的新技术被广泛报道,而哪些被反复使用的基础技术则鲜有人提及。这也许会带来认知的偏差,对组织来说必须先通过扎实的基础防御把高频常见的攻击技术项防住再考虑这些花里胡哨的东西。而对安全公司来说,必须在基础之上做得更好,才能应对攻击者不断翻新的花样。报告中对这些技术项都提供了很多检测方法与预防措施,值得有需要的同学扩展阅读。
数据的分析不可避免地会受限于数据的视野,比如合作方的采集位置、检测偏好等都会影响数据分析的结果。数据越多,范围越广,场景越复杂实际上就越贴近真实情况,当然分析的难度和复杂度也相应提高。