论文分享—SHADEWATCHER: Recommendation-guided Cyber Threat Analysis using System Audit Records

文章来源:IEEE Symposium on Security and Privacy2022

)


前言

  本篇文章是关于APT检测的顶会论文,其中作者将信息检索领域的“推荐系统”研究方向相关方法移植到了APT检测领域,使用图神经网络的方式进行威胁的检测,获得了不错的结果。


提示:以下是本篇文章正文内容

一、问题描述

1.该领域研究现状

  近些年来,APT盛行,其所带来的巨大危害性使得人们对APT检测系统有着越来越高的要求。目前也已经存在了一些优良的检测系统,但是这些检测模型都存在或多或少的缺陷:
  (1)基于统计(事件出现频率)的方法确实可以辅助推理APT攻击的出现可能性,但是其会产生大量的误报,对于系统偶尔出现的良性事件,其会认为是罕见的恶性时间从而判断错误。
  (2)基于启发式的方法会有较低的误报率,但是制定规则需要耗费大量的人力资源和时间,且不可避免地会需要领域的专家知识。同时由于制定规则的专家能力存在差异,不同系统的检测能力大相径庭,简单的认知错误会带来严重的后果。
  (3)基于学习的方法主要训练良性模型,检测偏差从而判断攻击。虽然这些方法可以通过将审计记录的语义纳入威胁分析来实现高检测准确性,但迄今为止没有任何学习解决方案能够提供关于攻击关键指标的解释结果或见解,从而削弱了实践中的有用性,难以进行人工的分析查找攻击。

2.本文想法

  系统实体交互是溯源图必不可少的组件,也是我们方法的基石。我们认为可以观察实体交互的潜在可能性,低可能性的交互可能天然对应着威胁,其中一个例子如下图所示,浏览器下载的可执行文件(例如 gtcache)通常不会运行敏感的用户命令(例如 uname),否则就意味着恶意攻击。基于来源的解决方案通常使用来源图中的因果连接来解释系统实体交互。然而,这种因果关系不足以揭示两个系统实体之间的语义关系。特别是,因果断开的实体(例如,具有不同 pid 的 /proc/pid/stat )不一定在语义上不相关。
在这里插入图片描述
  其实,在推荐领域也有类似的问题,图1(b)表示电影推荐的一个系统,其中Alice是为其提供推荐的目标用户。用户与项目之间的交互,即Alice—Iron Man和Bob—Iron Man表示Alice和Bob之间的行为相似性。基于行为相似的用户会分享共同项目偏好的假设,早期的推荐系统预测Alice喜欢Thor,就像Bob喜欢一样。然而仅仅考虑用户之间的行为相似性而不考虑项目之间的语义相似性是绝对不够的。
  为了解决这个问题,最近提出的方法利用项目辅助信息(side information),如电影类型和工作室,形成连接语义相似项目的高阶内在连接。 例如,考虑连接:Iron man-Action-The Avengers和Iron man-Marvel Studios-The Avengers,表明爱丽丝可能更喜欢复仇者联盟,因为它的辅助信息与钢铁侠相同。
  回到溯源图中,更好地理解系统实体交互的直观方法是识别系统实体的辅助信息以形成高阶连接。例如上述图1©中,如果/proc/27/stat 通过辅助信息与 /proc/25/stat 相关,我们将确定它们共享与其他系统实体交互的概率(例如gtcache)。然而,辅助信息并未明确编码在原始来源图中。为了提取这些知识,我们从最近的一项研究 [1]中获得灵感,该研究从系统实体的上下文中推断出系统实体的语义,因此我们将上下文信息视为系统实体的辅助信息。
  由于系统实体的上下文信息反映在来源图的邻居实体中,因此我们可以通过获得实体的多跳(multi-hop)邻居信息,从中聚合对应根实体的语义信息。总的来说我们将网络威胁检测制定为推荐问题,该问题对两个系统实体之间交互的可能性进行建模,预测实体间不太可能发生的交互从而预测威胁。例如,检测图1(a)中的gtchache读取uname的窃取信息攻击攻击变成预测图1©中gtcache与uname不进行交互概率,高于一定的阈值则认为其为潜在攻击,如果现实中进行交互则认为发生攻击。在这种洞察力的推动下,我们能够构建威胁检测和推荐领域的关联性,并利用推荐方法来帮助理解系统实体交互。


二、SHADEWATCHER检测模型

1.模型总览

在这里插入图片描述

   该检测系统共分为4个部分:
   (1). 将审计日志与信息流构建溯源图,并且提取其中实体交互的信息.
   (2). 将提取出的实体信息进行编码后传入图神经网络进行聚合,提取辅助信息
   (3). 利用辅助信息进行实体交互的可能性预测,判断潜在的攻击。
   (4). 随着交互模式的更新迭代,使用分析师干预的方式对新数据打标签,进行训练与反馈。


