【论文阅读】DEPCOMM:用于攻击调查的系统审核日志的图摘要(SP-2022)

Xu Z, Fang P, Liu C, et al. Depcomm: Graph summarization on system audit logs for attack investigation[C]//2022 IEEE Symposium on Security and Privacy (SP). IEEE, 2022: 540-557.

1 摘要

​ 提出了 DEPCOMM,这是一种图摘要方法,通过将大图划分为以进程为中心的社区并为每个社区提供摘要,从依赖图生成摘要图。每个社区都由一组相互协作以完成某些系统活动(例如文件压缩)的亲密进程以及这些进程访问的资源(例如文件)组成。在社区内,DEPCOMM 进一步识别由不太重要和重复的系统活动引起的冗余边,并对这些边进行压缩。

DEPCOMM 为依赖图平均生成 18.4 个社区,比原始图小约 70 倍。与 9 种最先进的社区检测算法相比,DEPCOMM 在检测社区方面平均取得了比这些算法高 2.29 倍的 F1 分数。通过与HOLMES自动化技术配合,DEPCOMM能够以96.2%的召回率识别出与攻击相关的社区。

2 引言

​ 由于三个主要原因,手动攻击调查仍然是不可或缺的:

  • 系统中始终存在残留风险,这些风险无法通过这些自动化技术准确揭示,特别是对于严重依赖系统配置文件的技术
  • 威胁不断发展以逃避防御技术
  • 现有技术主要依赖于启发式规则,这些规则会导致信息丢失和侵入性系统更改,阻碍了它们的实际采用

动机:开发一种图摘要方法,该方法在依赖图中保留系统活动的语义,同时通过隐藏不太重要的细节来缩小其大小。

挑战及应对:

  • 依赖图是一种异构图,平等对待每个节点的通用汇总技术无法有效地检测代表主要系统活动的社区。

    将依赖图划分为以进程为中心的社区,其中每个社区包括一组亲密的进程(父子或兄弟关系)以及这些进程访问的系统资源。

  • 许多不太重要的依赖关系,成为依赖关系图的主要部分,压缩和隐藏这些活动是一项具有挑战性的任务

    DEPCOMM 识别基于进程和基于资源的模式,并根据这些模式为每个社区压缩边

  • 在依赖图中,代表系统活动的边序列应该是生成的用于攻击调查的摘要图的核心。如何总结这些优势成为DEPCOMM的另一个挑战

    对每个社区内的 InfoPath 进行优先级排序,并将更有可能代表攻击步骤和主要系统活动的 InfoPath(信息流) 排名在顶部

DEPCOMM 提供了新颖的技术来检测以进程为中心的社区,在检测到的社区内执行压缩,并为每个社区生成代表性摘要。实验室+DARPA TC,总共有约 1.5 亿个系统审计事件,生成的依赖图平均由 1, 302.1 个节点和 7, 553.4 个边组成。在我们的评估中,DEPCOMM 为依赖图平均生成 18.4 个社区,比原始图小约 70 倍。这些社区平均包含 43.1 个节点和 248.5 条边。

  • DEPCOMM 在每个流程节点上执行随机游走以获得游走路线,并通过矢量化这些游走路线来计算每个进程节点的行为表示。设计了一系列新颖的分层行走方案,利用进程本地邻居的信息和全局进程谱系树来选择更有可能找到亲密进程的行走路线。利用学习到的每个进程节点的表示,DEPCOMM 将这些进程节点聚类成社区,并进一步将这些进程访问的资源节点分类到检测到的社区中,生成以进程为中心的社区。
  • DEPCOMM 首先计算每个社区的进程谱系树,并将每个进程节点与访问资源节点的事件相关联。通过搜索该树,DEPCOMM 可以识别基于进程的模式(例如,一个 bash 进程生成多个 vim 进程)和基于资源的模式(例如,多个 vim 进程编辑源文件)。基于已识别的基于流程和基于资源的模式,DEPCOMM 合并所有重复的边和节点以压缩社区。
  • DEPCOMM首先根据社区之间的信息流来识别每个社区的输入节点和输出节点,然后通过为每对输入和输出节点查找路径来生成InfoPaths。接下来,DEPCOMM 根据每个 InfoPath 代表社区中主要系统活动(例如,包含 POI 事件)的可能性,为每个 InfoPath 分配优先级分数。最后,DEPCOMM 根据优先级对这些 InfoPath 进行排名,并将排名靠前的 InfoPath 显示为社区的摘要。

3 系统设计

在这里插入图片描述

3.1 依赖图生成

给定 POI 事件(例如,有关文件下载的警报),DEPCOMM 通过执行向后因果分析来跟踪依赖关系,从而构建依赖关系图。

