【论文阅读】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.rhkb.cn/news/86284.html

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

相关文章

axios请求

参考:https://www.axios-http.cn/docs/instance

windows安装docker 异常解决

Docker for Windows 安装Docker for Windows报错信息:Docker Desktop requires Windows 10 Pro/Enterprise/Home (18363). 解决方式 1.更新 Windows 系统版本Windows10Upgrade9252.exe 下载地址下载完运行 Windows10Upgrade9252.exe更新完,安装 Docke…

【Hilog】鸿蒙系统日志源码分析

【Hilog】鸿蒙系统日志源码分析 Hilog采用C/S结构,Hilogd作为服务端提供日志功能。Client端通过API调用(最终通过socket通讯)与HiLogd打交道。简易Block图如下。 这里主要分析一下。Hilog的读、写、压缩落盘,以及higlog与android…

python异步IO完全指南

原地址:https://flyingbyte.cc/post/async_io/ python异步IO完全指南 做为一种并行编程的範式,异步IO在Python中非常受重视,从Python3.4到3.7快速演进。 我们已经有多线程,多进程,并发(concurrency&#x…

第R3周 - 天气预测

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

健启星|医学营养的市场先行者

随着《“健康中国2030”规划纲要》、《国民营养计划(2017-2030年)》等政策的陆续发布,标志着以传统药物治疗为中心的医疗模式时代正式转型到以预防和康复为中心的新的医学营养时代。在此背景下,符合时代需求的特医食品成为“医学营…

UML箭头汇总

参考:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html 1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言。 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图&#xff…

Spring Boot | 使用mkcert本地生成SSL证书配置后端接口为HTTPS协议

Tips:本篇博客是 Windows 版本的使用教程,cmd 中执行的命令前缀是下载的软件名称,需要改成自己下载软件的名称! 下载软件 首先去 GitHub 仓库中下载软件,下载完成后将文件保存在英文路径下的文件夹,之后以…

Zookeeper 面试题

一、ZooKeeper 基础题 1.1、Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机…

搭建了个腾讯滑块服务,直接取ticket的,仅供测试.

最近闲着没事搭建了个TX滑块验证码服务,C#写的. 接口是rest接口 提交任务POST http://47.104.132.20:19090/task/addTask 提交数据: { "url": "https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?stylesimple&aid16&uin3557247785…

2023年中国负极石墨用坩埚市场规模现状及前景分析:负极材料为行业增长助推器[图]

负极石墨用坩埚分为再生坩埚和石墨匣钵,其中,再生坩埚主要应用于艾奇逊炉工艺的石墨化工序,石墨匣钵主要应用于预碳化和碳化工序。 负极石墨用坩埚分类 资料来源:共研产业咨询(共研网) 得益于动力电池的旺…

手机怎样换ip地址 更改手机IP地址有哪些方式

ip地址怎么改:使用深度ip转换器 在互联网时代,IP地址扮演着网络世界中的独特标识符。它是我们在上网时必不可少的元素,负责为设备提供独立的身份,并将信息传输到正确的目的地。然而,有时我们需要改变IP地址&#xff0c…

Kotlin 基础教程一

Kotlin 基本数据类型 Java | Kotlin byte Byte short Short int Int long Long float Float double Double boolean Boolean c…

基于身份的安全威胁正在迅速增长

根据端点安全和威胁情报供应商 CrowdStrike 发布的一份报告,目前最危险的网络安全威胁是能够访问给定系统合法身份信息的攻击者。 根据该报告,交互式入侵(该公司将其定义为攻击者积极工作以在受害者系统上实现某种非法目的的入侵)…

Java分布式微服务3——Docker

文章目录 Docker介绍安装DockerDocker基础操作Docker服务的启动镜像命令容器命令1. 从docker hub去查看Nginx容器的运行命令2. 查看所有容器状态3. 查看容器日志4. 进入Nginx容器执行命令,修改Html内容,添加“Hello World”5. 停止与开始容器6. 删除容器…

01 - 工作区、暂存区、版本库、远程仓库 - 以一次连贯的提交操作为例

1. 工作区、暂存区、版本库、远程仓库 以一次连贯的提交操作为例。 1.1 工作区 Git的工作区也就是我们平时编辑代码的目录文件夹。 新建一个kongfu_person.txt文件,工作区的变化: 1.2 工作区 > 暂存区:git add 1.3 暂存区 > 版本库…

配置docker,案例复现

配置docker(系统为centos) 1.检查操作系统环境: docker要求CentOS系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本是否支持安装docker 2.查看你是否拥有旧的版本,有的话卸载,没有的话直接略过该步骤 sudo yum remove d…

pytest结合 allure 打标记之的详细使用

前言 前面我们提到使用allure 可以生成漂亮的测试报告,下面就Allure 标记我们做详细介绍。 allure 标记 包含:epic,feature, story, title, testcase, issue, description, step, serverity, link, attachment 常用的标记 allure.feature…

C语言笔试训练【第九天】

文章目录 👿1、下列程序的输出是( )💎2、二维数组X按行顺序存储,其中每个元素占1个存储单元。若 X[4][4] 的存储地址为 Oxf8b82140 , X[9][9] 的存储地址为 Oxf8b8221c ,则 X[7][7] 的存储地址为( &#xf…

29 | 广州美食店铺数据分析

广州美食店铺数据分析 一、数据分析项目MVP加/价值主张宣言 随着经济的快速发展以及新媒体的兴起,美食攻略、美食探店等一系列东西进入大众的眼球,而人们也会在各大平台中查找美食推荐,因此本项目做的美食店铺数据分析也是带有可行性的。首先通过对广东省的各市美食店铺数量…