2. 组块1:知识图谱(knowledge graph)构建

在这里插入图片描述
  首先使用审计日志对溯源图进行构建。之后对构建的溯源图提取其中实体的交互。由于溯源图往往很大,其中实体连接所提取的交互数量也会是巨大的,因此本文考虑使用[1]中的方法,将大的溯源图根据行为分为多个子图,具体方法为对溯源图中的数据对象进行识别后,对其执行前向深度优先搜索以提取子图,最后将重复的集合进行合并从而获得表示不同系统行为的子图,具体细节在参考文献[1]中有展示。
  完成上述步骤之后,针对不同的子图来提取各个系统实体间的交互。(文章中还有将溯源图和二部图结合对齐为知识图谱的过程,但是我并没有看懂知识图谱和普通溯源图有什么本质区别,都是(entity,interact,entity)这样的三元组构成的,所以我在这里就没有赘述了,如果有理解到位的读者可以在评论区和我交流)


3. 组块2:推荐模型

在这里插入图片描述

  本模块分为两个大的部分,第一部分为建模单跳的实体信息,将上一步提取的(实体,交互,实体)的信息进行建模,将实体对应为embedding。第二部分为建模多跳信息(也可以认为是高阶信息),此时通过图神经网络(GNN)进行迭代聚合实体的多跳邻居间的信息,综合丰满实体的语义信息。

3.1 建模单跳信息

  作者在本部分叙述了两种方法。首先第一种为TransE[2],该方法核心思想为如果有元组(h,r,t),其中h和t代表实体,r代表二者交互关系,我们可以考虑d维向量公式: e h + e r ≈ e t e_h+e_r≈e_t eh+eret(每个向量表示上述元组的一个实体或关系),从而完美契合系统实体间关系的表示。比如图1(a)所示的关系:(ztmp, connect, 128.55.12.73:53 )与(ztmp, connect, 128.55.12.73:54),上述两个网络嵌套字都用 e z t m p + e c o n n e c t e_{ztmp}+e_{connect} eztmp+econnect表示,所以其在向量空间应该是很接近的,计算方法在TransE中也是相同的。但是实际上这种方法是存在缺陷的,因为一个关系种类可能会对应着不同的实体,使得种类不同的实体会有相似的embedding表示,影响攻击检测。
  为了克服这一困难, 考虑使用新的方法TransR[3]。对于每个系统实体h或t,其对应向量 e h 与 e r e_h与e_r eher为d维,每个交互关系对应一个投影矩阵 W r ∈ W_r\in Wr R d × k R^{d×k} Rd×k,通过矩阵投影将实体交互映射到k维的关系空间,例如 e h r = e h W r e^r_h=e_hW_r ehr=ehWr e t r = e t W r e^r_t=e_tW_r etr=etWr,之后使用公式 f ( h , r , t ) = ∣ ∣ e h r + e r − e t r ∣ ∣ f(h,r,t)=||e^r_h+e_r-e^r_t|| f(h,r,t)=∣∣ehr+eretr∣∣衡量两实体交互出现的概率, f ( h , r , t ) f(h,r,t) f(h,r,t)越小则说明两实体与交互的距离越近,对应交互越有可能出现,其中||·||表示L1距离。
  损失函数的定义如下图公式所示:
在这里插入图片描述
  其中 f ( h , r , t ) f(h,r,t) f(h,r,t)表示存在于知识图谱(KG)中的实体交互, f ( h ′ , r ′ , t ′ ) f(h',r',t') f(h,r,t)表示不存在的交互, γ \gamma γ为超参数,用于控制训练余量。损失函数的意义为让出现在KG中的交互获得的分数低于未出现在KG中的交互,从而能够表示实体潜在的交互可能性,获得实体单跳的交互语义信息。

3.2 建模多跳信息

  除了直接连接的实体交互之外,多跳的交互路径也是KG种固有的交互方式[4],这种更复杂的交互也会为实体带来更高层的语义信息。本部分考虑使用图神经网络(GNN)的方式进行建模,对于图神经网络的基本概念介绍可以参考下面两个链接:GNN介绍1GNN介绍2
  本文所使用的聚合算法为: z h ( l ) = g ( z h ( l − 1 ) , z N h ( l − 1 ) ) z^{(l)}_h=g(z^{(l-1)}_h,z^{(l-1)}_{N_h}) zh(l)=g(zh(l1),zNh(l1)),其中 z h ( l ) z^{(l)}_h zh(l)表示的是实体 h h h在经过 l l l轮聚合后的结果, z h ( l − 1 ) z^{(l-1)}_h zh(l1)自然表示前一轮的聚合结果,在起始阶段 z h ( 0 ) = e h r z^{(0)}_h=e^r_h zh(0)=ehr z N h ( l − 1 ) z^{(l-1)}_{N_h} zNh(l1)表示在聚合了 l − 1 l-1 l1轮后与实体 h h h距离为一跳的邻居节点的所有信息,其对应内容如如下式所示:
在这里插入图片描述
  其中, α ( h , r , t ) \alpha(h,r,t) α(h,r,t)表示注意力机制,其对应公式为 α ( h , r , t ) = e t r T t a n h ( e h r + e r ) \alpha(h,r,t)=e^{r\text{T}}_ttanh(e^r_h+e_r) α(h,r,t)=etrTtanh(ehr+er),其中 e r e_r er是在上一步中获得的,其余则表示对应的实体embedding。
  具体来说,聚合更新函数 g ( z h ( l − 1 ) , z N h ( l − 1 ) ) = L e a k y R u L U ( ( z h ( l − 1 ) ∣ ∣ z N h ( l − 1 ) ) W ( l ) ) g(z^{(l-1)}_h,z^{(l-1)}_{N_h})=LeakyRuLU((z^{(l-1)}_h||z^{(l-1)}_{N_h})W^{(l)}) g(zh(l1),zNh(l1))=LeakyRuLU((zh(l1)∣∣zNh(l1))W(l)),其中·||·为拼接操作, W ( l ) W^{(l)} W(l)为投影变换矩阵。利用上述方式,将所有的实体进行L次聚合得到高阶语义信息。例如对于实体 h h h,我们最终获得的高阶语义信息为: z h ∗ = z h ( 0 ) ∣ ∣ . . . . . . ∣ ∣ z h ( L ) z^*_h=z^{(0)}_h||......||z^{(L)}_h zh=zh(0)∣∣......∣∣zh(L)
  在已知了所有实体以及交互关系的embedding后,我们利用公式: y ^ h t = z h ∗ T z t ∗ \hat{y}_{ht}=z^{*\text{T}}_hz^{*}_t y^ht=zhTzt来预测两个实体不会交互的概率,如果其大于某一人为设定阈值,则我们认为这一交互构成潜在威胁。
  对于多跳信息模型的损失函数,如下图公式所示:
在这里插入图片描述
其中 r 0 r_0 r0表示交互关系,通过上述损失函数使得在KG中的实体交互出现可能性大,不在实体中的交互出现可能小。


4. 组块3:威胁检测

  最终,总的损失函数如下图所示:
在这里插入图片描述
  其中包含了单跳和多跳的损失函数, Θ \Theta Θ表示模型正则项,代表向量与可训练参数的二范数, λ \lambda λ表示人为设置的超参数,该项用于解决模型过拟合问题。


5. 组块4:人为干预

  由于系统在自己更新迭代,当新的实体与交互关系出现时,如果本文模型SHADEWATCHER没有见过,则其大概率会认为是潜在的威胁,定义为攻击。此时,需要分析师的人为干预,将这些正常的新交互添加到数据集中进行额外的训练。更具体地说,为了验证警报的性质,分析人员需要通过跟踪潜在恶意交互中两个系统实体之间的来源来重建攻击场景。分析师面临的主要挑战是理解以前未见过的交互,例如程序第一次加载配置文件等。


三、总结

  以上就是我对本篇文章方法的总结,本篇文章的实验部分我并没有发出来,有兴趣的读者可以去自行阅读。总的来说,本篇文章对APT有着独特的见解,将其与信息检索领域的“推荐系统”研究方向进行结合,获得了良好的效果。但是本文模型也存在着一些问题,例如依旧需要分析师的干预,并且人工成本不低,同时对于一个实时监测系统,当溯源图改变时系统的处理方式并不完善。

四、参考文献

[1] J. Zeng, Z. L. Chua, Y. Chen, K. Ji, Z. Liang, and J. Mao, “Watson: Abstracting behaviors from audit logs via aggregation of contextual semantics,” in NDSS, 2021.
[2] A. Bordes, N. Usunier, A. Garcia-Duran, J. Weston, and O. Yakhnenko, “Translating embeddings for modeling multi-relational data,” in NeurIPS, 2013.
[3] Y. Lin, Z. Liu, M. Sun, Y. Liu, and X. Zhu, “Learning entity and relation embeddings for knowledge graph completion,” in AAAI, 2015.
[4] T. N. Kipf and M. Welling, “Semi-supervised classification with graph convolutional networks,” in ICLR, 2017.

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值