【论文阅读】SHADEWATCHER:使用系统审计记录的推荐引导网络威胁分析(SP-2022)

SHADEWATCHER: Recommendation-guided CyberThreat Analysis using System Audit Records

S&P-2022
新加坡国立大学、中国科学技术大学
Zengy J, Wang X, Liu J, et al. Shadewatcher: Recommendation-guided cyber threat analysis using system audit records[C]//2022 IEEE Symposium on Security and Privacy (SP). IEEE, 2022: 489-506.
开源:https://github.com/jun-zeng/ShadeWatcher
数据集:TC e3

目录

  • 0. 摘要
  • 1. 引言
  • 2. 背景与动机
    • A.动机实例
    • B. 现有方案的挑战
    • C. 推荐系统用于威胁检测
  • 3. 问题定义
  • 4. overview
  • 5. 推荐模型
    • A.一阶信息建模
    • B. 高阶信息建模
    • C. 威胁检测学习
    • D. 模型适应
  • 5. 实现
  • 6. 评估
  • 7. 附录



0. 摘要

  现有方法局限:误报、依赖专家知识、粗粒度检测信号

  在本文中,我们认识到网络安全中的威胁检测与信息检索中的推荐之间的结构相似性。通过将系统实体交互的安全概念映射到用户-项目交互的推荐概念,我们通过预测系统实体对其交互实体的偏好来识别网络威胁。受推荐系统中的 “通过项目辅助信息建模高阶连接” 的启发,定制了一个自动检测系统 SHADEWATCHER。

  • 它通过图神经网络发挥审计记录中高阶信息的潜力,提高检测效率
  • 配备动态更新,以更好地泛化错误警报
  • 现实生活和模拟网络攻击场景评估
  • 几秒钟内查明来自近百万系统实体交互的威胁

1. 引言

  现有的溯源图检测器:

  • 基于统计的检测:通过审计记录在溯源图中的稀有性来量化审计记录的可疑程度。容易对罕见但正常的系统活动产生大量误报。
  • 基于规范的检测:将审计记录与已知攻击模式相关的安全策略知识库进行匹配 。这种启发式方法的开发既耗时又容易出错。
  • 基于学习的检测:扩展了机器学习技术来模拟良性行为并检测它们的偏差。当前的学习方法会在粗粒度级别(例如行为级别)产生检测信号。

  通过将系统实体交互和实体上下文信息的网络安全概念映射到用户-项目交互和项目辅助信息的推荐概念,我们可以将网络威胁检测制定为推荐任务。特别是,我们观察到语义相似的系统实体会表现出相似的交互偏好。例如,敏感文件(例如 /etc/passwd 和 /etc/shadow)通常不与公共网络交互,否则表明数据泄露。基于这一观察,威胁检测可以进一步指定为预测系统实体不 “喜欢” 其交互实体的可能性。威胁检测的目标是系统实体不太可能喜欢的交互,因为此类交互通常是强烈的攻击指标。

  在本文中,我们介绍了 SHADEWATCHER,这是第一个通过系统实体交互建议来分析网络威胁的系统。

  • 上下文感知嵌入模型提取系统实体的辅助信息
  • 基于图神经网络的推荐模型,该模型通过递归传播来自相邻实体的信息来利用高阶连通性
  • 根据分析师对检测信号的反馈动态更新模型。这允许将错误推荐作为附加监督来集成,以提高其检测能力
  • 半监督,接受了未标记的良性系统实体交互与标记的分析师对误报反馈的组合训练

  考虑 Linux /proc 文件系统。由于 /proc/25/stat 和 /proc/27/stat 属于不同的进程,它们在来源图中通常是断开连接的,被直接连接视为因果无关。但是,它们都提供有关进程的状态信息,这些信息可以在考虑它们周围的边界上下文时反映出来。
  推荐领域探索了类似的问题,早期的推荐系统 [27]、[28] 假设行为相似的用户会共享对项目的偏好,以便他们通过历史用户项目交互找到相似的用户来理解用户偏好。然而,用户和项目之间的直接连接,称为一阶连接,不足以比较不同项目之间的语义相似性。为了解决这个问题,研究人员进一步考虑了项目的辅助信息,例如电影的类型,以捕获项目语义。其核心是辅助信息可以形成高阶连接,以链接在用户-项目交互中断开连接的相似项目。

