【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)

Zeng J, Chua Z L, Chen Y, et al. WATSON: Abstracting Behaviors from Audit Logs via Aggregation of Contextual Semantics[C]//NDSS. 2021.

TC_e3 trace、攻击调查、TransE、

以信息流为边界提取子图,为子图提取行为表示,进一步聚类,分析师只需分析一个簇的代表事件

1. 摘要&引言

WATSON,一种通过推断和汇总审计事件语义来抽象行为的自动化方法,使用审计日志中的上下文来揭示事件的语义。WATSON通过将行为提取为连续的系统操作, 将事件语义整合为行为表示。为了减少分析工作量,WATSON 进一步对语义相似的行为进行聚类,并区分出代表行为供分析师调查。高的准确性、攻击调查的分析工作量减少两个数量级。

提取行为抽象两大挑战:事件语义区分(低级行为在不同场景有不同语义)和行为识别(数据规模大,分割和识别难度大)

应对:语义可以通过上下文揭示、系统实体的信息流为高级行为提供了自然边界

围绕用户预期目标的高级行为可以反映为一系列应用于数据对象的系统操作。具体来说,WATSON 将行为定义为用户的预期目标,而将实现目标的手段定义为行为实例。每个行为实例都是用户为实现目标而执行的一系列操作。这些操作可以进一步建模为数据传输,而行为实例则是这些数据传输的序列。

WATSON 首先利用基于翻译的嵌入模型,根据日志中的上下文信息推断出审计事件的语义。然后,识别与相关数据对象(即文件和网络套接字)相连的事件,并将其语义汇总为高级行为表现。最后,WATSON 对审计日志中记录的类似行为进行聚类,并区分出代表行为供分析师调查。

2. 系统设计

【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)_第1张图片

2.1 事件语义推理

采用TransE对三元组进行嵌入,这是一个基于翻译的模型,给定一个三元组(Head、Relation、Tail),Tail 的位置就是 Head 加上 Relation 的翻译(即 Head + Relation ≈ Tail)。考虑 (cc1, read, a.c) 和 (cc1, read, b.c) 的情况。由于 TransE 使用 cc1 + read 更新了 a.c 和 b.c 的嵌入,因此它们在嵌入空间中的位置很近,表明语义相似。

在训练阶段,TransE 通过最小化 KG 中发现的三元组(训练三元组)的平移距离,同时最大化 KG 中未发现的三元组(损坏三元组)的平移距离,来优化元素的嵌入空间。我们用随机元素替换训练三元组中的 “头”(Head)或 “尾”(Tail),并确保新的三元组不存在于 KG 中,从而生成损坏的三元组。嵌入模型优化的损失函数总结如下:
L = ∑ ( h , r , t ) ∈ K G ∑ ( h ′ , r ′ , t ′ ) ∉ K G ( ∥ e h + e r − e t ∥ − ∥ e h ′ + e r ′ − e t ′ ∥ + γ ) L=\sum_{(h,r,t)\in\boldsymbol{KG}}\sum_{(h^{\prime},r^{\prime},t^{\prime})\notin\boldsymbol{KG}}(\|e_{\boldsymbol{h}}+e_{\boldsymbol{r}}-e_{\boldsymbol{t}}\|-\|e_{\boldsymbol{h}}\prime+e_{\boldsymbol{r}}\prime-e_{\boldsymbol{t}}\prime\|+\gamma) L=(h,r,t)KG(h,r,t)/KG(eh+ereteh+eret′∥+γ)

h、r 和 t 分别代表 “头”(Head)、“关系”(Relation)和 “尾”(Tail)元素。Margin γ是模型里面的参数,用于修正两种元素的区分,值越大区分越明显,可以想象在两个平面之间加一条隔离带将两种元组分来,否则这个界限就只是一条线。TransE 的结果是一个 n × m 的嵌入矩阵,n为元素个数(包含subject,object,action),m为嵌入维数。

为了进一步推断审计事件的语义,我们将其组成元素(Head、Relation 和 Tail)的嵌入连接起来,生成一个 3m 维的向量(在我们的例子中为 192 维)。