为何不前后向都分析?

3.2 依赖图预处理

边合并:操作系统通常通过将数据按比例分配给多个系统调用来执行读/写任务,这会导致进程节点和文件/网络节点之间通常有许多平行边,表示短时间内重复的读/写操作,将这些平行边合并为一条边。

只读文件过滤:许多只读文件通常是库、配置文件和资源用于不包含有用的攻击相关信息的进程初始化,因此删去。

3.3 社区检测

image-20230706142236507

分级随机游走

​ 以进程为中心的社区是一个图,它包含(1)一个主进程节点,(2)一组子进程节点,表示主进程派生的子进程的子集,使得这些子进程之间具有数据依赖性,以及(3)主进程和这些子进程访问的一组资源节点。

采用固定的步长根据邻居和全局谱系树进行加权随机游走,然后利用word2vec学习路径的行为表示,并将这些路径聚类到不同的社区中。八种游走规则:

  1. 随机任选一个邻居,如果只有一个邻居,为避免提前终止,要回到上一节点
  2. 从自己的子进程过来,且该子进程具有与其有数据依赖的兄弟进程,直接去该兄弟进程
  3. 如果是从自己的独子过来的,且无其他邻居,说明父子协同处理某些任务,父亲任选邻居往下走
  4. 以高概率走到与上一节点共享相同父进程的邻居
  5. 从子进程访问过的资源节点过来,回到子进程或同时与该子进程有其他依赖关系的资源节点
  6. 如果两个进程节点除共同资源节点外再无其他关系,视为另一社区,直接返回
  7. 如果经过一个资源节点回到了进程,说明走到了信息流的终点,继续向其他邻居游走
  8. 与1 类似,但随机选择而不返回,意味着已经进入一个新的社区

image-20230706151408671

进程节点表示

​ DEPCOMM采用SkipGram这一广泛使用的词表示学习算法来学习行走路线中过程节点的行为表示。更具体地说,给定进程节点p和上下文窗口大小t, SkipGram从包含p的每个行走路线中提取子序列Wp = {vi−t,···,vi,··,vi+t},该子序列由vi = p及其上下文节点vi+k (k∈(−t, t))组成。然后通过最大化子序列中出现的任何节点的对数概率来学习vi的d维向量Φ(vi)

进程节点聚类

​ DEPCOMM采用了一种软聚类方法FCM (Fuzzy C-Means),FCM通过最小化目标函数来输出每个集群中每个过程节点的隶属度

J   =   ∑ i = 1 ∣ V p ∣ ∑ j = 1 ∣ C ∣ u i j 2 ∣ ∣ v i   −   c j ∣ ∣ 2 J~=~\sum_{i=1}^{|V_{p}|}\sum_{j=1}^{|C|}u_{ij}^{2}||v_{i}~-~c_{j}||^{2} J = i=1Vpj=1Cuij2∣∣vi  cj2,其中uij表示过程节点vi属于共同体cj的程度,如果uij高于给定的阈值,则Vi被分类为cj。

​ DEPCOMM根据模糊划分系数(FPC) F ( ∣ C ∣ ) = 1 / ∣ V p ∣ ∑ j = 1 ∣ C ˉ ∣ ∑ i = 1 ∣ V p ∣ u i j 2 F(|C|)=1/|V_{p}|\sum_{j=1}^{|\bar{C}|}\sum_{i=1}^{|V_{p}|}u_{ij}^{2} F(C)=1/∣Vpj=1Cˉi=1Vpuij2来确定社区的数量|C|,用于衡量不同数量的集群的有效性。

资源节点关联

​ 给定一个资源节点r和一个流程节点p,如果它们通过一条边连接,则v与p所属的社区相关联。如果一个资源节点与来自不同社区的多个流程节点连接,则该资源节点是一个重叠节点,我们将创建资源节点的副本,并为每个社区分配一个副本。

跨社区依赖关系

​ 我们将跨社区的依赖关系分为基于边的依赖关系(即,由社区之间的社区间的边表示的依赖关系)和基于节点的依赖关系(即,由重叠节点表示的依赖关系)。创建副本,每个社区一个,中间新建一条边。

3.4 社区压缩

image-20230707003215180

基于进程的模式

如图a所示,重复活动合并。包括四个步骤:

  • 构建进程谱系树
  • 进程与已访问的资源关联
  • 挖掘基于进程的模式:DEPCOMM使用流程沿行树为每个进程节点生成一个子树。然后,DEPCOMM通过附加子树中进程节点的相关资源属性,将子树编码为字符串,并标识相同的字符串(即,重复的子树)。
  • 基于模式的压缩:DEPCOMM只选择具有相同父节点的重复子树,并将选择的子树合并为一个子树。合并子树中每个节点和边的属性是原始节点和边属性的并集。