这些设计使得shadewatcher在以下方面优于现有检测器:

  • 不是将历史频率作为衡量怀疑程度的指标,而是推断系统实体的内在语义以发现异常交互
  • 提供了一种端到端的解决方案,可以在事先不知道攻击的情况下检测威胁
  • 产生细粒度的检测信号,突出攻击的关键指标

使用DARPA TC评估,高精度和召回率。


2. 背景与动机

A.动机实例

  一个例子,25和27号进程虽然在溯源图上是没有直接关系的,但是根据后继信息是可以推出相关性的。

B. 现有方案的挑战

  基于异常的检测——误报高。良性的稀有事件逐渐泛化的过程会出现很多误报。
  基于规范的检测——耗时、依赖专家知识、主观性太强、质量参差不齐。
  基于学习的检测——可解释性差、只能定位,响应则需要人工进一步分析

C. 推荐系统用于威胁检测

  低可能性的交互视为潜在的网络威胁。

  如图1b所示,爱丽丝→钢铁侠和鲍勃→钢铁侠,表明爱丽丝和鲍勃之间的行为相似性。早期的推荐系统预测爱丽丝喜欢雷神,因为鲍勃喜欢它。然而,考虑到向特定用户推荐相关项目,用户-项目交互是不够的,因为它们无法比较项目语义相似性。为了解决这个问题,最近提出的方法利用项目辅助信息(side information,例如电影类型和工作室)来形成链接语义相似项目的高阶连接。例如,钢铁侠→动作→复仇者联盟和钢铁侠→漫威工作室→复仇者联盟的二阶连接表明爱丽丝可能更喜欢复仇者联盟,因为它的额外信息与钢铁侠的相同。

  类似地,更好地理解系统实体交互的一种直观方法是识别系统实体的辅助信息以形成高阶连接。例如,如果 /proc/27/stat 通过辅助信息(例如,图 1c 中的进程状态信息)与 /proc/25/stat 相关联,我们将确定它们共享与其他系统实体交互的概率(例如,缓存)。我们将上下文信息视为描述系统实体的辅助知识。因此,系统实体的因果关系形成了推荐中的用户-项目交互,而系统上下文提供了辅助信息以形成高阶连接。由于系统实体的上下文信息反映在起源图中的邻居中,因此我们将高阶连接捕获为关联相邻实体的多跳路径。例如,检测图 1a 中的扩展后门攻击变成推荐系统实体,gtcache 在图 1c 中不太可能与之交互。


3. 问题定义

一阶信息:单跳路径
高阶信息:多跳路径
二分图: G B = { ( e , y e e ′ ˙ , e ′ ) ∣ e , e ′ ∈ ˙ E ) } \mathcal{G}_{B}=\{(e,\dot{y_{ee^{\prime}}},e^{\prime})|e,e^{\prime}\dot{\in}\mathcal{E})\} GB={(e,yee˙,e)e,e˙E)} y e e ′ = 1 y_{ee^{\prime}}=1 yee=1意味着有交互,反之为0视为无交互
在这里插入图片描述


4. overview

在这里插入图片描述
四个主要阶段:构建知识图(KG)、生成推荐模型、检测网络威胁和调整模型

首先将系统审计记录转换为来源图(PG),并将系统实体交互提取为二分图(BG)。然后,将PG和BG组合成KG,然后使用KG学习推荐模型,该模型的目标是预测系统实体对其交互实体的偏好。

5. 推荐模型

主要由三个部分组成:1)对一阶信息进行建模,通过使用上下文将系统实体参数化为嵌入(即向量化表示);2)建模高阶信息,通过递归传播来自多跳相邻实体的信息来更新系统实体表示;3)学习检测威胁,在两个系统实体表示的顶部预测交互的对抗性概率。

A.一阶信息建模

