【论文阅读】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

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

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

相关文章

从0开始搭建ns3环境以及NetAnim简单使用

一、环境准备 ns3是基于GNU/Linux平台使用C开发的工具软件,在windows系统中安装使用ns3环境,可以使用虚拟机VMware并安装ubuntu系统来实现,现将本教程所用到的虚拟机和系统镜像放到网盘提供下载 名称链接提取码VMware Workstation 17 Proht…

简约时尚的健康手表,智能守护每一刻,dido Y60上手

智能手表是现在很流行的一种智能设备,很多品牌都推出了各种各样的产品,但是大部分都更侧重功能和运动的方面,健康监测往往只是配角,而随着人们对自己的健康越来越重视,有些朋友只是单纯的需要一块专业的健康监测手表。…

选择任务管理软件:哪个更适合你的需求?

随着互联网的发展,知识管理是可以成为企业获得更大发展前景的神兵利器,任务协同,是服务于中小型团队,或者大型机构的终端组织。来看看这款国外流行的任务管理软件Zoho Projects。 任务管理是企业协同的重要组成部分。 任务管理是企…

Bitcoin 加速交易操作示例

这里以 Bitcoin Ordinals NFT 为例, 进行加速交易演示 第1步:新建子账户 温馨提示:如果有多条鱼未确认,也只需1个账户即可,不必搞多个子账户 第2步:切换回到老地址(Account 1) 第3步…

【Kubernetes】Kubernetes的PV和PVC的用法

PV、PVC 前言一、 存储卷1. emptyDir 存储卷1.1 概念1.2 实例 2. hostPath 存储卷2.1 概念2.2 实例 3. nfs共享存储卷 二、PV 和 PVC1. 概念1.1 PV1.2 PVC1.3 PVC 的使用逻辑1.4 创建机制1.5 PV 和 PVC 的生命力周期1.6 创建及销毁 PV 的流程 2. PV 和 PVC 的创建2.1 查看定义2…

高并发内存池项目(C++实战项目)

项目介绍 项目来源 本项目实现了一个高并发内存池,参考了Google的开源项目tcmalloc实现的简易版;其功能就是实现高效的多线程内存管理。由功能可知,高并发指的是高效的多线程,而内存池则是实现内存管理的。 tcmalloc源码 项目…

【计算机网络】概述及数据链路层

每一层只依赖于下一层所提供的服务,使得各层之间相互独立、灵活性好,已于实现和维护,并能促进标准化工作。 应用层:通过应用进程间的交互完成特定的网络应用,HTTP、FTP、DNS,应用层交互的数据单元被称为报…

MySQL 中常见的几种高可用架构部署方案

MySQL 中的集群部署方案 前言 这里来聊聊,MySQL 中常用的部署方案。 MySQL Replication MySQL Replication 是官方提供的主从同步方案,用于将一个 MySQL 的实例同步到另一个实例中。Replication 为保证数据安全做了重要的保证,是目前运用…

数据结构初阶--二叉树的链式结构

目录 一.二叉树链式结构的概念 二.二叉树链式结构的功能实现 2.1.链式二叉树的定义 2.2.链式二叉树的构建 2.3.链式二叉树的遍历 2.3.1.先序遍历 2.3.2.中序遍历 2.3.3.后序遍历 2.3.4.层序遍历 2.4.链式二叉树的求二叉树的结点数量 法一:计数法 法二&a…

Linux知识点 -- 进程概念(补充)

Linux知识点 – 进程概念(补充) 文章目录 Linux知识点 -- 进程概念(补充)一、进程地址空间的堆区二、虚拟地址到物理地址之间的转化三、虚拟地址到物理地址之间的映射 一、进程地址空间的堆区 在用户每次使用malloc等函数在进程的…

OBD接口引脚定义

汽车的OBD接口引脚定义分配如下图所示,OBD接口共有16个引脚(可参考 ISO 15031-3)。 1、引脚1,3,8,9,11,12,13 引脚1,3,8,9,11,12,13由主机厂进行分配。 2、引脚2 如果车辆中使用SAE J1850 10,4 VPW(可变脉冲)来提供…

小红书运营 变现方法总结(精)

大家好,我是网媒智星,今天跟大家分享一下小红书运营方面的知识,怎样利用小红书变现?全篇倾情干货输出,认真学习,保证您收获多多。 首先,让我们来分析一下小红书平台的优势。关于卖东西&#xff…

vue + less 实现动态主题换肤功能

文章目录 前言一、前提条件1. 初始化vue项目2. 安装插件 二、新建文件夹主题theme1.style.less文件2.model.js文件3.theme.js文件theme文件夹最终效果 三、修改vue.config.js文件四、页面上的具体使用1. index.vue 页面2. index.vue 页面注意点说明3. index.vue 效果 五、在js中…

VSCode使用SSH无密码连接Ubuntu

VSCode使用SSH无密码连接Ubuntu 前提条件: 1. 能够正常使用vscode的Remote-ssh连接Ubuntu 2. Ubuntu配置静态ip(否则经常需要修改Remote-ssh的配置文件里的IP) 链接-> ubuntun 18.04设为静态ip(.net模式,可连接…

如何解决docker中出现的“bash: vim: command not found”

目录 问题描述: 问题解决: 问题描述: 在docker中,想要执行vim编辑文件,弹出“docker bash: vim: command not found“(如下图),请问该如何解决? 问题解决: …

FPGA应用学习笔记------系统复位一(同异复位)

要满足复位恢复时间才能正常复位,不然会产生输出准稳态,输出逻辑错误 复位恢复时间只会存在复位释放时刻,不会出现在确立时刻,则不推荐完全异步复位 完全同步复位,肯定是同步于时钟滴,并将总是满足时钟条件…

【Spring MVC】Spring MVC基于注解的程序开发

目录 一、什么是Spring MVC 二、Spring MVC项目的创建和使用 1、实现客户端和服务器端之间的连接 1.1、RequsestMapping注解 1.2、RequestMapper的简单使用 1.3、使用GetMapping和POSTMapping注解来实现HTTP连接 三、获取参数 1、实现获取单个参数 2、实现获取对象 3…

解决ubantu驱动掉了的问题

这里写自定义目录标题 解决ubuntu驱动掉了的问题 解决ubuntu驱动掉了的问题 首先确定是否有驱动: ls /usr/src | grep nvidia若有,则大概率是驱动版本与内核版本对应不上,则把内核版本切换为初始版本即可。参照:https://blog.cs…

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类 文本分类器,提供多种文本分类和聚类算法,支持句子和文档级的文本分类任务,支持二分类、多分类、多标签分类…

nodejs+vue+elementui+express智慧社区小区物业管理系统的设计与实现_2p760

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 前端nodejsvueelementuiexpress vue的文件结构其实就是一个index.html 中间的内容,用的是vue,但最终都会转…