【论文阅读】DEPIMPACT:反向传播系统依赖对攻击调查的影响(USENIX-2022)

news2024/11/25 7:03:46

Fang P, Gao P, Liu C, et al. Back-Propagating System Dependency Impact for Attack Investigation[C]//31st USENIX Security Symposium (USENIX Security 22). 2022: 2461-2478.

攻击调查、关键边、入口点

开源:GitHub - usenixsub/DepImpact

目录

      • 1. 摘要
      • 2. 引言
      • 3. 系统设计
        • 3.1 依赖图生成
        • 3.2 依赖性权重计算
        • 3.3 关键组件识别
      • 4. 评估

1. 摘要

​ 观察到:(1)与POI事件高度相关的依赖关系通常表现出与不太相关的依赖关系不同的属性集(例如,数据流和时间);(2)POI事件通常与几个攻击条目(例如,下载文件)有关。

​ 基于此,我们提出了DEPIMPACT,一个识别依赖图(即子图)关键组件的框架,通过(1)为边分配判别依赖权重,以区分代表攻击序列的关键边和不太重要的依赖关系,(2)将依赖影响从POI事件向后传播到入口点,(3)对排名靠前的入口节点进行前向因果分析,过滤掉前向因果分析中没有发现的边。

​ DARPA TC数据集的评估表明,DEPIMPACT可以显着将大型依赖图(1,000,000条边)减少到一个小图( 234条边)。

2. 引言

两个关键观察结果:

  • 创建和执行恶意有效负载的关键边攻击序列通常隐藏在许多非关键边(例如,执行无关系统活动的事件)中,与非关键边相比,关键边通常表现出一组不同的属性,并且与这些属性中的POI事件更相关。例如,从可疑IP读取数据并将数据写入恶意脚本文件的关键边将具有与脚本文件大小相似的数据量。
  • POI事件通常由几个源(称为攻击实体)引起。这些攻击实体表示为导致POI事件的攻击序列的入口点,并隐藏在依赖图中许多其他不相关的入口节点(即没有传入边的节点)中。

三个主要挑战和应对方案:

  • 因果关系分析可能会识别出超过一千个入口节点,手动检查这些边和入口节点以识别关键边和攻击条目通常是不可行的
    • 依赖权重计算:分析每个边的多个特征(包括时间、数据流量和节点度)来捕获关键边和非关键边之间的差异,采用一种基于线性判别分析(Linear Discriminant Analysis, LDA)的判别特征投影方案],根据特征计算权重分数
  • 单一特性在应对多种攻击场景时是有限的(边的数据量并不总是可用)
    • 依赖影响反向传播和入口节点排名:采用加权得分传播方案,该方案将POI事件中的节点的依赖关系影响沿边向后传播到所有入口节点
  • 现有技术也尝试识别关键边,但它们主要依赖于启发式规则,这会导致信息丢失、侵入式系统更改
    • 关键组件识别的前向因果分析:在对入口节点进行排序后,对排名靠前的入口节点进行前向因果分析,生成一个前向依赖图。前向图和原后向依赖图之间的重叠部分准确地保留了与POI事件和攻击条目高度相关的节点和边,称为关键组件。

image-20230724095304159

执行可疑脚本mal.sh从远程主机192.1.1.254下载恶意文件mal。然后将该文件移动到user/mal并重命名为user/file.txt。给定一个将文件重命名为user/file.txt的POI事件,代表攻击序列的关键边和攻击表项(192.1.1.254,mal.sh)用深黑色表示。

评估:

  • 结合杀伤链和CVE
  • 先前的研究中使用的7次攻击、3次多主机入侵、DARPA TC中的5个攻击案例
  • 收集了约一亿个系统审计事件、DRAPA的5000万个事件
  • 在不丢失任何临界边的情况下,产生的关键组件的大小有~ 234条边,比原始依赖图的大小(~ 100万条边)小~ 4611倍
  • 与其他四种最先进的因果关系分析技术(CPR, ReadOnly, PrioTracker和NoDoze)的比较表明,效率至少提高了72倍
  • 6分钟内完成攻击分析

3. 系统设计

image-20230724101155794

3.1 依赖图生成

简而言之,反向因果分析将POI事件添加到队列中,并重复查找队列中符合条件的边/事件的传入边(即边的源节点的传入边)的过程,直到队列为空。

这样构建的时间复杂度能接受吗?

3.2 依赖性权重计算

**合并边:**如果两个节点之间的边的时间差小于给定的阈值,DEPIMPACT将合并这些边。我们尝试了不同的合并阈值,并选择了10s