为了优化TransR的表示学习,我们采用了基于边缘的两两排序损失,这使得有效元组(在KG中观察到)的可信性得分低于损坏元组(未观察到)的可信性得分。对于实体 h , t h,t h,t和关系 r r r
L f i r s t = ∑ ( h , r , t ) ∈ G K ∑ ( h ′ , r ′ , t ′ ) ∉ G K σ ( f ( h , r , t ) − f ( h ′ , r ′ , t ′ ) + γ ) \mathcal{L}_{first}=\sum_{(h,r,t)\in\mathcal{G}_K}\sum_{(h^{\prime},r^{\prime},t^{\prime})\notin\mathcal{G}_K}\sigma(f(h,r,t)-f(h^{\prime},r^{\prime},t^{\prime})+\gamma) Lfirst=(h,r,t)GK(h,r,t)/GKσ(f(h,r,t)f(h,r,t)+γ)
我们通过用随机实体替换有效元组中的一个系统实体来生成损坏的元组。总之,最小化一阶建模的损失使我们能够将语义和行为相似性编码到系统实体表示中。

B. 高阶信息建模

一个例子: / p r o c / 25 / s t a t → r 0 g t c a c h e → r 0 / p r o c / 27 / s t a t /\mathrm{proc}/25/\mathrm{stat}\xrightarrow{r_0}\mathrm{gtcache}\xrightarrow{r_0}/\mathrm{proc}/27/\mathrm{stat} /proc/25/statr0 gtcacher0 /proc/27/stat l e t c / p a s s w d → r 1 g t c a c h e → r 4 146.153.68.151 : 80 letc/passwd \xrightarrow{r_1}gtcache \xrightarrow{r_4}146.153.68.151:80 letc/passwdr1 gtcacher4 146.153.68.151:80,同样是多跳链接,前者表现出相似性,而后者表现出具体的信息信息行为。

采用GNN模型将多跳路径集成到系统实体中,对于实体 h h h
z h ( l ) = g ( z h ( l − 1 ) , z N h ( l − 1 ) ) \mathbf{z}_{h}^{(l)}=g(\mathbf{z}_{h}^{(l-1)},\mathbf{z}_{\mathcal{N}_{h}}^{(l-1)}) zh(l)=g(zh(l1),zNh(l1)),前者为 h h h 在传播层前一层的表示,后者为邻居传播来的信息。
z N h ( l − 1 ) = ∑ ( h , r , t ) ∈ N h α ( h , r , t ) z t ( l − 1 ) \mathbf{z}_{\mathcal{N}_h}^{(l-1)}=\sum_{(h,r,t)\in\mathcal{N}_h}\alpha(h,r,t)\mathbf{z}_{t}^{(l-1)} zNh(l1)=(h,r,t)Nhα(h,r,t)zt(l1)
为了区分对于当前实体贡献不同的邻居实体,引入注意力机制, α \alpha α为注意力函数。

在信息聚合方面,采用GraphSage Aggregator更新系统实体表示。
g ( z h ( l − 1 ) , z N h ( l − 1 ) ) = L e a k y R e L U ( ( z h ( l − 1 ) ∣ ∣ z N h ( l − 1 ) ) W ( l ) ) g(\mathbf{z}_{h}^{(l-1)},\mathbf{z}_{\mathcal{N}_{h}}^{(l-1)})=\mathrm{LeakyReLU}((\mathbf{z}_{h}^{(l-1)}||\mathbf{z}_{\mathcal{N}_{h}}^{(l-1)})\mathbf{W}^{(l)}) g(zh(l1),zNh(l1))=LeakyReLU((zh(l1)∣∣zNh(l1))W(l))

C. 威胁检测学习