2.2 行为总结

我们将行为实例定义为对相关数据进行操作并通过信息流相互关联的审计事件序列。因此,总结单个行为实例的问题可以简化为提取会话 KG 中以数据对象(即文件和网络套接字)为根的因果连接子图

为了提取能概括行为实例的子图,我们对会话的 KG 执行了以数据对象为根的适应性前向深度优先搜索(DFS)。在普通前向 DFS 中,这样会丢失祖先,因为它们属于后向依赖关系。因此,我们在图遍历过程中进一步加入了已到达系统实体的单跳传入边。此外,我们并不根据深度级别来约束 DFS,而是根据特定领域的系统实体(例如由众多进程读写的文件 )来约束 DFS。虽然解决一般的依赖性爆炸问题不在本工作的范围之内,但我们的目标是通过应用启发式方法来指定可能触发依赖性爆炸的系统实体(如 .bash_history 和 firefox),将其作为 DFS 的终止条件,从而减轻依赖性爆炸的影响

为了保证不丢失行为实例,我们会对 KG 中的每一个数据对象执行调整后的 DFS,但不反映用户预期目标根源的库除外。如果一种行为是另一种行为的子集,则会进一步合并两种行为。

”不反映用户预期目标根源的库除外”是否是指利用先验知识排除一些数据对象,减少dfs次数

2.3 行为语义聚合

事件相对重要性:实例中的各个操作对实例所代表的意图的贡献值不一样,因此,采用反向文档频率(IDF)来确定特定事件对整体行为的重要性。事件被视为术语,会话被视为文档。
w I D F ( e ) = log ⁡ ( S S e ) w_{IDF}(e)=\log\left(\frac S{S_e}\right) wIDF(e)=log(SeS)
S S S为会话数, S e S_e Se为包含事件 e e e的会话数。

减少噪声:(1)冗余文件:如临时文件,整个生命周期只与单进程交互,删掉不影响。(2)平凡事件:定期执行的文件操作,只与系统例程而非特定行为有关,总是出现在给定的额操作中而且出现的顺序固定。如文件编辑历史的缓存(vim, write, .viminfo)和shell程序的设置(bash, read, etc/profile)。

为了识别和过滤平凡事件,首先列举程序在生命周期内产生的一系列事件,根据动作事件,将总是以固定模式出现的事件归纳为平凡事件。由此将平凡事件的识别转化为最长公共子序列的搜索问题。

我们尝试了不同的池化方法,如加法池化、双交互池化和全局平均池化。最终我们采用了加法池法,因为我们发现,简单地对事件语义进行求和就已经有效地整合了事件的语义信息。总之,行为抽象阶段将基于日志的 KG 作为输入,并在 3m 维嵌入空间中生成行为实例的向量表示。

2.4 行为聚类

行为实例是高级行为实现方式的变体,一种行为可以被视为一个由类似实例组成的群集。鉴于行为实例的向量表示,WATSON 使用余弦相似度计算它们之间的语义关系
S ( F m , F n ) = F m ⋅ F n ∥ F m ∥ × ∥ F n ∥ = ∑ e i ∈ F m ∑ e j ∈ F n e i ⋅ e j ∑ e i ∈ F m ( e i ) 2 × ∑ e j ∈ F n ( e j ) 2 \mathrm{S}\left(F_{\boldsymbol{m}},F_{\boldsymbol{n}}\right)=\frac{F_{\boldsymbol{m}}\cdot F_{\boldsymbol{n}}}{\left\|F_{\boldsymbol{m}}\right\|\times\left\|F_{\boldsymbol{n}}\right\|}=\frac{\sum_{e_{i}\in\boldsymbol{F_{\boldsymbol{m}}}}\sum_{e_{j}\in\boldsymbol{F_{\boldsymbol{n}}}}e_{i}\cdot e_{j}}{\sqrt{\sum_{e_{i}\in\boldsymbol{F_{\boldsymbol{m}}}}\left(e_{i}\right)^{2}}\times\sqrt{\sum_{e_{j}\in\boldsymbol{F_{\boldsymbol{n}}}}\left(e_{j}\right)^{2}}} S(Fm,Fn)=Fm×FnFmFn=eiFm(ei)2 ×ejFn(ej)2 eiFmejFneiej
WATSON 采用聚合分层聚类分析(HCA)算法对相似的行为实例进行聚类。最初,每个行为实例都属于自己的聚类。然后,HCA 会反复计算聚类之间的余弦相似度,并将两个最接近的聚类合并,直到最大相似度低于合并阈值(本例中为 0.85)。我们选择中心点关联作为确定聚类之间相似性的标准。

