2016年Streamspot、2020年Unicorn、2020年ProvDetector总结对比分析

原文链接:
Streamspot
unicorn
provDetector

研究背景:

Streamspot:APT攻击
Unicorn: APT攻击
ProvDetector:隐蔽恶意软件,还可以应用于无文件攻击

系统特点:

Streamspot:基于聚类、异构图、流式特性、图形草图、低计算和空间开销、实时异常检测。Streamspot并没有提到是否可以应用于带属性的溯源图,但我认为按照文中示例的意思,是不能应用的。
Unicorn:基于聚类、异构图、流式特性、图形草图、低计算和空间开销、实时异常检测。除此之外,相对于Streamspot,其可以应用于大型、带属性的整体系统溯源图。利用其流式处理能力生成具有演变性的模型。基于演变化的模型去判断是否异常。不会在运行时动态更改模型。
ProvDetector:基于聚类,异构图,非流式,离线检测。

主要贡献:

Streamspot:

(1)设计了一种针对时间戳类型图的新相似度函数,它基于Shingling,并考虑了图中不同子结构的频率。除了计算高效、捕捉图之间相似度有效外,所提出的函数还可以基于草图比较两个图,从而实现内存效率。
(2)动态维护:引入了高效的技术,随着流式数据中传入新边的到来,保持各个组件的最新状态。具体而言,展示了如何增量地维护草图和聚类。

Unicorn:

(1)引入了一种新颖的基于草图的、时间加权的溯源编码方法,该方法紧凑而能够对长时间段的溯源图进行有用的摘要。
(2)基于演变化的模型去判断是否异常,并且不会在运行时动态更改模型
ProvDetector:
(1)为了保证高检测准确性和效率,提出了一种新颖的路径选择算法—文中的可伸缩模型构建。用于识别溯源图中可能存在恶意行为的部分。
(2)设计了一种新颖的神经嵌入和机器学习流程,自动为每个程序构建行为模型并识别异常进程。

ProvDetector:

(1)为了保证高检测准确性和效率,提出了一种新颖的路径选择算法—文中的可伸缩模型构建。用于识别溯源图中可能存在恶意行为的部分。
(2)设计了一种新颖的神经嵌入和机器学习流程,自动为每个程序构建行为模型并识别异常进程。

从图分析系统主要构成

以下图均来自论文“Sometimes, You Aren’t What You Do:
Mimicry Attacks against Provenance Graph Host Intrusion Detection Systems”

Streamspot:

在这里插入图片描述

(1)Streamspot首先将大的溯源图划分为节点数量基本相当的小的溯源图。
(2)从1->2,将每个图形拆分成一组k-shingle,并构造它们的频率向量。两个图形之间的相似性定义为它们的k-shingle频率向量之间的余弦相似性。k-shingle向量:给定图形G = (V, E)和节点v ∈ V,k-shingle s(v, k)是通过从v开始的k跳广度优先遍历构造的字符串。遍历时,考虑节点类型+边的类型。通常是形成一个字符串。这里遍历的是图的子结构。其每个子结构的频率对应于其出现的次数,所有子结构的频率组成了频率向量ZG,ZG是一个大小为S维的向量。在这里ZG=(1,3,1,1,7)—较大的k会产生更具表达力的局部邻域,而较小的k则需要在每个传入边上更新较少的shingle向量条目。
(3)从2-3,由于溯源图的特点,即使在k=1的情况下,S(K-shingle全集)也可能以组合的方式基于增加,因此使用chunk(在之后简化为C)进行分割。较小的C减弱了结构的影响,依赖于节点的频率,。较大的C倾向于使图对更不相似。
(4)从3-4使用了StreamHash进行映射,将子结构映射为L维的向量(将之前chunk好的字符映射为数字)。这里的映射采用的是Hash函数进行映射,为保证可处理流式,L维的向量,有相对应的L个哈希函数。对应的映射值为+1或-1。在这里所构建的就是对应的图形草图。
(5)之后,将图形草图进行压缩,压缩为一个L维的向量,该向量为该图的投影映射。如何压缩?使用公式:
在这里插入图片描述

其中Z为之前的频率向量。之后使用相似度计算的时候,不是使用向量y,而是使用x = sign(y)进行计算。

(6)聚类的实现:Streamspot使用从良性流图的训练数据集获取的引导聚类进行初始化。使用K-medoids算法将训练图分成K个聚类。之后,StreamSpot为每个训练图构建StreamHash投影向量,并将每个聚类的质心的投影向量构造为包含的图的投影向量的平均值。
(7)从5->6,计算每个聚类质心和图的映射向量之间的距离,如果图不能分配到任何一个聚类中,则假设其为异常。
(8)当图中新加入边时,如果在其K跳领域之内,则将其对应的子结构的频率加1,则可以通过直接更改其图形草图来达到更新的目的。

Unicorn:

在这里插入图片描述