经过L次信息传播和聚合迭代,我们得到实体h的一系列表示,进一步聚合,得到最终的表示 z h ∗ = z ( 0 ) ∣ ∣ ⋯ ∣ ∣ z h ( L ) \mathbf{z}_{h}^{*}=\mathbf{z}^{(0)}||\cdots||\mathbf{z}_{h}^{(L)} zh=z(0)∣∣∣∣zh(L),对于任意实体 h , t h,t h,t,采用内积来预测交互的可能性。 y ^ h t = z h ∗ ⊤ z t ∗ \hat{y}_{ht}=\mathbf{z}_h^*{}^\top\mathbf{z}_t^* y^ht=zhzt
L h i g h e r = ∑ ( h , r 0 , t ) ∈ G K ( h ′ , r 0 , t ′ ) ∉ G K σ ( y ^ h t − y ^ h ′ t ′ ) \mathcal{L}_{higher}=\sum_{(h,r_0,t)\in\mathcal{G}_K(h^{\prime},r_0,t^{\prime})\notin\mathcal{G}_K}\sigma(\hat{y}_{ht}-\hat{y}_{h^{\prime}t^{\prime}}) Lhigher=(h,r0,t)GK(h,r0,t)/GKσ(y^hty^ht) L = L f i r s t + L h i g h e r + λ ∥ Θ ∥ \mathcal{L}=\mathcal{L}_{first}+\mathcal{L}_{higher}+\lambda\left\|\Theta\right\| L=Lfirst+Lhigher+λΘ

D. 模型适应

我们为分析师提供了一个选项,可以在假阳性相互作用上给出新的标签,允许SHADEWATCHER使用假警报作为额外的监督修改其推荐模型。

5. 实现

6. 评估

TC-e3-trace+仿真数据集
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对比试验:Poirot和Morse
shadewatcher无需先验知识,粒度更细

模型适应性
在这里插入图片描述
耗时
在这里插入图片描述

7. 附录

  • 学习的方法如果推广到在线检测,会产生概念漂移。一个潜在的解决方案是考虑系统实体的形态学知识(例如,文件路径、所有者和特权),以概括和捕获以前未观察到的实体的语义。
  • 减少噪声:不会改变数据来源的冗余活动,如多次接收数据包;临时文件;与库文件的交互
  • 学习行为的可视化
    在这里插入图片描述

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

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

相关文章

学C的第三十四天【程序环境和预处理】

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 学C的第三十三天【C语言文件操作】_高高的胖子的博客-CSDN博客 1 . 程序的翻译环境和执行环境 在ANSI C(C语言标准)的任何一种实现中,存在两个不同的环境。 &#xff0…

容器虚拟化基础之cgroups/LXC

"你真的,自由了~" 容器虚拟化基础之Cgroups: (1) 什么是cgroups cgroups是 linux 内核提供的一种机制, 这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一…

3D与沉浸式技术,如何助力企业数字化转型?

说起3D,估计许多读者朋友会在第一时间想起《阿凡达》系列和《侏罗纪公园》系列电影大作。每一帧细节纤毫毕现的逼真画面,让观众几乎分不清虚拟与现实,完全沉浸在导演打造的视觉盛宴中。 事实上,除了大家所熟知的3D影视动画之外&am…

快速学习GO语言总结

备注:本博客将自己初步学习GO的总结进行分享,希望大家通过本博客可以在短时间内快速掌握GO的基本程序编码能力,如有错误请留言指正,谢谢! 一、初步了解Go语言 (一)Go语言诞生的主要问题和目标…

iOS17 widget Content margin

iOS17小组件有4个新的地方可以放置分别是:Mac桌面、iPad锁屏界面、 iPhone Standby模式、watch的smart stack Transition to content margins iOS17中苹果为widget新增了Content margin, 使widget的内容能够距离边缘有一定的间隙,确保内容显示完整。这…

学习设计模式之适配器模式,但是宝可梦

前言 作者在准备秋招中,学习设计模式,做点小笔记,用宝可梦为场景举例,有错误欢迎指出。 适配器模式 意图:将一个类的接口转换成客户希望的另一个接口 主要解决:把现有对象放到新环境里,而新…

IDEA 如何制作代码补丁?IDEA 生成 patch 和使用 patch

什么是升级补丁? 比如你本地修复的 bug,需要把增量文件发给客户,很多场景下大家都需要手工整理修改的文件,并整理好目录,这个很麻烦。那有没有简单的技巧呢?看看 IDEA 生成 patch 和使用 patch 的使用。 介…

一、Kafka概述

目录 1.3 Kafka的基础架构 1.3 Kafka的基础架构 Producer:消息生产者,就是向 Kafka broker 发消息的客户端Consumer:消息消费者,向 Kafka broker 取消息的客户端。Consumer Group(CG):消费者组&…

PyTorch学习笔记(十六)——利用GPU训练

