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

news2025/1/8 19:06:35

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. 系统设计

image-20230904211203115

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没有在一起是由于投影的偏差,实际上是相似的。

image-20230905171346933

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

image-20230905184543665

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

3.2 行为抽象的准确性

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

image-20230906095452820

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

3.3 嵌入方法对比

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

image-20230906102337305

3.4 攻击调查效率

恶意数据集+TC e3_trace

image-20230906131701636

image-20230906134209877

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)。我们注意到,存储开销不会随着会话或图的增加而线性增加,因为系统中的事件是重复发生的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/979203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode 655. 输出二叉树(java)

输出二叉树 题目描述代码演示 题目描述 难度 - 中等 leetcode 655. 输出二叉树 给你一棵二叉树的根节点 root ,请你构造一个下标从 0 开始、大小为 m x n 的字符串矩阵 res ,用以表示树的 格式化布局 。构造此格式化布局矩阵需要遵循以下规则&#xff1a…

【报错】 Cannot create property ‘showColumn‘ on number ‘-1‘

1、报错原因: 代码如下: 报错是因为:this.findObject(this.option.column, "thirdId")是一个number ,没有.showColumn属性 2、修改代码 将其变成object属性就行了

智慧工厂的未来:数字孪生的多重应用

数字孪生技术在智慧工厂项目中具有广泛的应用,为生产制造提供了前所未有的机会和优势。下面将探讨数字孪生技术在智慧工厂项目中的多个应用场景。 数字孪生技术的首要应用之一是生产流程优化。通过将现实世界的工厂映射到数字孪生模型中,制造商可以模拟…

apex应用程序创建和对比

创建一个应用程序290,功能全不选展现出来的效果: 对比勾选了功能的应用程序少了很多内容 那看来该勾选还得勾选,删除之前的之后重新创建了一个应用程序290 自己跟着做应用 搜索栏下拉选择部门 在数据库使用sql语句查询,在数据库中…

文字转语音TTS bark SpeechT5 mms

bark GitHub - suno-ai/bark: 🔊 Text-Prompted Generative Audio Model microsoft SpeechT5 https://github.com/microsoft/SpeechT5 使用 SpeechT5 进行语音合成、识别和更多功能 - 掘金 Facebook mms https://github.com/facebookresearch/fairseq/tree/mai…

vue使用百度地图实现地点查询

效果 代码 首先在index.html中引入script&#xff1a; <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width,initial-scal…

DC电源模块过压保护功能介绍

BOSHIDA DC电源模块过压保护功能介绍 DC电源模块&#xff08;也叫直流电源模块&#xff09;是一种常见的设备&#xff0c;它可以将交流电转换为直流电&#xff0c;用于供电给各种电子设备。DC电源模块通常具有多种保护功能&#xff0c;其中过压保护是其中一项重要的保护功能。…

Spring boot +Thymeleaf 本地图片加载失败(图片路径)的问题及解决方法

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 前言 在Spring Boot应用程序中&#xff0c;有时候我们会遇到本地图片不…

前后端数据加密传输基于AES+RSA实现

前后端数据加密传输基于AESRSA实现 什么是AES和RSA AES AES&#xff08;Advanced Encryption Standard&#xff09;是一种对称加密算法&#xff0c;它的加密速度快&#xff0c;安全性也比较高&#xff0c;是目前广泛使用的加密算法之一。AES的密钥长度可以选择128位、192位和…

腾讯云新用户云服务器特惠价格表(2023年)

腾讯云作为国内领先的云计算服务提供商&#xff0c;一直致力于为全球用户提供稳定、安全、高效的云计算服务。对于新用户而言&#xff0c;腾讯云提供了多种特惠的云服务器套餐&#xff0c;以满足不同用户的需求。 1、轻量应用服务器 腾讯云的轻量应用服务器提供了高性价比的解决…

Java 大文件排序

大文件排序 http://en.wikipedia.org/wiki/Merge_sort http://en.wikipedia.org/wiki/External_sorting 外排序 通常来说&#xff0c;外排序处理的数据不能一次装入内存&#xff0c;只能放在读写较慢的外存储器&#xff08;通常是硬盘&#xff09;上。 外排序通常采用的是…

Oracle数据库概念简介

1. 数据库 一般意义上的数据库包含两个部分 库&#xff1a;就是一个存储一堆文件的文件目录数据库管理系统&#xff1a;管理库的系统 2. DBMS 数据库管理系统 数据库管理系统(Database Management System)&#xff0c;是一种操纵和管理数据库的大型软件&#xff0c;用于建立…

vue中v-for循环数组使用方法中splice删除数组元素(每次都删掉点击的下面的一项)

总结&#xff1a;平常使用v-for的key都是使用index&#xff0c;这里vue官方文档也不推荐&#xff0c;这个时候就出问题了&#xff0c;我们需要key为唯一标识&#xff0c;这里我使用了时间戳&#xff08;new Date().getTime()&#xff09;处理比较复杂的情况&#xff0c; 本文章…

mac安装adobe需要注意的tips(含win+mac all安装包)

M2芯片只能安装2022年以后的&#xff08;包含2022年的&#xff09; 1、必须操作的开启“任何来源” “任何来源“设置&#xff0c;这是为了系统安全性&#xff0c;苹果希望所有的软件都从商店或是能验证的官方下载&#xff0c;导致默认不允许从第三方下载应用程序。macOS sie…

接口参数校验

方式一&#xff1a;使用hibernate-validator注解方式参数校验 类似的框架太多了。缺点&#xff1a;返回的提示信息顺序不太确定 文档&#xff1a;https://hibernate.org/validator/documentation/ 参考资料&#xff1a;https://blog.csdn.net/weixin_45080272/article/details…

C++二叉树

代码随想录 (programmercarl.com) 二叉树理论基础篇 #算法公开课 《代码随想录》算法视频公开课 (opens new window) 大纲如下&#xff1a; 说到二叉树&#xff0c;大家对于二叉树其实都很熟悉了&#xff0c;本文呢我也不想教科书式的把二叉树的基础内容再啰嗦一遍&#xf…

npm/yarn link 测试包时报错 Warning: Invalid hook call. Hooks can only be called ...

使用 dumi 开发 React 组件库时&#xff0c;为避免每次修改都发布到 npm&#xff0c;需要在本地的测试项目中使用 npm link 为组件库建立软连接&#xff0c;方便本地调试。 结果在本地测试项目使用 $ npm link 组件库 后&#xff0c;使用内部组件确报错&#xff1a; react.dev…

4.(高级示例篇)leaflet移动端交互示例

注&#xff1a;高级示例博客不提供源码 地图之家总目录&#xff08;订阅之前建议先查看该博客&#xff09; 效果如下所示&#xff1a; leaflet移动端交互示例

2023年必须要知道的AI热词,看这一篇就够了!

2023年是AI工具大爆发的一年&#xff0c;随着AI的快速发展&#xff0c;出现了很多AI相关的名词&#xff0c;今天带你详细了解那些热门的AI词。 思维导图&#xff1a; https://gitmind.cn/app/docs/muksa9nd AI 人工智能 Artificial Intelligence&#xff0c;即人工智能&…

如何在VueJS应用程序中设置Toast通知

通知是开发者提升应用程序互动性和改善用户体验的强大工具。通过利用通知&#xff0c;开发者可以在用户与应用程序互动的同时&#xff0c;有效地向用户传达重要事件。 通知在应用程序中起着至关重要的作用&#xff0c;可以及时通知用户有关各种操作和事件的信息。它们可以用于通…