【论文阅读】DEPIMPACT:反向传播系统依赖对攻击调查的影响(USENIX-2022)
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事件和攻击条目高度相关的节点和边,称为关键组件。
执行可疑脚本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. 系统设计
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/(∣se−ses∣+α)
- 事件相关性:在相对同一时间出现的边缘更有可能是相关的。 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/∣te−tes∣)
- 浓度比:汇聚点出边与入边的数量之比,我们想要给予从多个反向路径可以到达的节点更高的权重。 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/e′∈outgoingEdge(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=v∈childNodes(u)∑DIν∗We(u,v)
入口节点排名:分为三类,每个类别选一个排名最高的入口节点
- 文件入口节点:除系统库外没有传入边的文件节点
- 网络入口节点:父节点均为系统库的进程节点
- 进程入口节点:没有入边的网络节点
从排名靠前的入口节点开始,执行前向因果关系分析,直到到达POI事件。将向后依赖关系图和向前依赖关系图的重叠部分标识为输出的关键组件。
4. 评估
相关文章:

【论文阅读】DEPIMPACT:反向传播系统依赖对攻击调查的影响(USENIX-2022)
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. 引…...
Nginx 功能及配置详解
一、Nginx概述 Nginx是一款高性能的HTTP和反向代理服务器,也是一款IMAP/POP3/SMTP代理服务器。Nginx被广泛应用于服务端的Web开发,主要用于提供高效、稳定的网页访问服务。Nginx的主要特点包括:高并发连接处理能力、稳定性高、配置灵活和功能…...

CSS 瀑布流效果效果
示例 <!DOCTYPE html> <html lang="cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>瀑布流效果</title><style>…...

Python 进阶(一):PyCharm 下载、安装和使用
❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 文章目录 一、下载 PyCharm二、安装 PyCharm三、创建项目四、界面汉化五、实用技巧5.1、使用快捷…...

微信小程序使用ECharts的示例详解
目录 安装 ECharts 组件使用 ECharts 组件图表延迟加载 echarts-for-weixin 是 ECharts 官方维护的一个开源项目,提供了一个微信小程序组件(Component),我们可以通过这个组件在微信小程序中使用 ECharts 绘制图表。 echarts-fo…...
微信小程序生成二维码(weapp-qrcode)可添加logo
插件 npm 地址:https://www.npmjs.com/package/weapp-qrcode 插件 GitHub 地址:https://github.com/yingye/weapp-qrcode/tree/master 一、引入 1、根据 GitHub 指引将 weapp-qrcode 放到本地 uitl 文件夹下; 2、创建 canvas <canvas c…...

【云原生】Docker容器资源限制(CPU/内存/磁盘)
目录 编辑 1.限制容器对内存的使用 2.限制容器对CPU的使用 3.block IO权重 4.实现容器的底层技术 1.cgroup 1.查看容器的ID 2.在文件中查找 2.namespace 1.Mount 2.UTS 3.IPC 4.PID 5.Network 6.User 1.限制容器对内存的使用 ⼀个 docker host 上会运⾏若⼲容…...

内核链表在用户程序中的移植和使用
基础知识 struct list_head {struct list_head *next, *prev; }; 初始化: #define LIST_HEAD_INIT(name) { (name)->next (name); (name)->prev (name);} 相比于下面这样初始化,前面初始化的好处是,处理链表的时候,不…...

使用C#基于ComPDFKit SDK快速构建PDF阅读器
在当今世界,Windows 应用程序对我们的工作至关重要。随着处理 PDF 文档的需求不断增加,将 ComPDFKit PDF 查看和编辑功能集成到您的 Windows 应用程序或系统中,可以极大地为您的用户带来美妙的体验。 在本博客中,我们将首先探索集…...

el-tabel导出excel表格
1、安装插件 npm install file-saver --save npm install xlsx --save 2、引入插件 import FileSaver from "file-saver"; import * as XLSX from xlsx; 3、在tabel中添加ref属性和导出方法 4、添加方法 exportExcel (excelName) {try {const $e this.$refs[repo…...

双击start.bat文件闪退,运行报错“unable to access jarfile”
问题:电脑运行“start.bat”文件,无反应,闪退,管理员身份运行报错“unable to access jarfile” 解决思路: 1、由于该项目运行需要jdk环境,检查jdk版本需要是1.8.0_251版本 通过在 cmd 命令行输入java -v…...

大数据Flink(五十一):Flink的引入和Flink的简介
文章目录 Flink的引入和Flink的简介 一、Flink的引入 1、第1代——Hadoop MapReduce...
c语言的数据类型 -- 与GPT对话
1 c语言的数据类型 在C语言中,数据类型用于定义变量的类型和存储数据的方式。C语言支持多种数据类型,包括基本数据类型和派生数据类型。以下是C语言中常见的数据类型: 基本数据类型(Primary Data Types): int: 整数类型,通常表示带符号的整数。char: 字符类型,用于存储…...

Truffle 进行智能合约测试
其他依赖 node.js、 由于是利用npm进行,所以先设置国内镜像源。去网上搜 1.安装truffle npm install truffle -gtruffle --version 安装完其他项目依赖,能够产生一下效果 2.项目创建 创建test文件夹 mkdir test进入test cd test初始化项目 truffle …...
vb+access库存管理系统设计与实现
第一章库存信息管理系统的基本问题 1.1 库存信息管理系统的简介 本系统是为了提高腾达公司自动化办公的水平、经过详细的调查分析初步制定了腾达公司库存信息管理系统。基于WINDOWS 98 平台,使用Microsoft Access97, 在Visual Basic 6.0编程环境下开发的库存信息管理系统。该…...

机器学习03-数据理解(小白快速理解分析Pima Indians数据集)
机器学习数据理解是指对数据集进行详细的分析和探索,以了解数据的结构、特征、分布和质量。数据理解是进行机器学习项目的重要第一步,它有助于我们对数据的基本属性有全面的了解,并为后续的数据预处理、特征工程和模型选择提供指导。 数据理解…...

Hadoop生态体系-HDFS
目录标题 1、Apache Hadoop2、HDFS2.1 设计目标:2.2 特性:2.3 架构2.4 注意点2.5 HDFS基本操作2.5.1 shell命令选项2.5.2 shell常用命令介绍 3、HDFS基本原理3.1 NameNode 概述3.2 Datanode概述 1、Apache Hadoop Hadoop:允许使用简单的编程…...
《实战AI模型》——赶上GPT3.5的大模型LLaMA 2可免费商用,内含中文模型推理和微调解决方案
目录 准备环境及命令后参数导入: 导入模型: 准备LoRA: 导入datasets: 配置Config:...

工程安全监测无线振弦采集仪在建筑物的应用分析
工程安全监测无线振弦采集仪在建筑物的应用分析 工程安全监测无线振弦采集仪是一种在建筑物中应用的重要设备。它通过无线采集建筑物内部的振动信息,对建筑物的安全性进行监测和评估,为建筑物的施工和使用提供了可靠的技术支持。本文将详细介绍工程安全…...

OpenCV实现照片换底色处理
目录 1.导言 2.引言 3.代码分析 4.优化改进 5.总结 1.导言 在图像处理领域,OpenCV是一款强大而广泛应用的开源库,能够提供丰富的图像处理和计算机视觉功能。本篇博客将介绍如何利用Qt 编辑器调用OpenCV库对照片进行换底色处理,实现更加…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...