(1)与streamspot相似,Unicorn也是进行了图级别的嵌入。
(2)从1->2,Unicorn将图转换为了直方图,其中直方图中的每个元素描述了图的一个独特子结构,这个子结构考虑到子结构中顶点和边上附加的异构标签,以及这些边的时间顺序。Unicorn使用WL图核构建每个顶点的R跳领域扩展标签。在本图中,构建扩展标签之后将其分为更小的结构,在这里J=4,R=3。在下一个时间戳内,仅对新到达的顶点和受新边影响的入邻域的顶点运行算法。
(3)从2->3中。Unicorn使用HistoSketch对下相应的直方图进行映射。
(4)UNICORN利用其流式处理能力创建能够捕捉系统行为中正常变化的演化模型,关键的是,它是在训练期间构建这些演化模型,而不是在部署期间。UNICORN在训练过程中创建了一系列按时间排序的草图。然后,使用众所周知的K-medoids算法[65]对该草图序列进行聚类,在确定最佳K值时使用轮廓系数[108]。
(5)从3->4,给定一个图形草图,UNICORN将其与建模过程中学习到的所有子模型进行比较,并将其适应到每个子模型中的一个聚类中。
(6)从4->5,为了在任何子模型中被视为有效,一个草图必须要么适应于当前状态,要么适应于(其中一个)下一个状态(即,在草图捕捉到系统执行状态转换的情况下);否则,它被视为异常。因此,检测到两种形式的异常行为:不适应现有聚类的草图和聚类之间的无效转换。

ProvDetector:

在这里插入图片描述

(1)provDetector采用基于路径的嵌入方式
(2)图构建:对于一个给定的进程实例,检测器使用数据库中存储的数据将其来源图G § =< V,E >构建为一个标记的时间图。具体来说:节点V是标签为其属性的系统实体,E是标签为关系和时间戳的边。V中的每个节点都属于以下三种类型之一:进程、文件或套接字。我们将E中的每条边e定义为时间{src,dst,rel,time}。来源图G §的构造从v == p开始。然后,我们将任何边e及其源节点srcsst和目标节点dst添加到图中,如果e.src∈V或e.dst∈V。
(3)从1->2中,提取出所有以节点P1为起点的路经(创建伪路径起点和伪路径终点)
(4)表示提取:从2->3中,根据路径稀有性,提取出稀有性排名前K的路径。路径稀有度的计算:在这里插入图片描述
,其中R(ei)为第i条边的得分。在这里插入图片描述
,其中H (e)是事件e上发生的集合,而H是所有主机的集合。在这里插入图片描述

T from是没有边连接(from)到v的稳定窗口的计数,T to是没有边连接(to)到v的稳定窗口的计数,|T|是窗口的总数。
(5)嵌入:从3->4中,ProvDetector使用doc2vec中的PV-DM模型进行嵌入,其可以将不同的路经长度嵌入到相同的维度。在这里作者将因果路径视为句子/文档:路径中的节点和边是组成描述程序行为的“句子”的单词。例如:Process:winword.exe write File:t1.txt read by Process:outlook.exe write Socket:168.x.x.x。
(6)异常检测:ProvDetector使用新颖性检测方法来检测路径的嵌入是否异常。ProvDetector使用局部离群因子(LOF)[11]作为新颖性检测模型。LOF是一种基于密度的方法。如果一个点的局部密度低于其邻居,则视为异常值。
(7)从4->5,在检测阶段,使用构建好的新颖性检测模型对溯源图的路径嵌入向量进行预测。使用基于阈值的方法,即如果有超过t个嵌入向量(前K中有超过t个)被预测为恶意,则将溯源图视为恶意,以最终决定溯源图是良性还是恶意。当已经预测出前t个而不是K个路径为恶意时,这种方法可以在路径选择过程中提前停止,以减少检测开销。

设计局限:

Streamspot,因为其模型可更改很容易被攻击者利用,从而导致检测性能大幅度降低。Steamspot不能支持太大规模的溯源图。
Unicorn:最终检测的异常是以图的形式出现的,这样的检测是粗粒度的检测,会使安全分析人员难以排查根本原因。
ProvDetector:离线检测

Streamspot VS Unicorn

两者都是基于聚类的、处理异构图、流式特性、图形草图、低计算和空间开销、实时异常检测,以及采用图嵌入方式,最终输出的异常也是图。
但Unicorn相较于Streamspot改进了很多:
其一:使用fast WL图核去生成扩展的顶点标签,可以应用于带属性的溯源图。
其二:在于Unicorn的流式特性和Streamspot的流式特性是不同的,Unicorn的流式特性按照时间戳生成迭代的直方图,从而生成迭代的图形草图。Unicorn利用其流式处理能力生成具有演变性的模型。基于演变化的模型去判断是否异常,并且不会在运行时动态更改模型。而Streamspot的流式特性使其很容易更新图形草图(同一个),再直接进行聚类,这样会在运行时更改模型,很容易收到攻击影响。------也就是说StreamSpot仅模型化每个训练图的单个快照,并在测试时通过更新聚类的参数来动态维护聚类。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值