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

这篇具有很好参考价值的文章主要介绍了【论文阅读】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),论文阅读,攻击调查,APT攻击

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),论文阅读,攻击调查,APT攻击

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

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

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

3.2 行为抽象的准确性

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

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

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

3.3 嵌入方法对比

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

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

3.4 攻击调查效率

恶意数据集+TC e3_trace

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

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

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)。我们注意到,存储开销不会随着会话或图的增加而线性增加,因为系统中的事件是重复发生的。文章来源地址https://www.toymoban.com/news/detail-697900.html

到了这里,关于【论文阅读】WATSON:通过聚合上下文语义从审计日志中抽象出行为(NDSS-2021)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python】flask执行上下文context,请求上下文和应用上下文原理解析

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开

    2024年03月26日
    浏览(64)
  • 超长上下文处理:基于Transformer上下文处理常见方法梳理

    原文链接:芝士AI吃鱼 目前已经采用多种方法来增加Transformer的上下文长度,主要侧重于缓解注意力计算的二次复杂度。 例如,Transformer-XL通过缓存先前的上下文,并允许随着层数的增加线性扩展上下文。Longformer采用了一种注意力机制,使得token稀疏地关注远距离的token,从而

    2024年02月13日
    浏览(51)
  • 无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制

    目前,ChatGPT、Llama 2、文心一言等主流大语言模型,因技术架构的问题上下文输入一直受到限制,即便是Claude 最多只支持10万token输入,这对于解读上百页报告、书籍、论文来说非常不方便。 为了解决这一难题,加州伯克利分校受操作系统的内存管理机制启发,提出了MemGPT。

    2024年02月06日
    浏览(63)
  • 从零开始理解Linux中断架构(7)--- Linux执行上下文之中断上下文

            当前运行的loop是一条执行流,中断程序运行开启了另外一条执行流,从上一节得知这是三种跳转的第三类,这个是一个大跳转。对中断程序的基本要求就是 中断执行完毕后要恢复到原来执行的程序 ,除了时间流逝外,原来运行的程序应该毫无感知。        

    2024年02月11日
    浏览(66)
  • 〖大前端 - 基础入门三大核心之JS篇(51)〗- 面向对象之认识上下文与上下文规则

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超级个体得主、谷

    2024年02月05日
    浏览(60)
  • Servlet 上下文参数

    2024年02月05日
    浏览(57)
  • 【Spring | 应用上下文】

      本节介绍如何使用资源创建应用程序上下文,包括使用 XML 的快捷方式、如何使用通配符以及其他详细信息。   应用上下文构造函数(针对特定的应用上下文类型)通常将字符串或字符串数组作为资源的位置路径,例如构成上下文定义的 XML 文件。 示例如下    Clas

    2024年02月16日
    浏览(40)
  • 上下文切换性能篇

    现代操作系统都是多任务的分时操作系统,也就是说同时响应多个用户交互或同时支持多个任务处理,因为 CPU 的速度很快而用户交互的频率相比会低得多。所以例如在 Linux 中,可以支持远大于 CPU 数量的任务同时执行,对于单个 CPU 来说,其实任务并不是在同时执行,而是操

    2024年02月15日
    浏览(54)
  • CPU上下文切换

    CPU 上下文切换,就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。 CPU 的上下文切换就可以分为几个不同的场景,也就是进程上下文切换、

    2024年02月14日
    浏览(36)
  • js执行上下文

    创造执行上下文,是为了把变量声明给保存下来,在执行时,好找到变量用 看代码要分执行前(构建执行上下文)和执行时去看 执行上下文的组成 1、词法环境:[全局对象]、scope、outer 2、This Binding:提供this的访问 构建执行上下文 1、处理声明 2、检查重复定义 3、初步赋值

    2024年02月02日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包