1.2 ATT&CK框架七大对象
ATT&CK框架的基础是一系列的技术和子技术,代表了攻击者为实现目标而执行的措施,而这些目标由战术来表示,战术下面有技术和子技术。这种相对简单的表现方式可有效地展现技术层面的技术细节以及战术层面的行动背景。
通过ATT&CK矩阵可实现战术、技术和子技术之间关系的可视化。例如,在“持久化”(攻击者的目标是持久驻留在目标环境中)战术下,有一系列技术,包括“劫持执行流”“预操作系统启动”和“计划任务/作业”等。以上这些都是攻击者可以用来实现持久化目标的单项技术。
此外,某些技术可以细分为子技术,更详细地说明如何实现所对应的战术目标。例如,网络钓鱼攻击有三个子技术,包括利用附件进行鱼叉式网络钓鱼攻击、利用链接进行鱼叉式网络钓鱼攻击、通过服务进行鱼叉式网络钓鱼攻击,这些子技术介绍了攻击者如何通过发送钓鱼信息获得受害者系统的访问权限。图1-9展示了“初始访问(Initial Access)”战术下的技术,其中“网络钓鱼(Phishing)”“供应链入侵(Supply Chain Compromise)”和“有效凭证(Valid Accounts)”三种技术已扩展至子技术。
图1-9 “初始访问”战术下有三种技术已扩展至子技术
ATT&CK框架中主要包含七大对象:攻击组织、软件、技术/子技术、战术、缓解措施、数据源、作战活动,每个对象都在一定程度上与其他对象有关,各对象之间的关系可以通过图1-10直观地看到。
图1-10 ATT&CK对象关系模型
1.战术
战术表示攻击者执行ATT&CK技术或子技术的目标,说明攻击者为什么会进行这项操作;战术是对个别技术的情景化分类,是对攻击者在攻击过程中所做事情的标准化定义,例如持久化、发现、横向移动、执行和数据窃取等战术。战术也可以视为ATT&CK中的标签,根据使用某些技术或子技术实现不同目标,就可以对这些技术或子技术打上一个或者多个战术标签。
每个战术都有一个描述该战术类别的定义,以此作为技术的分类依据。例如,“执行”这一战术指的是在本地或远程系统上执行对抗性控制代码的技术或子技术。这一战术通常与初始访问战术和横向移动战术一起使用,因为攻击者一旦获得访问权限就会开始执行代码,然后进行横向移动,扩大对网络上远程系统的访问范围。
另外,也可以根据需要定义其他战术类别,以便更准确地描述攻击者的目标。将ATT&CK应用在其他领域时,也可能需要新的或不同的战术类别将各种技术关联起来,这可能会与现有模型中的战术定义有一些重叠。
2.技术、子技术和步骤
技术代表攻击者通过执行动作来实现战术目标的方式。例如,攻击者可能从操作系统中转储凭证,以获得对网络中有用凭证的访问权限。技术也可以代表攻击者通过执行一个动作所获得的东西。对于“发现”这个战术来说,具体技术是“发现”这个战术与其他战术的最大区别,因为这些技术可以显示攻击者采取某些行动所希望获得的信息类型。
子技术将技术所描述的行为进一步细分,更具体地说明攻击者如何利用这些行为来实现目标。例如,在操作系统凭证转储(OS Credential Dumping)技术下,它的子技术更具体地描述了攻击者的行为,这些子技术包括LSASS内存、SAM、NTDS、DCSync等。
实现战术目标的方法或技术可能有很多,因此,每个战术类别中都有多种技术。同样,可能有多种方法来执行一项技术,因此一项技术下可能有多种不同的子技术。
步骤是TTPs概念中的另一个重要组成部分,因为只有战术和技术是不够的,要有效地对攻击者进行防御还需要知道攻击者的攻击步骤。在ATT&CK框架中,步骤是攻击者用于实施技术或子技术的具体方式。例如,APT28利用PowerShell将恶意代码注入到lsass.exe内存中,并在失陷机器的LSASS内存在转储凭证。
关于ATT&CK框架中的攻击步骤,有两方面需要重点注意:一是攻击者使用技术和子技术的方式,二是一个步骤用于多个技术和子技术中。我们继续以前面的示例来说明,攻击者用于凭证转储的步骤包括使用PowerShell、进程注入和LSASS内存,这些都是不同的行为。攻击步骤还可能包括攻击者在攻击过程中使用的特定工具。
在ATT&CK中技术和子技术页面的“步骤示例(Procedure Examples)”部分,记录的是在“在野攻击”技术中观察到的攻击步骤。图1-11展示了在MITRE ATT&CK官网上,单击持久化战术下的第一项技术“账户操作”后,“账户操作(T1098)”详情页面上展示的步骤示例。
图1-11 “账户操作(T1098)”页面的步骤示例
3.攻击组织
ATT&CK框架会通过攻击组织这一对象来追踪已知攻击者,这些已知攻击者由公共组织和私有组织跟踪并已在威胁报告中报道过。攻击组织通常代表有针对性的持续威胁活动的知名入侵团队、威胁组织、行动者组织或活动。ATT&CK主要关注APT组织,但也可能会研究其他高级组织,例如有经济动机的攻击组织。攻击组织可以直接使用技术,也可以采用软件来执行某种技术。
4.软件
在入侵过程中,攻击者通常会使用不同类型的软件。软件代表了一种技术或子技术的应用实例,因此须在ATT&CK中进行分类,例如,按照有关技术的使用方法分类,可将软件分为工具和恶意软件两大类。
● 工具:防守方、渗透测试人员、红队、攻击者会使用的商业的、开源的、内置的或公开可用的软件。“软件”这一类别既包括不在企业系统上存在的软件,也包括在环境中已有的操作系统中存在的软件,例如PsExec、Metasploit、Mimikatz以及Windows程序(例如Net、netstat、Tasklist等)。
● 恶意软件:攻击者出于恶意目的使用的商业、闭源或开源软件,如PlugX、CHOPSTICK等。
5.缓解措施
ATT&CK中的缓解措施介绍的是阻止某种技术或子技术成功执行的安全概念和技术类别。截至目前,Enterprise ATT&CK中有40多种缓解措施,其中包括应用程序隔离和沙箱、数据备份、执行保护和网络分段等缓解措施。缓解措施与安全厂商的产品无关,只介绍技术的类别,而不是特定的解决方案。
缓解措施是类似于攻击组织和软件这样的对象,它们之间的关系是缓解措施可以缓解技术或子技术。ATT&CK for Mobile是第一个针对缓解措施使用对象格式的知识库。Enterprise ATT&CK从2019年7月开始用新的对象格式来描述缓解措施行为。Enterprise和Mobile版本都有自己的缓解类别集,且相互之间的重叠很小。
6.数据源
数据源对象包含数据源名称、关键技术信息及元数据,包括ID、定义、数据收集层和组成数据源的相关值/属性的数据组件。图1-12展示了ATT&CK V12中的一个数据源页面示例。
图1-12 镜像数据源页面
数据源页面还列出了数据组件,每个组件都说明了使用该数据可以检测的各种(子)技术。在各个(子)技术页面,数据源和数据组件已经从页面顶部的元数据框中移出,与检测内容整合在了一起,如图1-13所示。
图1-13 音频捕获(T1123)页面数据源的位置
更新后的数据源结构可以在ATT&CK的STIX表达式中实现关系可视化,数据源和数据组件都被视为自定义的STIX对象,如图1-14所示。每个数据源具有一个或多个数据组件,每个组件可以检测一个或多个技术。
图1-14 数据源STIX模型
改进后的数据源能够让我们更清晰地理解ATT&CK中的攻击行为与防守方收集的数据之间的关系。
7.作战活动
2022年10月,ATT&CK框架中引入了一个新的对象——作战活动,用来描述在特定时期内进行的一系列具有共同目标的入侵活动。作战活动的一个关键内容是,这些活动可能与某个特定的威胁行为者有关,也可能无关。
作战活动为用户提供了另一种查看恶意网络行动发展情况的视角。目前,ATT&CK中的威胁行为者活动包含了一系列广泛的行为,可以说明攻击者在一段时间内的整体活动情况。但是,随着攻击技术的改进,攻击者的TTPs经常发生变化。通过引入结构化的作战活动,用户可以收集到更多可落地的情报和上下文信息,据此确定防御的优先次序。通过作战活动,用户还能够识别趋势,跟踪攻击者使用的技术的重大变化,并监测攻击者的新能力(或利用的新漏洞)。作战活动还有助于用户更准确地对复杂的入侵活动进行分类,包括那些涉及多种威胁的活动(例如,勒索软件即服务行动),并解析出被赋予相同名称的重叠活动。
如图1-15所示,作战活动的主页面上包含了一个作战活动列表,包括ID编号、名称和活动描述。打开某个具体的作战活动页面,我们会看到对入侵活动的详细介绍,包括已知的目标国家和领域(如有)等细节,以及该作战活动需要特别注意的其他信息。
图1-15 C0010作战活动页面示例