ATT&CK框架实践指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 ATT&CK数据源的运用示例

为了说明如何将改善数据源的使用方法应用于ATT&CK数据源中,下面将通过示例进行详细介绍。从映射到ATT&CK框架中很多子技术的ATT&CK数据源——“进程监控”开始,创建第一个ATT&CK数据源对象。我们将围绕Windows事件日志创建另一个ATT&CK数据源对象,该数据源是检测大量攻击技术的关键。示例中以Windows平台为例,但该方法也可以应用于其他平台。

3.3.1 改进进程监控

要改进进程监控,可以按照以下五个步骤来进行。

1. 确定数据源

在Windows环境中,可以从内置事件提供程序(例如Microsoft-Windows-Security-Auditing)和开源的第三方工具(包括Sysmon)采集与“进程”相关的信息。

该步骤需要考虑整体的安全事件情况,其中,进程是围绕攻击者行动的主数据元素。这可能包括诸如连接到IP地址、修改注册表或创建文件等进程。图3-20显示了Microsoft-Windows-Security-Auditing提供程序的安全事件,以及在终端上执行操作的进程相关上下文信息。

图3-20 具有进程数据元素的Windows安全事件

这些安全事件还提供了其他数据元素的相关信息,例如“用户”、“端口”或“IP”。这意味着安全事件可以映射到其他数据元素,具体取决于数据源和攻击(子)技术。

数据源确认流程应利用有关组织内部安全事件的可用文档。建议使用有关数据的文档或检查开源项目中的数据源信息,例如DeTT&CT、开源安全事件元数据(OSSEM)或ATTACK Datamap。

我们可以从此步骤中提取的另一个元素是数据采集位置。确定数据采集位置的一种简单方法是记录数据源的采集层和平台。例如,数据源的采集层是主机,平台是Windows。

最有效的数据采集策略将根据环境特点进行定制。从采集层的角度来看,这取决于在环境中采集数据的实际方式,但进程信息通常是直接从终端采集的。从平台的角度来看,这种方法可以在其他平台(例如Linux、macOS、Android)上复制,并捕获相应的数据采集位置。

2. 确定数据元素

在确定并了解了可以映射到ATT&CK数据源的更多数据源信息后,就可以开始确定数据字段中的数据元素,这些元素最终可以帮助我们从数据角度表示攻击者的行为。图3-21显示了如何扩展事件日志的概念并捕获其中的数据元素。

图3-21 进程数据源——数据元素

我们还将使用数据字段中的数据元素来创建和改进数据源的命名,并说明数据源的定义。数据源名称由核心数据元素表示,例如进程监控,数据源名称包含“进程”而不是“监控”是有意义的,因为监控是由组织机构围绕数据源开展的一种活动。我们对“进程”的命名和定义调整如下:

• 名称:进程。

• 定义:有关至少一个线程正在执行的计算机程序实例的信息。

在战略上,可以利用这种方法在ATT&CK中删除数据源中的无关措辞。

3. 确定数据元素之间的关系

一旦我们对数据元素有了更好的理解,并对数据源本身有了更具体的定义,就可以开始扩展数据元素信息,并确定它们之间存在的关系。这些关系可以根据采集的监测数据所描述的活动来确定。图3-22显示了与“进程”数据源相关的安全事件中的关系。

4. 定义数据组件

前面步骤中的所有信息内容都有助于形成ATT&CK框架中数据组件的概念。根据确定的数据元素之间的关系,现在可以开始分组并指定相应的名称,从而形成数据元素之间关系的高级概述。如图3-23所示,一些数据组件可以映射到一个事件(进程创建→安全4688),而其他组件(例如“进程网络连接”)涉及来自同一提供程序的多个安全事件。

图3-22 进程数据源——关系

图3-23 进程数据源——数据组件

“进程”数据源是与ATT&CK数据源相关的信息方面的总称,如图3-24所示。

图3-24 “进程”数据源

5. 构建ATT&CK数据源对象

聚合前面步骤的所有核心内容并将它们联系在一起表示新的“进程”——ATT&CK数据源对象。表3-3提供了“进程”的一个基本示例,如下所示。

表3-3 进程数据源对象

3.3.2 改进Windows事件日志

改进Windows事件日志可以按照以下五个步骤进行。

1. 确定数据源

按照已建立的方法,第一步是确定需要采集的与“Windows事件日志”相关的安全事件,但很明显,该数据源过于广泛。图3-25显示了“Windows事件日志”下的一些Windows事件提供程序。而图3-8中则显示了其他Windows事件日志,它们也可以被视为数据源。

图3-25 Windows事件日志中的多个事件日志

在这么多事件中,当ATT&CK技术推荐“Windows事件日志”作为数据源时,需要明确从Windows终端采集的数据信息。

2. 确定数据元素、关系和数据组件

在采集数据时,可以将当前的ATT&CK数据源“Windows事件日志”进行分解,与其他数据源进行比较,从而发现潜在的重叠,并进行替换。为了实现这一点,可以复制用于进程监控的进程,以展示Windows事件日志涵盖多个数据元素、关系、数据组件,甚至其他现有的ATT&CK数据源,如图3-26所示。

图3-26 Windows事件日志细分

3. 建立ATT&CK数据源对象

我们可以通过对进程的输出进行整合,利用来自Windows安全事件日志的信息来创建和定义一些数据源对象。表3-4和表3-5展示了文件和powershell两种数据源对象的示例。

表3-4 文件数据源对象

表3-5 PowerShell日志数据源对象

此外,我们可以识别潜在的新的ATT&CK数据源。例如,“用户账户”是在攻击者创建用户、启用用户、修改用户账户的属性、甚至禁用用户账户时,通过围绕监测数据生成的多个数据元素和关系来确定的。表3-6展示了新的ATT&CK数据源对象示例。

表3-6 用户账户数据源对象

这个新数据源可以映射到ATT&CK技术中,例如账户操作(T1098)。图3-27为MITRE ATT&CK网站上账户操作技术的数据源信息。

图3-27 账户操作技术的用户账户数据源

3.3.3 子技术用例

现在已经通过定义好的数据源对象丰富了ATT&CK数据,那么该如何将其应用于技术和子技术呢?对于每个数据源的附加上下文信息,在为技术和子技术定义数据采集策略时,可以更多地利用这些上下文信息和细节信息。

图3-28为MITRE ATT&CK网站上关于T1543创建和修改系统进程(所属战术:持久化和权限提升)的相关页面,页面显示该技术包含的子技术有启动代理、系统服务、Windows服务和启动守护程序。

图3-28 创建或修改系统进程技术

我们重点研究图3-28所示的T1543.003 Windows服务,以此来说明,利用数据源对象提供的附加上下文信息可以更简单地发现潜在安全事件。图3-29展示了MITRE ATT&CK官网上T1543.003 Windows服务的数据源属性信息。

图3-29 Windows服务子技术

我们可以根据子技术提供的信息,利用一些定义好的ATT&CK数据对象。通过利用“进程”“Windows注册表”和“服务”数据源对象的附加信息,可以深入挖掘并使用数据组件等属性,以便从数据角度获得更多的信息。

通过图3-30展示的信息,可以发现数据组件等概念不仅缩小了安全事件的确定范围,而且还在高层和低层概念之间架起了一座桥梁,更便于了解数据采集策略。

图3-30 通过数据组件将事件日志映射到子技术

从组织机构的角度实施这些概念需要确定哪些安全事件映射到哪些特定的数据组件。