基于资源的模式:

​ DEPCOMM首先将进程与其访问的资源关联起来,然后搜索每个资源以识别重复的访问。根据发现的模式,将资源节点合并为一个节点,合并节点的属性是原始资源节点属性的并集。

3.5 社区摘要

​ DEPCOMM生成一个由三部分组成的摘要:主进程、时间跨度和排名最高的infopath。

image-20230707015821520

信息流抽取

​ 对于一个社区,确定其输入和输出节点,然后使用深度优先搜索找一条最长的路径。

信息流优先级

​ 优先级排序包含四个关键特征:

  • fpoi:是否包含POI事件,包含参数值为1,否则为0
  • foit:输入输出类型,头尾为进程的信息流分数更高。 f i o t = 1 2 ( δ ( v 0 ) + δ ( v ∣ P k ∣ − 1 ) ) f_{iot}=\frac{1}{2}(\delta(v_0)+\delta(v_{|P_k|-1})) fiot=21(δ(v0)+δ(vPk1))
  • funi:事件唯一性,出现在较少社区中的文件事件更可能表示社区中的主要活动。 f u n i = 1 ∣ E v t ( P k ) ∣ ∑ e i ∈ P k , e i ∈ E v t f 1 ∣ C o m m ( e i ) ∣ f_{uni}=\frac{1}{|Evt(P_k)|}\sum_{e_i\in P_k,e_i\in Evt_f}\frac{1}{|Comm(e_i)|} funi=Evt(Pk)1eiPk,eiEvtfComm(ei)1
  • fspan:时间跨度,时间跨度与社区的时间跨度相似的InfoPath更有可能代表社区中的主要活动 f s p a n = e ( v ∣ P k ∣ − 2 , v ∣ P k ∣ − 1 ) . e t − e ( v 0 , v 1 ) . s t c . e t − c . s t f_{span}=\frac{e(v_{|P_{k}|-2},v_{|P_{k}|-1}).et-e(v_{0},v_{1}).st}{c.et-c.st} fspan=c.etc.ste(vPk2,vPk1).ete(v0,v1).st

​ 基于这些特征,我们通过给每个特征赋予相等的权重来计算Pk的优先级得分。根据分配的优先级分数,我们对infathath进行排序,并选择最前面的n条路径作为汇总,安全分析人员可以灵活地选择n的值。

4 评估

实验室环境的6次攻击和DARPA TC的8次攻击。

提前请专家进行社区划分,与自动检测的做对比。

image-20230707030511095

image-20230707030240072

与NoDoze进行对比

image-20230707030613465

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

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

相关文章

从Spring源码看Spring如何解决循环引用的问题

Spring如何解决循环引用的问题 关于循环引用,首先说一个结论: Spring能够解决的情况为:两个对象都是单实例、且通过set方法进行注入。 两个对象都是单实例,通过构造方法进行注入,Spring不能进行循环引用问题&#x…

使用docker快速搭建wordpress服务,并指定域名访问

文章目录 引入使用docker快速跑起服务创建数据库安装wordpress服务配置域名 引入 wordpress是一个基于PHP语言编写的开源的内容管理系统(CMS),它有丰富的插件和主题,可以非常简单的创建各种类型的网站,包括企业网站、…

Redux - Redux在React函数式组件中的基本使用

文章目录 一,简介二,安装三,三大核心概念Store、Action、Reducer3.1 Store3.2 Reducer3.3 Action 四,开始函数式组件中使用4.1,引入store4.1,store.getState()方法4.3,store.dispatch()方法4.4&…

C语言入门 Day_5 四则运算

目录 前言 1.四则运算 2.其他运算 3.易错点 4.思维导图 前言 图为世界上第一台通用计算机ENIAC,于1946年2月14日在美国宾夕法尼亚大学诞生。发明人是美国人莫克利(JohnW.Mauchly)和艾克特(J.PresperEckert)。 计算机的最开始…

centos7安装erlang及rabbitMQ

下载前注意事项: 第一:自己的系统版本,centos中uname -a指令可以查看,el8,el7,rabbitMQ的包不一样! 第二:根据rabbitMQ中erlang version找到想要下载rabbitMQ对应erlang版本&#x…

深度学习优化器

1、什么是优化器 优化器用来寻找模型的最优解。 2、常见优化器 2.1. 批量梯度下降法BGD(Batch Gradient Descent) 2.1.1、BGD表示 BGD 采用整个训练集的数据来计算 cost function 对参数的梯度: 假设要学习训练的模型参数为W,代价函数为J(W),…