特征提取:

  • 数据流相关性:数据量越一致,相关性越高。 f S ( e ) = 1 / ( ∣ s e − s e s ∣ + α ) f_{S(e)}=1/(\mid s_e-s_{e_s}\mid+\alpha) fS(e)=1/(seses+α)
  • 事件相关性:在相对同一时间出现的边缘更有可能是相关的。 f T ( e ) = ln ⁡ ( 1 + 1 / ∣ t e − t e s ∣ ) f_{T(e)}=\ln(1+1/\mid t_e-t_{e_s}\mid) fT(e)=ln(1+1/tetes)
  • 浓度比:汇聚点出边与入边的数量之比,我们想要给予从多个反向路径可以到达的节点更高的权重。 f C ( e ) = O u t D e g r e e ( v ) / I n D e g r e e ( v ) f_{C(e)}=OutDegree(v)/InDegree(v) fC(e)=OutDegree(v)/InDegree(v)

**计算权重:**基于线性判别分析(Linear Discriminant Analysis, LDA)的判别特征投影方案

  • 边聚类:采用multikmeans++聚类算法按是否可能包含关键边将边分为两组
  • 判别特征投影:LDA找到最优的投影平面,使同一组中的投影点彼此接近,不同组中的投影点彼此远离。(这个向量就是权重

**归一化:**对于一个边,我们通过源节点所有出边的权值之和来标准化它的投影权值。 W e = W e U N / ∑ e ′ ∈ o u t g o i n g E d g e ( u ) W e U N ′ W_e=W_{e_{UN}}/\sum_{e^{\prime}\in outgoingEdge(u)}W_{e_{UN}^{\prime}} We=WeUN/eoutgoingEdge(u)WeUN。保证了(1)任何节点的依赖影响不超过其子节点的最大依赖影响,(2)任何节点的依赖影响不超过POI事件中节点的依赖影响

3.3 关键组件识别

依赖影响反向传播:POI的影响值为1.0,不断反向迭代,当两次迭代的差值小于某一阈值则结束。 D I u = ∑ v ∈ c h i l d N o d e s ( u ) D I ν ∗ W e ( u , v ) DI_{u}=\sum_{v\in childNodes(u)}DI_{\nu}*W_{e(u,v)} DIu=vchildNodes(u)DIνWe(u,v)

image-20230724152337407

入口节点排名:分为三类,每个类别选一个排名最高的入口节点

  • 文件入口节点:除系统库外没有传入边的文件节点
  • 网络入口节点:父节点均为系统库的进程节点
  • 进程入口节点:没有入边的网络节点

从排名靠前的入口节点开始,执行前向因果关系分析,直到到达POI事件。将向后依赖关系图和向前依赖关系图的重叠部分标识为输出的关键组件。

4. 评估

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

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

相关文章

re学习(23)BUUCTF 刮开有奖(中间变量的获取)

INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4) {const char *v4; // esiconst char *v5; // ediint v7[2]; // [esp8h] [ebp-20030h] BYREF 虽然看名称不连续,但是通过看偏移地址,可知,这些变量在内存中是连续的&…

3.python设计模式【工厂模式】

1.简单工厂模式 内容:不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品的实例。角色: 工厂角色(creator)抽象产品角色(product)具体产品角色 UML图 : 举个例…

Go基础快速入门

目录 一、变量相关基础语法 1、变量的定义以及赋值 2、变量的交换 3、匿名变量 4、变量的作用域 二、常量 三、基本数据类型 1、常见数据类型 2、数据类型的转换 四、运算符 五、函数 函数高级用法 函数也是一个类型 函数也是一个变量,也可以赋值 高…

视频监控汇聚平台EasyCVR视频监控录像的3种方式介绍

视频监控综合管理平台EasyCVR可以实现海量资源的接入、汇聚、计算、存储、处理等,平台具备轻量化接入能力,可支持多协议方式接入,包括主流标准协议GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Eho…

STM32MP157驱动开发——按键驱动(tasklet)

文章目录 “tasklet”机制:内核函数定义 tasklet使能/ 禁止 tasklet调度 tasklet删除 tasklet tasklet软中断方式的按键驱动程序(stm32mp157)tasklet使用方法:button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “tasklet”机制: …

谁说dubbo接口只能Java调用,我用Python也能轻松稿定

由于公司使用基于Java语言的Dubbo技术栈,而本人对Python技术栈更为熟悉。为了使不懂JAVA代码的同学也能进行Dubbo接口层的测试,总结一个通过python实现dubbo接口调用的实现方案。 01、实现原理 根据Dubbo官方文档中提到的:dubbo可以通过tel…

裂缝处理优化策略

裂缝缺陷检测:检测道路中的裂缝,无项目背景 数据:分为两类,正常、裂缝 方案介绍 数据预处理 将原始数据标签处理为两类,正常和裂缝原始图片均为320*480,使用的显卡为2080,内存足够,不进行图片大小调整模型后处理 二分类使用softmax处理,使用最大值作为结果分类效…

操作系统第五章 错题整理

5.1 设备控制器也就是IO控制器 A对于一些简单的IO设备 控制他也许用不到IO寄存器 B 只是设备控制器与CPU(主机)交互的接口 D 只是 接口 C 对IO控制器所接收到的CPU的信息进行译码 并送到外设中 IO逻辑是个芯片 数据通路是逻辑上的 实际上还是通过总线 …

SpringBoot复习:(2)Tomcat容器是怎么启动的?

SpringApplication的run方法包含如下代码: 其中调用的refreshContext代码如下: 其中调用的refresh方法片段如下: 其中调用的refresh方法代码如下: 其中调用的super.refresh方法代码如下: public void refresh() th…

STM32CUBUMX配置RS485(中断接收)--保姆级教程

———————————————————————————————————— ⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩最近在开发一个STM32H723ZGT6的板子,使用STM32CUBEMX做了很多驱动&#x…

python selenium爬虫自动登录实例

拷贝地址:python selenium爬虫自动登录实例_python selenium登录_Ustiniano的博客-CSDN博客 一、概述 我们要先安装selenium这个库,使用pip install selenium 命令安装,selenium这个库相当于机器模仿人的行为去点击浏览器上的元素&#xff0…

24 ==比较的是地址在.equals比较的是内容

public class Demo1 {public static void main(String[] args) {byte[] arr {97,98,99};String s1 new String(arr);String s2 new String(arr);System.out.println(s1s2);System.out.println(s1.equals(s2));} }

pgvector 源码分析

简介 pgvector 库是一种用于计算向量距离的库,它的核心是提供了聚类索引,棸类索引使用的算法是 kmeans(相对于 kmeans 最主要的区别是初始化起点的位置)。 pgvector 索引的存储结构 meta page → list page → entry page inse…

vue2和vue3关于class类的绑定以及style的绑定的区别

本篇为个人笔记 1.对于class类的绑定的区别 vue2:对于vue2而言&#xff0c;所有类的绑定都是基于对象{}来进行的 例如&#xff1a;单个类绑定 <div :class"{active:isActive}"></div> 多个类绑定&#xff1a; <div :class"{active,hasError…

CNN(卷积神经网络)的实现过程详解

概要 在图像处理领域&#xff0c;CNN(卷积神经网络)处于绝对统治地位&#xff0c;但对于CNN具体是如何用神经网络实现的&#xff0c;能找到的介绍要么是一大堆数学公式&#xff0c;要么是大段晦涩的文字说明&#xff0c;读起来很是辛苦&#xff0c;想写好一片完整的而且有深度的…

【java安全】RMI

文章目录 【java安全】RMI前言RMI的组成RMI实现Server0x01 编写一个远程接口0x02 实现该远程接口0x03 Registry注册远程对象 Client 小疑问RMI攻击 【java安全】RMI 前言 RMI全称为&#xff1a;Remote Method Invocation 远程方法调用&#xff0c;是java独立的一种机制。 RM…

软件检测报告CMA/CNAS标识加盖和不加盖的区别在哪?

在生活中&#xff0c;我们经常会听到CMA(中国计量认证)和CNAS(中国合格评定国家认可委员会)这两个标识&#xff0c;尤其在软件检测领域更是如此。那么&#xff0c;软件检测报告CMA/CNAS标识加盖和不加盖有哪些区别呢CMA和CNAS认可的软件测评机构又有什么样的好处呢?本文将为您…

各电商平台api接口开发系列(数据分享)接口封装高并发

淘宝API接口就是第三方公司&#xff0c;通过淘宝开放平台接入淘宝数据&#xff0c;并进行再开发&#xff0c;将功能封装打包成函数&#xff0c;客户只需要传入参数&#xff0c;接收返回值就可以实现具体功能&#xff0c;其他1688&#xff0c;京东&#xff0c;拼多多以及海外跨境…

[Android 13]Input系列--触摸事件在应用进程的分发和处理

hongxi.zhu 2023-7-21 Android 13 前面我们已经梳理了input事件在native层的传递&#xff0c;这一篇我们接着探索input事件在应用中的传递与处理&#xff0c;我们将按键事件和触摸事件分开梳理&#xff0c;这一篇就只涉及触摸事件。 一、事件的接收 从前面的篇幅我们知道&…

STM32CubeMX v6.9.0 BUG:FLASH_LATENCY设置错误导致初始化失败

背景 今天在调试外设功能时&#xff0c;发现设置了使用外部时钟之后程序运行异常&#xff0c;进行追踪调试并与先前可以正常运行的项目进行对比之后发现这个问题可能是由于新版本的STM32CubeMX配置生成代码时的BUG引起的。 测试环境 MCU: STM32H750VBT6 STM32CubeIDE: Versi…