【论文阅读】EULER:通过可扩展时间链接预测检测网络横向移动(NDSS-2022)

news2024/11/26 20:46:23

作者:乔治华盛顿大学-Isaiah J. King、H. Howie Huang
引用:King I J, Huang H H. Euler: Detecting Network Lateral Movement via Scalable Temporal Graph Link Prediction [C]. Proceedings 2022 Network and Distributed System Security Symposium, 2022.
原文地址:https://dl.acm.org/doi/pdf/10.1145/3588771
源码地址:https://github.com/iHeartGraph/Euler
数据集:LANL

目录

  • 0. 摘要
  • 1. 引言&动机
  • 2. 背景
  • 3. 动机
  • 4. EULER
    • A. 编码与解码器
    • B. 工作流程
    • C. 训练
    • D. 分类
  • 5. 基准评估
  • 6. 横向移动检测


0. 摘要

  提出了 EULER 的框架。它由堆叠在模型不可知序列编码层(例如递归神经网络)上的不可知图神经网络模型组成。根据 EULER 框架构建的模型可以轻松地将其图形卷积层分布在多台机器上,以实现大幅性能提升。EULER 模型可以高效地高精度识别实体之间的异常连接,并且优于其他无监督技术。

1. 引言&动机

  检测恶意软件传播的最可靠方法不是详尽列出与其相关的每个已知恶意签名;相反,它是训练一个模型来学习正常活动的样子,并在检测到偏离正常活动的行为时发出警报。存在的挑战:检测模型需要可扩展以适应TB级日志文件、必须具有极低的误报率

  在这项工作中,我们将异常横向移动检测制定为时间图链接预测问题。在网络上以离散时间单位发生的交互可以抽象为一系列称为快照的图 G t = { V , E t } G_t = \{V, E_t\} Gt={V,Et},其中 V V V 是网络中在设定的时间段 t t t 内具有交互的实体集 E t = { ( u , v ) ∈ V } E_t = \{(u, v) ∈ V\} Et={(u,v)V}时间链接预测模型将从以前的快照中学习正常的行为模式,并将可能性分数分配给未来发生的边缘,可能性分数低的边与网络中的异常连接相关

  最近的时间链接预测方法将图神经网络 (GNN) 与序列编码器(例如递归神经网络 (RNN))相结合,以捕获不断发展的网络的拓扑和时间特征。然而,这些方法要么依赖于嵌入的 GNN 阶段的 RNN 输出,要么仅仅将 GNN 纳入 RNN 架构。如图 1a 所示,这些模型必须是连续的,因而无法扩展到它们去处理大型数据集。

  观察到:1)现有架构中内存最密集的部分发生在 GNN 的消息传递阶段;2)节点输入特征的巨大尺寸与相对较小的拓扑节点嵌入之间存在不平衡;这意味着最多的工作和最多的内存使用发生在GNN。如果多个复制的 GNN 独立地对快照进行操作,它们可以并发执行,性能会随之提高,如图 1b 所示。
在这里插入图片描述

(a)先前的方法在嵌入的 GNN 阶段依赖于 RNN 输出,或者仅仅将 GNN 合并到 RNN 架构中,这迫使模型串行工作,一次一个快照。相反,(b) EULER 框架可以利用多个工作机器来保存离散时间图的连续快照。这些工作人员通过每台机器共享的复制 GNN 并行处理快照。这些 GNN 的输出返回到领导机器,领导机器通过递归神经网络运行它们以创建可用于链接预测的时间节点嵌入。

总结贡献如下:

  • 首次将时态图链接预测用于基于异常的入侵检测。其他将图分析应用于异常检测的研究要么没有考虑数据的时间性质,要么没有使用强大的 GNN 模型
  • 对于时间链接预测和检测,我们提出的简单框架与最先进的时间图自动编码器模型一样准确或更精确
  • 提出了一个用于大数据的分布式时间链接预测的可扩展框架