一、方式一 网络模型、损失函数、数据(包括输入、标注) 找到以上三种变量,调用它们的.cuda(),再返回即可 if torch.cuda.is_available():mynn mynn.cuda() if torch.cuda.is_available():loss_function loss_function.cuda(…

SpringMVC之@RequestMapping注解

文章目录 前言一、RequestMapping介绍二、详解(末尾附源码,自行测试)1.RequestMapping注解的位置2.RequestMapping注解的value属性3.RequestMapping注解的method属性4.RequestMapping注解的params属性(了解)5.RequestM…

华为ENSP网络设备配置实战6(简单的链路聚合)

题目要求 1、创建聚合组,添加端口成员 2、PC1网段为vlan10,PC2网段为vlan20 3、LSW1为核心网关设备,正确配置PC网关 4、PC1与PC2互通 解题过程 1.1、 按照拓扑图,各个设备起名 sys (进入系统视图) sy…

TCP协议报文结构

TCP是什么 TCP(传输控制协议)是一种面向连接的、可靠的、全双工的传输协议。它使用头部(Header)和数据(Data)来组织数据包,确保数据的可靠传输和按序传递。 TCP协议报文结构 下面详细阐述TCP…

FRP内网穿透,配置本地电脑作为服务器

FRP内网穿透,配置本地电脑作为服务器 下载FRP服务端客户端 参考链接: https://www.it235.com/实用工具/内网穿透/pierce.html https://www.cnblogs.com/007sx/p/17469301.html 由于没有公网ip,所以尝试内网穿透将本地电脑作为服务器&#xff…

【Mariadb高可用MHA】

目录 一、概述 1.概念 2.组成 3.特点 4.工作原理 二、案例介绍 1.192.168.42.3 2.192.168.42.4 3.192.168.42.5 4.192.168.42.6 三、实际构建MHA 1.ssh免密登录 1.1 所有节点配置hosts 1.2 192.168.42.3 1.3 192.168.42.4 1.4 192.168.42.5 1.5 192.168.42.6 …

(二)结构型模式:7、享元模式(Flyweight Pattern)(C++实例)

目录 1、享元模式(Flyweight Pattern)含义 2、享元模式的UML图学习 3、享元模式的应用场景 4、享元模式的优缺点 5、C实现享元模式的简单实例 1、享元模式(Flyweight Pattern)含义 享元模式(Flyweight&#xff09…

OpenCV笔记之solvePnP函数和calibrateCamera函数对比

OpenCV笔记之solvePnP函数和calibrateCamera函数对比 文章目录 OpenCV笔记之solvePnP函数和calibrateCamera函数对比1.cv::solvePnP2.cv::solvePnP函数的用途和工作原理3.cv::solvePnP背后的数学方程式4.cv::SOLVEPNP_ITERATIVE、cv::SOLVEPNP_EPNP、cv::SOLVEPNP_P3P5.一个固定…

为什么需要单元测试?

为什么需要单元测试? 从产品角度而言,常规的功能测试、系统测试都是站在产品局部或全局功能进行测试,能够很好地与用户的需要相结合,但是缺乏了对产品研发细节(特别是代码细节的理解)。 从测试人员角度而言…

Qt应用开发(基础篇)——纯文本编辑窗口 QPlainTextEdit

一、前言 QPlainTextEdit类继承于QAbstractScrollArea,QAbstractScrollArea继承于QFrame,是Qt用来显示和编辑纯文本的窗口。 滚屏区域基类https://blog.csdn.net/u014491932/article/details/132245486?spm1001.2014.3001.5501框架类QFramehttps://blo…

Elasticsearch复合查询之Boosting Query

前言 ES 里面有 5 种复合查询,分别是: Boolean QueryBoosting QueryConstant Score QueryDisjunction Max QueryFunction Score Query Boolean Query在之前已经介绍过了,今天来看一下 Boosting Query 用法,其实也非常简单&…

Chapter 15: Object-Oriented Programming | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介Object-oriented programmingManaging larger programsGetting startedUsing objectsStarting with programsSubdividing a problemOur first Python objectClasses as typesObject lifecycleMultiple instancesInheritanceSummaryGlossa…