FOSSASIA Summit 2023 - 开源亚洲行

作者 Ted 致歉:本来这篇博客早就该发出,但是由于前几个月频繁差旅导致精神不佳,再加上后续我又参加了 Linux 基金会 7/27 在瑞士日内瓦举办的 Open Source Congress,以及 7/29-30 台北的 COSCUP23,干脆三篇连发&#x…

利用三维内容编辑器制作VR交互课件,简单好用易上手

随着虚拟现实技术的不断发展,越来越多的教育机构开始尝试将其应用于教育教学中。然而,要实现这一目标并不容易,需要专业的技术支持和开发团队。 为了解决这一问题,广州华锐互动研发了三维内容编辑器,它是一种基于虚拟现…

使用wxPython嵌入浏览器加载本地HTML文件

使用wxPython模块嵌入浏览器并加载本地HTML文件的示例博客。以下是一个简单的示例: 介绍: 在本篇博客中,我们将使用Python的wxPython模块来嵌入一个浏览器,并加载一个本地的HTML文件。这对于需要在Python应用程序中显示Web内容…

word之插入尾注+快速回到刚才编辑的地方

1-插入尾注 在编辑文档时,经常需要对一段话插入一段描述或者附件链接等,使用脚注经常因占用篇幅较大导致文档页面内容杂乱,这事可以使用快捷键 ControlaltD 即可在 整个行文的末尾插入尾注,这样文章整体干净整洁,需…

髋关节 弹响

评估测试 https://www.bilibili.com/video/BV1A44y1j71Y/?spm_id_from333.880.my_history.page.click&vd_source3535bfaa5db8443d107998d15e88dc44 根据此视频整理所得 托马斯测试 第一种情况 如果你难于将膝关节拉到胸前,并感觉前面有骨性的挤压 说明你股…

分析 Linux 启动流程基本实现

下载 Linux 内核网址: https://www.kernel.org/ 最新 Linux 内核是 5.15 版本。现在常用 Linux 内核源码为4.14、4.19、4.9 等版本,其中 4.14 版本源码压缩包大概 90M,解压后 700M,合计 61350 个文件。如此众多的文件&#xff0…

会一点stm32,只后是做嵌入式Linux还是转JAVA?

选择嵌入式Linux还是转向JAVA,取决于你的兴趣、职业规划和就业市场的需求。以下是一些考虑因素:兴趣和擅长:首先,你应该考虑自己对嵌入式Linux和JAVA的兴趣和擅长程度。如果你对嵌入式系统、硬件交互和底层编程更感兴趣&#xff0…

如何在iPhone手机上修改手机定位和模拟导航?

如何在iPhone手机上修改手机定位和模拟导航? English Location Simulator(定位模拟工具) 是一款功能强大的 macOS 应用,专为 iPhone 用户设计,旨在修改手机定位并提供逼真的模拟导航体验。无论是为了保护隐私、测试位…

uniapp文件下载并预览

大概就是这样的咯&#xff0c;文件展示到页面上&#xff0c;点击文件下载并预览该文件&#xff1b; 通过点击事件handleDownLoad(file.path)&#xff0c;file.path为文件的地址&#xff1b; <view class"files"><view class"cont" v-for"(…

MongoDB 分片集群

在了解分片集群之前&#xff0c;务必要先了解复制集技术&#xff01; 1.1 MongoDB复制集简介 一组Mongodb复制集&#xff0c;就是一组mongod进程&#xff0c;这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性&#xff0c;这是生产部署的基础。 1.1.1 复制集…

pip install mysql出现error: subprocess - exited-with-error的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

交叉编译基本概念

1 什么是交叉编译 1.1 本地编译 在解释什么是交叉编译之前&#xff0c;要先明白什么是本地编译。 本地编译可以理解为&#xff0c;在当前编译平台下&#xff0c;编译出来的程序只能放到当前的平台下运行&#xff0c;平时我们常见的软件开发都是属于本地编译。 比如我们在X8…

利用OpenCV光流算法实现视频特征点跟踪

光流简介 光流&#xff08;optical flow&#xff09;是运动物体在观察成像平面上的像素运动的瞬时速度。光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系&#xff0c;从而计算出相邻帧之间物体的运动信息的一种方法。…

突破防线!泛微OA任意文件上传Getshell

子曰&#xff1a;“巧言令色&#xff0c;鲜矣仁。” 漏洞复现 访问漏洞url&#xff1a; 存在漏洞的路径为 /weaver/weaver.common.Ctrl/.css?arg0com.cloudstore.api.service.Service_CheckApp&arg1validateApp漏洞利用&#xff1a; 漏洞证明&#xff1a; 文笔生疏&…