WATSON 通过计算簇中每个实例与其他实例的平均相似度来量化其代表性。相似度最大的实例将被挑选出来作为特征代表整个簇,供分析人员快速调查。

3. 评估

四个数据集:三个实验室数据集+TC e3,实验室数据集包括良性数据集、恶意数据集和一个后台数据集,有无恶意行为未知。实验室数据集用于测试可解释性和准确性,TC用于探索攻击调查的功效。

3.1 事件语义推理的可解释性

图5(a):点呈簇状分布,证明了事件确实是根据某种相似度指标分组的。

图5(b):git push更靠近scp和wget而非git init和git add,证明了确实能提取到行为的高层意图(git push是上传),两个ssh相聚较远是因为前者使用了X-forwarding而后者没有,这也反映了语义上的差异。

图5©:套接字和文件是分开的,两个22端口的IP没有在一起是由于投影的偏差,实际上是相似的。

【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)_第2张图片

我们计算基于 KG 的三元组中的平移距离,以量化 WATSON 学习到的事件语义。这个距离值越小表示越常见,值越大表示越罕见。为了探索我们的事件语义是否与此类启发式方法一致,我们在分析语义距离时还考虑了事件是良性的还是恶意的。如果一个事件在攻击活动中发挥了关键作用,我们就将其归类为恶意事件。

【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)_第3张图片

三元组是经过one-hot编码的,为什么可以仅通过三元组来检测良性和恶性?如果可以,这个方案为什么不用于检测,而用于攻击调查?

3.2 行为抽象的准确性

对于每一个行为,先随机抽取其中一个会话生成相应的行为特征,然后使用该特征预测其余5279个会话中类似的行为。二者相似度超过0.85视为相似。平均F1分数92.8。

【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)_第4张图片

WATSON 在对恶意行为进行分类方面表现出了很高的准确性。在所有八种攻击场景中,WATSON 的召回率和精确率平均分别达到 95.0% 和 97.9%。80 个恶意会话中有 4 个被遗漏,5200 个良性会话中有 2 个被错误预测为恶意行为。分析师可以通过降低 HCA 中的合并阈值来进一步提高召回率,并最终检测出所有 80 个恶意会话。

3.3 嵌入方法对比

TransE在时间上比TransR快三倍,所以选择了后者

【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)_第5张图片

3.4 攻击调查效率

恶意数据集+TC e3_trace

【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)_第6张图片

【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)_第7张图片

3.5 时空开销

Intel® Core™ i9-9900X CPU @ 3.50GHz and 64GB,WATSON 可分别在 35 秒和 170 秒内从恶意会话和 DARPA 中抽象出行为。可以解析默认 auditbeat 格式的 40k 个审计事件,并在一秒钟内构建 KG。以 DARPA TRACE 数据集格式构建 KG 的速度约为每秒 70k。

在分析我们的恶意数据集(33 GB)和 DARPA TRACE 数据集(635 GB)时,内存消耗增加了 2.6 GB。存储开销主要来自审计事件的嵌入和行为数据库,恶意会话的平均存储开销为 18 MB(嵌入为 10 MB,行为为 8 MB),DARPA 图的平均存储开销为 121 MB(嵌入为 78 MB,行为为 43 MB)。我们注意到,存储开销不会随着会话或图的增加而线性增加,因为系统中的事件是重复发生的。

你可能感兴趣的:(论文阅读,攻击调查,APT攻击)