2. 背景

  离散时态图 G = { G 1 , G 2 , . . . G T } G = \{G_1, G_2, ...G_T \} G={G1,G2,...GT}被定义为一系列图 G t = { V , E t , X t } G_t = \{V, E_t, X_t\} Gt={V,Et,Xt} 的集合,称之为快照。 V V V 表示出现在网络中的所有节点的集合, E t E_t Et 表示时间 t t t 节点之间的关系,即边集, X t X_t Xt 表示与 t t t 时节点相关的特征。所有图都是有向的,有些图具有加权边, W : E → R W : E → R W:ER 表示每个快照包含的时间段内的边频率。一个图是时间窗口 δ δ δ 内的所有主体、对象、时间的三元组 < s r c , d s t , t s > <src,dst,ts> <src,dst,ts>
  时间链接预测:定义为在给定先前观察到的网络快照的情况下,找到一个函数来描述时间图中某个时间点存在边的可能性。观察到的可能性得分低于特定阈值的实体之间的交互被称为异常。在网络监控的背景下,这些异常边缘通常表示横向移动。

3. 动机

  考虑图 2 中所示的示例。前两个时间片显示网络中的正常活动:首先在 t0,Alice 和 Bob 向他们的计算机 A 和 B 进行身份验证,然后在t1 计算机 A 和 B 向共享驱动器发出请求。在时间 t2 和 t3,如果我们没有看到 Bob 首先向计算机 B 进行身份验证时,它则不与共享驱动器通信。一个简单的概率分布是显而易见的: P ( ( C 1 , S D ) ∈ E t + 1 ∣ ( B , C 1 ) ∈ E t ) = 1 P ( ( C 1 , S D ) ∈ E t + 1 ∣ ( B , C 1 ) ∉ E t ) = 0 \begin{gathered} \mathsf{P}((\mathsf{C1},\mathsf{S D})\in{\mathcal{E}}_{\mathsf{t}+1}\mid(\mathsf{B},\mathsf{C1})\in{\mathcal{E}}_{\mathrm{t}})=1 \\ \mathsf{P}((\mathsf{C1},\mathsf{S D})\in\mathcal{E}_{\mathsf{t}+1}\mid(\mathsf{B},\mathsf{C1})\not\in\mathcal{E}_{\mathsf{t}})= 0 \end{gathered} P((C1,SD)Et+1(B,C1)Et)=1P((C1,SD)Et+1(B,C1)Et)=0然而,在 t4 和 t5 中,发生了一些不寻常的事情:计算机 B 从共享驱动器请求数据,而 Bob 没有先通过它进行身份验证,这可能是攻击行为。

在这里插入图片描述
  现有的基于图的方法不考虑时间,而许多基于事件的方法孤立地查看每个事件,他们缺乏捕捉网络中其他实体之间发生的交互的重要性以及它们如何与单独事件相关的能力,将看不出 (C1,SD) 在时间 t1 和时间 t5之间的区别。为了检测示例中的攻击,模型需要参考之前发生的事件以及网络中的其他交互来考虑事件。在一个时间点发生的两个实体之间的事件不能被认为与未来在不同的全局背景下发生的同一事件相同

这里原文举的例子是t1和t4,但是我理解的是:传统方法会因为发生过t0,导致认为t5是正常的,其实并不是,所以必须考虑时间信息,不能忽略相同信息的时间影响,比如验证过期需要重新验证。所以改成了t1和t5。


4. EULER

  该框架旨在学习以时间图的先前状态为条件的概率函数,以确定边缘出现在稍后状态的可能性。

