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

这篇具有很好参考价值的文章主要介绍了【论文阅读】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. 摘要

​ 观察到:(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事件和攻击条目高度相关的节点和边,称为关键组件。

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

执行可疑脚本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. 系统设计

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

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)

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

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

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

从排名靠前的入口节点开始,执行前向因果关系分析,直到到达POI事件。将向后依赖关系图和向前依赖关系图的重叠部分标识为输出的关键组件。文章来源地址https://www.toymoban.com/news/detail-604325.html

4. 评估

到了这里,关于【论文阅读】DEPIMPACT:反向传播系统依赖对攻击调查的影响(USENIX-2022)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch 前向传播与反向传播代码+ fp16

    optim.zero_grad() : 将模型的梯度参数设置为0,即清空之前计算的梯度值,在训练模型过程中,每次模型反向传播完成后,梯度都会累加到之前的梯度值上,如果不清空,这些过时的梯度将会影响下一次迭代的结果。因此,使用 optim.zero_grad() 来清空梯度避免这种情况的发生。保证

    2024年02月05日
    浏览(33)
  • 8. 损失函数与反向传播

    ① Loss损失函数一方面计算实际输出和目标之间的差距。 ② Loss损失函数另一方面为我们更新输出提供一定的依据。  ① L1loss数学公式如下图所示,例子如下下图所示。 结果: 结果:  ① MSE损失函数数学公式如下图所示。   结果: ① 交叉熵损失函数数学公式如下图所示。

    2024年02月10日
    浏览(25)
  • pytorch(三)反向传播

    前馈过程的目的是为了计算损失loss 反向传播的目的是为了更新权重w,这里权重的更新是使用随机梯度下降来更新的。 前馈过程 反馈过程 运行结果 在神经网路中,经常对线性的结果做一个非线性函数的变幻的展开,这就是激活函数。激活函数可以使得模型具有非线性。激活

    2024年01月24日
    浏览(28)
  • 【剑指offer】反向传播

    BN层详解 梯度消失和梯度爆炸 交叉熵损失函数 1*1卷积的作用 原文地址:反向传播 深度学习中的反向传播( Backpropagation )是一种基于梯度下降法的优化方法,用于计算神经网络中每个参数的梯度值,以便利用梯度下降法或其他优化方法来更新参数,从而最小化损失函数。

    2023年04月17日
    浏览(26)
  • 误差反向传播算法

    通过单个感知机或者单层神经网络只能够实现线性分类的问题,而多层神经网络可以解决非线性分类问题。 神经网络中的模型参数,是神经元模型中的连接权重以及每个功能神经元的阈值, 这些模型参数并不是我们人工设计或者指定的,而是通过算法自动学习到的。 和其他

    2024年02月06日
    浏览(26)
  • 【09】损失函数与反向传播

    损失函数大致可以分成两类:回归(Regression)和分类(Classification)。 回归模型中的三种损失函数包括: 均方误差(Mean Square Error,MSE) 平均绝对误差(Mean Absolute Error,MAE) Huber Loss。 ① Loss损失函数一方面计算实际输出和目标之间的差距。 ② Loss损失函数另一方面为我们

    2023年04月09日
    浏览(24)
  • 深度学习之反向传播

    (在pytorch包中)Tensor数据成员:data(存放数据w,也是Tensor变量,但是取data不会构建计算图)和grad(存放梯度loss对w的导,调用bacward之后grad也是个Tensor,每次引用结束要zero) backward会释放计算图,每一次运行神经网络时计算图可能是不同的,所以没进行一次反向传播就释放

    2024年02月16日
    浏览(24)
  • 机器学习 day27(反向传播)

    1. 导数 函数在某点的导数为该点处的斜率,用height / width表示,可以看作若当w增加ε,J(w,b)增加k倍的ε,则k为该点的导数 2. 反向传播 tensorflow中的计算图,由有向边和节点组成。从左向右为正向传播,神经网络模型使用正向传播来输出结果 从右向左为反向传播,tensorflow使用

    2024年02月16日
    浏览(36)
  • 反向传播与梯度下降的疑问

    backword是不是就是梯度下降 “Backward”(反向传播)和\\\"梯度下降\\\"(gradient descent)是深度学习中的两个不同的概念。 反向传播是一种用于计算神经网络中每个参数的梯度的算法,它通过链式法则将输出误差逐层反向传播,计算每个参数对误差的贡献,并更新参数以最小化误差

    2024年02月01日
    浏览(29)
  • 机器学习之前向传播(Forward Propagation)和反向传播(Back propagation)

    前向传播(Forward Propagation)和反向传播(Back propagation)是深度学习中神经网络训练的两个关键步骤。 前向传播(Forward Propagation) : 定义 :前向传播是指从神经网络的输入层到输出层的过程,通过输入数据和当前的模型参数,计算网络的输出。 步骤 :在前向传播中,数据

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包