3.2 升级ATT&CK数据源的使用情况

鉴于上文提到的问题,我们需要对每个ATT&CK数据源进行明确定义。但是,如果没有一种描述数据源的结构和方法,很难对数据源进行定义。虽然描述诸如“进程监控”“文件监控”“Windows注册表”,甚至“DLL监控”之类的数据源非常简单,但是描述“磁盘取证”“引爆设计”或“第三方应用程序日志”的数据源则非常复杂。

因此,需要利用数据概念,并以标准化方式为每个数据源提供更多的上下文信息,这样能够更多地发现数据源之间的潜在关系,并改善攻击行动与收集数据之间的映射关系。

下文将从六个方面介绍如何改善ATT&CK数据源的使用情况。

3.2.1 利用数据建模

数据模型是将数据元素组织在一起并将它们之间的关系标准化的一组概念集合。如果将这些基本概念应用于安全数据源,就可以找出核心数据元素,并通过这些元素用更结构化的方式来描述数据源。此外,这还有助于我们发现数据源之间的关系,并改善攻击行动中TTP的捕获过程。

表3-1是MITRE为ATT&CK数据源拟定的数据模型,主要包括数据对象/元素、数据对象属性、关系。根据这一概念模型,我们可以找出数据源之间的关系,以及其与日志和终端设备之间的映射关系。

表3-1 数据建模概念

例如,图3-13展示了在使用Sysmon事件日志时涉及的几个数据元素及元素之间的关系。

图3-13 进程数据对象关系示例

3.2.2 通过数据元素定义数据源

通过数据建模,我们能够验证数据源名称,并以标准化方式对每个数据源进行定义,可以利用收集数据中的主要数据元素来定义。

可以使用数据元素来命名与攻击行动有关的数据源。如图3-14所示,如果攻击者修改了Windows注册表中的某个值,我们会从Windows注册表中收到监测数据。还可以利用其他上下文来辅助定义数据源,例如可以利用攻击者是如何修改的,以及是谁修改的这些辅助上下文信息。

图3-14 将注册表键值作为主要数据元素

还可以对相关的数据元素进行分组,从而对所需收集的信息有大致的了解。例如,可以对提供有关网络流量元数据的数据元素进行分组,并将其命名为Netflow,如图3-15所示。

图3-15 Netflow数据源的主要数据元素

3.2.3 整合数据建模和攻击者建模

可以利用数据建模概念来增强ATT&CK数据源与技术或子技术之间的映射关系。通过分解数据源并将数据元素彼此之间的关联方式标准化,就能够从数据角度围绕攻击者行为提供更多的上下文信息。ATT&CK用户可以采用这些概念,并确定他们需要收集哪些特定事件,确保覆盖特定的攻击行动。

例如,在图3-16中,通过提供一些相互关联的数据元素为Windows注册表数据源添加更多信息,从而获得更多有关攻击者行动的上下文信息。我们可以从Windows注册表转到“进程——已创建——注册表键”。

图3-16 数据建模示例

这只是可以映射到Windows注册表数据源的一种关系。这些附加信息将帮助我们更好地理解需要收集哪些特定数据。

3.2.4 将数据源作为对象集成到ATT&CK框架中

ATT&CK框架中的关键组成部分(战术、技术和攻击组织)都被定义为对象。图3-17展示了技术对象在ATT&CK框架中的位置。

图3-17 ATT&CK对象模型(含数据源对象)

3.2.5 扩展ATT&CK数据源对象

我们将数据源作为对象集成到ATT&CK框架中,并且建立定义数据源的结构化方法后,就可以通过属性的形式确定其他信息或元数据了。表3-2介绍了数据源对象的一些基本属性,包括名称、定义、收集层、平台、贡献者、参考文献。

表3-2 数据建模概念

这些基本属性可以提高ATT&CK数据源的级别,也方便我们获取更多信息,从而逐渐形成更有效的数据收集策略。

3.2.6 使用数据组件扩展数据源

做好以上几步后,需要对数据组件进行定义。上文中,我们讨论过与数据源相关的数据元素之间的关系(例如,进程、IP、文件、注册表),它们可以归为一类,并为数据源提供另一个级别的上下文信息。这一概念也是开源安全事件元数据(OSSEM)项目的一部分。

在图3-18中,我们扩展了进程的概念,并定义了一些数据组件,包括进程创建和进程网络连接,以提供其他上下文信息。这就提供了一种可视化方法,介绍如何从进程中收集数据。这些数据组件是根据数据源监测数据中已确认的数据元素之间的关系来创建的。

图3-18 数据组件及数据源之间的关系

图3-19介绍了ATT&CK框架提供了哪些相关信息来确定各个数据元素之间的关系。在实际应用中,我们可以自行决定如何将这些数据组件和关系映射到已收集的特定数据中。

图3-19 扩展ATT&CK数据源