A. 编码与解码器

  它由堆叠在模型不可知递归神经网络 (RNN) 上的模型不可知图神经网络 (GNN) 组成。这些模型共同旨在找到编码函数 f ( ⋅ ) f(·) f() 和解码函数 g ( ⋅ ) g(·) g()。编码函数将具有 T T T 个快照的时间图中的节点映射到 T T T 个低维嵌入向量。解码功能确保在编码过程中丢失的信息最少,旨在从潜在 Z Z Z 向量重建输入快照。 Z = f ( { G 0 , … , G T } ) = RNN ⁡ ( [ GNN ⁡ ( X 0 , A 0 ) , … , GNN ⁡ ( X T , A T ) ] ) \begin{aligned} & Z=f(\{\mathcal{G}_0,\ldots,\mathcal{G}_T\}) \\&=\operatorname{RNN}(\left[\operatorname{GNN}(\mathbf{X}_0,\mathbf{A}_0),\ldots,\operatorname{GNN}(\mathbf{X}_T,\mathbf{A}_T)\right]) \end{aligned} Z=f({G0,,GT})=RNN([GNN(X0,A0),,GNN(XT,AT)])其中 A t A_t At 是时间 t t t 快照的 ∣ V ∣ × ∣ V ∣ |V|×|V| V×V 邻接矩阵表示。这个 T × ∣ V ∣ × d T ×|V|× d T×V×d 维张量 Z Z Z 被优化为包含关于图形结构的信息,以及它如何随时间变化的动态。

  解码函数 g ( Z t ) = P r ( A t + n = 1 ∣ Z t ) = σ ( Z t Z t T ) = A ~ t + n \mathbf{g}(\mathbf{Z}_\mathbf{t})=\mathbf{Pr}(\mathbf{A}_{\mathbf{t}+\mathbf{n}}=\mathbf{1}\mid\mathbf{Z}_\mathbf{t})\\=σ(\mathbf{Z}_{\mathrm{t}}\mathbf{Z}_{\mathrm{t}}^{\mathsf{T}})={\mathbf{\tilde{A}}}_{\mathrm{t+n}} g(Zt)=Pr(At+n=1Zt)=σ(ZtZtT)=A~t+n其中 σ ( ⋅ ) σ(·) σ() 表示 logistic sigmoid 函数, 且 A ~ t + n {\mathbf{\tilde{A}}}_{\mathrm{t+n}} A~t+n 表示在时间 t + n t + n t+n 处重建的邻接矩阵。

B. 工作流程

  EULER 框架的核心是将与模型无关的 GNN 的副本(我们称之为拓扑编码器)堆叠在具有一些简单约束的与模型无关的循环层上。当适应以一个循环层作为领导者、多个拓扑编码器作为工作者的领导者/工作者范式时,它具有大规模并行的潜力。整体工作流程如图 3 所示,分为5个阶段:

  • 领导者生成工作人员并指示他们加载哪些快照
  • 领导者启动训练循环,工人生成拓扑嵌入
  • 接收到拓扑嵌入后,领导者通过 RNN 处理它们
  • 将RNN的输出发回工人计算损失或打分
  • 在训练模式下,损失返回给领导者进行反向传播。

C. 训练

  两种训练模式:链接检测器和链接预测器。区别在于第 4 步将 Z t Z_t Zt 嵌入发送给工作人员以计算损失。链路检测器是感应的;他们使用部分观察到的快照生成 Z t Z_t Zt 并尝试用 g ( Z t ) g(Z_t) g(Zt) 重建完整的邻接矩阵 A t A_t At。然后人工执行审计以识别已经发生的异常连接。链接预测器是转导的;他们使用快照生成 Z t Z_t Zt,以预测未来状态 A t + n A_{t+n} At+n ,然后对观察到的边进行评分。

D. 分类

  尽管对于我们的大部分评估,我们依赖于与分配给边的分数的适应性相关的回归指标,但自动化确定异常阈值的过程以获得分类分数是很有用的。为此,在训练模型时,我们拿出一个或多个完整快照作为额外的验证集。使用来自训练快照的 RNN 的最终隐藏状态 h 作为验证快照的输入,找到边缘似然分数的最佳截止阈值。给定验证快照中存在的一组边缘分数,最佳截止阈值 τ 满足 argmin ∥ ( 1 − λ ) TPR ( τ ) − λ FPR ( τ ) ∥ \text{argmin}\quad\|(1-\lambda)\text{TPR}(\tau)-\lambda\text{FPR}(\tau)\| argmin(1λ)TPR(τ)λFPR(τ)其中 T P R ( τ ) TPR(τ) TPR(τ) F P R ( τ ) FPR(τ) FPR(τ) 指的是给定截止阈值 τ τ τ 的分类的真阳性率和假阳性率,λ = 0.6。

