abstract

1
Cyber Threat hunting is a proactive search for known attack behaviors in the organizational information system. It is an important component to mitigate advanced persistent threats (APTs). However, the attack behaviors recorded in provenance data may not be completely consistent with the known attack behaviors. In this paper, we propose DeepHunter, a graph neural network (GNN) based graph pattern matching approach that can match provenance data against known attack behaviors in a robust way. Specifically, we design a graph neural network architecture with two novel networks: attribute embedding networks that could incorporate Indicators of Compromise (IOCs) information, and graph embedding networks that could capture the relationships between IOCs. To evaluate DeepHunter, we choose five real and synthetic APT attack scenarios. Results show that DeepHunter can hunt all attack behaviors, and the accuracy and robustness of DeepHunter outperform the state-of-the-art method, Poirot.

abstract中指出:

  • 文章提出了一个基于 GNN 的图特征匹配方法,可以匹配源数据中的已知攻击
  • 特别地,作者提出了两种新型的图神经网络:属性嵌入网络用于整合 IOCs 信息,图嵌入网络用于捕捉 IOCs 关系

设计概览和挑战

作者通过比较起源图和查询图的是否表示相同的攻击行为来完成威胁狩猎任务。因此,威胁狩猎任务,将会转化成为图特征匹配的任务。

由于任务的特性,对于完成图特征匹配任务的模型有以下要求:

  • 无需要专家知识
  • 高效
  • 高健壮性

基于此,采用 图神经网络 来提取图特征和计算匹配分值将会非常方便,并且一旦图匹配模型学习完成后,匹配分数的计算将会非常简单,而且也不会依赖任何其他资源消耗大的图特征匹配算法了。

挑战和解决方案

挑战1:如何有效地表示节点属性信息?

​ 节点有不同的属性,这些属性对于图特征匹配可能有不同的重要性。作者提出了一种 属性嵌入网络(attribute embedding network)来表示节点的属性。将节点类型作为属性的一种,如进程/文件/socket等,然后使用注意力机制学习不同属性对于图特征匹配的任务的重要性。

挑战2:如何有效地表示图的结构?

​ 本文方法中存在一个重要的问题,就是起源图和查询图是异构的,前人的工作中同构图可以采用相同的网络来处理,在本文中不能使用。因此作者提出了两种不同的图神经网络来分别处理两种网络:GCN 处理查询图;另外一种是特殊设计的网络来表示起源图。

DeepHunter 图特征匹配模型

属性嵌入网络

属性嵌入网络

如上图所示,首先将 node n1, n2 and edge e 表示为如下所示:

Process conhost reads file netsh.exe in C : \\Windows\\System32.

然后将上述语句传入 word2vec 模型学习每个属性的向量表示,获得属性嵌入向量。

用于编码图结构的图嵌入网络

图嵌入网络被设计用来表示两种图的图结构。图嵌入网络包含两个阶段:节点嵌入阶段和图嵌入阶段。

阶段一:节点嵌入阶段

节点嵌入方法将会导致查询图嵌入网络和起源图嵌入网络的不同,我们使用现有的图卷积网络来进行节点嵌入。因为查询图通常来说是很小的而且没有噪声,这样的图是可以通过图卷积网络来处理的。

为了处理起源图的节点嵌入问题,设计了 起源图嵌入网络,该网络结构能够处理冗余的节点并且保留主要信息用于匹配查询图。

起源图节点嵌入网络结构如下:

起源图节点嵌入

首先,设计了一个 GNN 层,叫做注意力聚集器(attention aggregator),该层会聚集目标节点的邻接节点信息。

在聚集时,不同节点和属性可能会有不同的重要性,因此对于冗余节点将会分配一个较小的权重值,对于匹配查询图的节点将会分配一个较高的权重值。

基于此添加了另一层注意力机制来学习节点属性权值。为了聚集不邻接节点的信息,由添加了一层注意力层来学习非邻接节点的属性信息。最后添加了全连接层来生成固定的输出向量。

阶段二:图嵌入阶段

现在获得了查询图和起源图的节点嵌入向量,在本部分,要解决的问题是如何使用节点嵌入向量生成低维的图嵌入向量。在本部分的工作中,使用了带全局上下文的注意机制,该方法在 SimGNN 提出,使用该机制获得图层次的嵌入向量。

基于 GNN 的图特征匹配架构

图特征匹配

该框架包含两条路经,一条是处理 CTI 信息的,下面是处理起源信息的。在每一条路经的开始,构建起源图和查询图,这两个图都会传入基于 GNN 的模型。

实施

起源图去重

现实中,服务器会长期启动,这会导致起源图的规模会不断增加。因此,在本部分将会对起源图进行修剪。

首先会使用 MITRE ATT&CK TTPs 和 IOCs 来生成可以事件,特别地,DeepHunter 会使用 EDR 工具如 BLUES-PAWN 提供的匹配规则来检测 MITRE ATT&CK TTPs. 当然,DeepHunter 也会使用正则表达式对威胁情报或者 APT 报告进行匹配提取,如果两个方式都标记为了可以事件,那么就将该事件视为可疑事件。

然后,使用作者设计的起源图去重算法可以对起源图进行修剪/去重,去除可以事件。

去重算法

训练数据生成

由于模型训练需要大量的正面样本和负面样本,首先,从起源图中抽取出一个子图,从一个进程节点出发,然后对其使用 DFS 算法,并对其路径长度进行限制,限制为不大于 4. 然后对其使用两个图像总结算法:

  • 合并具有相同进程名称的进程节点
  • 删除重复路径,如果两条路径重复,则只保留一条路径

然后对其加噪声:

  • 随机删除其某一条边或者实体节点
  • 随机移除一个或者多个节点属性

通过上述两种方法生成正面样本,对于负面样本的生成,通过随机组合子图实现。

场景描述

后续就是,测试评估和具体效果,在此不再赘述。