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

作者:乔治华盛顿大学-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。
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s基础

k8s基础 文章目录 k8s基础一、k8s组件二、k8s组件作用1.master节点2.worker node节点 三、K8S创建Pod的工作流程&#xff1f;四、K8S资源对象1.Pod2.Pod控制器3.service && ingress 五、K8S资源配置信息六、K8s部署1.K8S二进制部署2.K8S kubeadm搭建 七、K8s网络八、K8…

数据库--MySQL

一、什么是范式&#xff1f; 范式是数据库设计时遵循的一种规范&#xff0c;不同的规范要求遵循不同的范式。 最常用的三大范式 第一范式(1NF)&#xff1a;属性不可分割&#xff0c;即每个属性都是不可分割的原子项。(实体的属性即表中的列) 第二范式(2NF)&#xff1a;满足…

打造专属花店展示小程序

在当今社会&#xff0c;微信小程序已经成为了各行各业拓展客户资源的利器&#xff0c;而花店行业也不例外。通过打造一个独特的花店小程序&#xff0c;你可以为你的花店带来更多的曝光和客户资源。那么&#xff0c;如何制作一个专属的花店小程序呢&#xff1f;下面我们就来一步…

【Mysql】数据库基础与基本操作

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

flask-----初始项目架构

1.初始的项目目录 -apps 包 ------存放app -user文件夹 -------就是一个app -models.py --------存放表模型 -views.py -------存放主代码 -ext包 -init.py -------实例化db对象 -manage.py -----运行项目的入口 -setting.py -----配置文件 2.各文件内容 manage…

什么是DNS的缓存?

DNS 缓存是一个临时的数据库&#xff0c;存储在计算机或网络设备&#xff08;如路由器&#xff09;上&#xff0c;用于保存最近的 DNS 查询结果。这种缓存机制可以加速后续的相同查询&#xff0c;因为设备可以直接从缓存中提取先前的查询结果&#xff0c;而不需要再次到外部的 …

程序员怎么利用ChatGPT解放双手=摸鱼?

目录 1. 当你遇到问题时为你生成代码ChatGPT 最明显的用途是根据查询编写代码。我们都会遇到不知道如何完成任务的情况&#xff0c;而这正是人工智能可以派上用场的时候。例如&#xff0c;假设我不知道如何使用 Python 编写 IP 修改器&#xff0c;只需查询 AI&#xff0c;它就…

日常BUG ——乱码

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 A系统使用Feign调用B系统时&#xff0c;传递的String字符串&#xff0c;到了B系统中变为了乱…

企业服务器数据库中了devos勒索病毒怎么办如何解决预防勒索病毒攻击

随着科学技术的不断发展&#xff0c;计算机可以帮助我们完成很多重要的工作&#xff0c;但是随之而来的网络威胁也不断提升。近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的服务器数据库遭到了devos勒索病毒攻击&#xff0c;导致系统内部的许多重要数据被加密无法正…

不同路径数

希望这篇题解对你有用&#xff0c;麻烦动动手指点个赞或关注&#xff0c;感谢您的关注~ 不清楚蓝桥杯考什么的点点下方&#x1f447; 考点秘籍 想背纯享模版的伙伴们点点下方&#x1f447; 蓝桥杯省一你一定不能错过的模板大全(第一期) 蓝桥杯省一你一定不能错过的模板大全…

Zebec Protocol 将进军尼泊尔市场,通过 Zebec Card 推动地区金融平等

流支付正在成为一种全新的支付形态&#xff0c;Zebec Protocol 作为流支付的主要推崇者&#xff0c;正在积极的推动该支付方案向更广泛的应用场景拓展。目前&#xff0c;Zebec Protocol 成功的将流支付应用在薪酬支付领域&#xff0c;并通过收购 WageLink 将其纳入旗下&#xf…

MySQL 慢查询探究分析

目录 背景&#xff1a; mysql 整体结构&#xff1a; SQL查询语句执行过程是怎样的&#xff1a; 知道了mysql的整体架构&#xff0c;那么一条查询语句是怎么被执行的呢&#xff1a; 什么是索引&#xff1a; 建立索引越多越好吗&#xff1a;   如何发现慢查询&#xff1…

工厂老化设备维护的重要性及如何维护老化设备?

工业领域的老化设备问题日益凸显&#xff0c;对于保持生产稳定和效率至关重要。本文将探讨工厂老化设备维护的重要性&#xff0c;并介绍如何通过PreMaint设备数字化平台实现对老化设备的高效维护&#xff0c;从而确保工厂持续高效运转。 一、工厂老化设备的重要性 随着时间的推…

【办公自动化】使用Python一键提取PDF中的表格到Excel

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

单芯片3路CC管理的VR转接器解决方案

VR眼镜即VR头显&#xff0c;也称虚拟现实头戴式显示设备&#xff0c;随着元宇宙概念的传播&#xff0c;VR眼镜的热度一直只增不减&#xff0c;但是头戴设备的续航一直被人诟病&#xff0c;如果增大电池就会让头显变得笨重影响体验&#xff0c;所以目前最佳的解决方案还是使用VR…

【C++】const_cast基本用法(详细讲解)

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

第R3周 - 天气预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 我的环境&#xff1a; 语言环境&#xff1a;Python3.10.7编译器&#xff1a;VScode深度学习环境&#xff1a;TensorFlow 2.13.0 数据集&#xff1a; 一、前期…

【Opencv入门到项目实战】(九):项目实战|信用卡识别|模板匹配|(附代码解读)

所有订阅专栏的同学可以私信博主获取源码文件 文章目录 0.背景介绍1.模板处理1.1模板读取1.2预处理1.3轮廓计算 2.输入图像处理2.1图形读取2.2预处理2.3轮廓计算2.4计算匹配得分 3.小结 0.背景介绍 接下来我们正式进入项目实战部分&#xff0c;这一章要介绍的是一个信用卡号识…

【二】SPI IP核的使用

【一】SPI IP核使用&#xff1a;传送门 基于qsys通过spi外部总线协议对sd卡进行读写操作 一、实验平台与实验的目的&#xff1a; ​ 正点原子开拓者、芯片型号&#xff1a;EP4CE10F17C8&#xff1b;还需要一张sd卡。 ​ 该实验主要是利用SPI IP核驱动SD卡来实现读写实验&am…

C++ 计算 拟合优度R^2

解决的问题&#xff1a; 拟合优度(Goodness of Fit)是指回归直线对观测值的拟合程度&#xff0c;度量拟合优度的统计量是可决系数(亦称确定系数) R?。R最大值为 1。R%的值越接近1&#xff0c;说明回归直线对观测值的拟合程度越好&#xff0c;反之&#xff0c;R%值越小&#x…