5. 基准评估

  可用的最通用的GNN,叠加在GRU上。非常简单,被称为“朴素方法”,但它也是经过测试的最快的时间模型。

  在初始前向传递之前包含一个边缘dropout层,并在所有层之间包含特征dropout层,以防止小数据集上的过拟合和过平滑。

  隐藏层和输出都是32维的。然后,GCN输出序列通过tanh激活函数,然后由单个32维GRU处理,最后通过MLP将输出投影到16维嵌入中。

其他评估模型:DynGraph2Vec、Evolving GCN 、VGRNN、VGAE

三个数据集:Facebook、Enron10和COLAB
在这里插入图片描述在这里插入图片描述

6. 横向移动检测

LANL数据集,5个不同来源的57天的日志文件、正常活动+红队活动、已标记。
在这里插入图片描述
我们将三个编码器与两个递归神经网络以及没有递归层的模型结合起来测试,以测量时间数据对整体嵌入的价值。编码器模型有GCN、GAT和GraphSAGE。循环模型为GRU和LSTM。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

虹科分享 | 新时代“救命神器”:看AR眼镜如何应用于紧急救险场景

从工业时代到如今迎来的“体验时代”&#xff0c;体验即内容&#xff0c;5G、AI、空间计算技术的突破&#xff0c;为各行各业创建了丰富的内容体验模式&#xff0c;让人们能够听之、触之、与之交互。AR是体验时代最具潜力的新技术&#xff0c;在“应急”场景中更是成为了我们在…

政府大数据资源中心建设总体方案[56页PPT]

导读&#xff1a;原文《政府大数据资源中心建设总体方案[56页PPT]》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff1a; 如需…

字节大佬教你Python接口自动化测试(项目实战),一篇足矣

接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 我也在文末准备的学习资料以及配套的视频教程&#xff0c;需要视频…

解读新东方Q4财报:银发经济能否造就下一个“东方甄选”?

8月1日下午&#xff0c;关停多日的东方甄选自营店铺抖音账号重新开播。尽管停播了26日至29日四天&#xff0c;但似乎并未产生太大影响。据东方甄选披露&#xff0c;7月29日的单日销售额已高达3500万元。 东方甄选长期稳定发展也使新东方受益。在“东方甄选自营产品”的抖音直播…

并查集维护额外信息,算法思路类似前缀和,结构类似扑克接龙

一、链接 240. 食物链 二、题目 动物王国中有三类动物 A,B,CA,B,C&#xff0c;这三类动物的食物链构成了有趣的环形。 AA 吃 BB&#xff0c;BB 吃 CC&#xff0c;CC 吃 AA。 现有 NN 个动物&#xff0c;以 1∼N1∼N 编号。 每个动物都是 A,B,CA,B,C 中的一种&#xff0c;…

C++ 运算符重载为成员函数

运算符重载实质上就是函数重载&#xff0c;重载为成员函数&#xff0c;他就可以自由访问本类的数据成员。实际使用时&#xff0c;总是通过该类的某个对象来访问重载的运算符。 如果是双目运算符&#xff0c;左操作数是对象本身的数据&#xff0c;由this指针指出&#xff0c;右…

1. 软件生命周期C/S、B/S 架构

目录 1. 软件生命周期 2. 面向对象 2.1 面向对象分析 2.2 面向对象设计 2.3 面向对象编程 3. C/S、B/S 架构 3.1 CS 架构 3.2 BS 架构 1. 软件生命周期 软件生命周期中划分为可行性研究、需求分析、概要设计、详细设计、实现、组装(集成)测试、 确认测试、使用、维护…

【Linux】进程间通信——system V共享内存

目录 写在前面的话 System V共享内存原理 System V共享内存的建立 代码实现System V共享内存 创建共享内存shmget() ftok() 删除共享内存shmctl() 挂接共享内存shmat() 取消挂接共享内存shmdt() 整体通信流程的实现 写在前面的话 上一章我们讲了进程间通信的第一种方式…

kubeadml 安装 k8s

目录 一&#xff1a;kubeadml 安装 k8s 1、网络环境 2、 环境准备 3、 所有节点安装docker 4、所有节点安装kubeadm&#xff0c;kubelet和kubectl ​5、部署K8S集群 6、测试 二&#xff1a; 部署 Dashboard 一&#xff1a;kubeadml 安装 k8s 1、网络环境 master&am…

VBA遍历Wrod所有表格每个单元格,单元格未尾两个回车替换

一、遍历 word中遍历所有表格的每个单元格。因为在单元格时会常出错。浪费了不少时间。 Sub a()Dim doc As Document, tb As Table, ce As cellDim rng As Range, p As ParagraphSet doc ActiveDocumentFor Each tb In doc.TablesFor Each ce In tb.Range.Cells 关键处就是这里…

作为程序猿,怎么维护自己的电脑?

我的电脑是联想拯救者R7000 内存&#xff1a;16G CPU &#xff1a;AMD R5 外存&#xff1a;500G。买这台电脑是个意外。情况是这样的&#xff0c;面试去了一家外包公司&#xff0c;入职当天&#xff0c; HR问我&#xff1a;你的电脑呢&#xff1f; 我&#xff1a;没有发给我啊 …

十一、ESP32加快240x240显示二维码

1. 效果 非常快速的显示出二维码 2. 原理 2.1 之前的方式(慢)

MySQL日期常见的函数

-- 获取当天日期 -- 2023-06-20 select curdate();-- 获取当天年月日时分秒 select now();-- 日期运算 -- 2024-06-20 17:04:17 select date_add(now(),interval 1 year);-- 日期比较 -- 0 select datediff(now(),now());-- 日期MySQL对于日期类型数据如何查询 -- 获取指定日期…

vcode开发go

配置环境变量 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct 创建文件夹 mkdir hello cd hello go mod init hello 安装所有"all" matched packages go mod tidy

Linux文件属性与权限管理(可读、可写、可执行)

Linux把所有文件和设备都当作文件来管理&#xff0c;这些文件都在根目录下&#xff0c;同时Linux中的文件名区分大小写。 一、文件属性 使用ls -l命令查看文件详情&#xff1a; 1、每行代表一个文件&#xff0c;每行的第一个字符代表文件类型&#xff0c;linux文件类型包括&am…

Python编程从入门到实践练习第五章:if语句和条件测试

目录 一、条件测试1.1 检测多个条件&#xff08;and / or&#xff09;1.2 检测特定值是否包含在列表中1.3 if语句结构 二、if语句处理列表2.1 判断列表是否为空2.2 练习题代码输出 一、条件测试 1.1 检测多个条件&#xff08;and / or&#xff09; 所用关键词 and : 两个条件…

C++ 多态 虚函数表

文章目录 简易抽象理解多态多态的具体实现虚函数的定义虚函数的重写重定义&#xff08;隐藏&#xff09;、重载 、重写&#xff08;覆盖&#xff09;区别C11 override 和 final 关键字抽象类的定义接口继承和实现继承多态的原理&#xff1a;虚函数表单继承和多继承关系的虚函数…

Nginx可视化Nginx-gui

Github&#xff1a;GitHub - onlyGuo/nginx-gui: Nginx GUI Manager 运行方式支持docker、window 下载后压缩&#xff0c;直接运行startup.bat 默认账号密码&#xff1a;admin/admin

Flutter iOS 集成使用 flutter boost

在 Flutter项目中集成完 flutter boost&#xff0c;并且已经使用了 flutter boost进行了路由管理&#xff0c;这时如果需要和iOS混合开发&#xff0c;这时就要到 原生端进行集成。 注意&#xff1a;之前建的项目必须是 Flutter module项目&#xff0c;并且原生项目和flutter m…

CorelDRAW2023矢量制图支持Windows和macOS系统安装使用

CorelDRAW Graphics Suite - 矢量制图专为企业打造的矢量设计作图软件CorelDRAW Graphics Suite套装&#xff0c;支持Windows和macOS系统安装使用。使用 CorelDRAW Graphics Suite 2023&#xff0c;打破创意障碍&#xff0c;以自己的风格进行自由创作。与全球数百万仰赖 CorelD…