一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于异构图的APT实时检测分析方法

2022-08-13 15:01:25 来源:中国专利 TAG:

一种基于异构图的apt实时检测分析方法
技术领域
1.本发明属于信息安全技术领域,具体涉及一种基于异构图的apt实时检测分析方法。


背景技术:

2.目前,高级持久威胁(apt)变得越来越普遍,在apt中,apt参与者的目标是获得对特定系统(网络)的控制,同时在很长一段时间内保持不被发现,持久地危害多个主机并窃取机密信息。apt具有长期性和持久性的攻击模式,频繁使用零日攻击而让其变得难以检测。
3.而目前传统的检测系统难以检测apt:基于异常的系统通常会分析一系列系统调用和日志相邻的系统事件,但其中大多数难以建模长期行为模式;一种基于出处的apt检测方法使用基于先前攻击知识的简单边缘匹配规则,无法检测新类别的apt;一种基于原型的异常检测系统依靠图邻域探索,通过静态或动态模型来理解正常行为,实际的计算约束限制了可行的上下文分析的范围;此外,现有的检测算法多基于行为检测,大部分方法考虑日志的序列关系以及用户的行为序列,但是忽略了其他的关系导致不适用于丰富多样的攻击场景。
4.因此传统的检测方法的缺陷主要表现在:第一、只考虑了日志之间的单一关系而没有同时考虑日志条目之间的时序关系、逻辑关系及交互关系;第二,静态模型不能捕获长期系统行为,apt的攻击场景很长,不能捕获长期系统行为会导致很高的误报;第三,内存存储中的计算方法在面对长期运行的攻击场景下扩展性差;第四,运行时的动态建模有被攻击者毒害的风险,长期性和持久性的apt手段会逐渐毒害动态模型,降低其识别攻击的准确性。


技术实现要素:

5.本发明的目的在于提供一种基于异构图的apt实时检测分析方法,实现针对apt攻击的实时、高效检测。
6.为实现上述目的,本发明所采取的技术方案为:
7.一种基于异构图的apt实时检测分析方法,所述基于异构图的apt实时检测分析方法,包括:
8.步骤1、获取操作系统中的日志数据;
9.步骤2、提取日志数据中的五个元属性,根据五个元属性,基于预设的边生成规则将日志数据转化为异构图,所述异构图中的节点为日志条目;
10.步骤3、利用图嵌入技术提取异构图中每个日志条目的上下文关系,形成一条日志序列,并把日志序列当成句子用word2vec方法将日志序列中的每个日志条目转换为低维向量表示;
11.步骤4、基于异构图中所有节点的低维向量,采用图概要技术生成固定大小的草
图;
12.步骤5、将草图与预训练的检测模型进行比较,若草图适合检测模型下进化模型中的一个簇则该草图正常,即所获取的日志数据为无apt攻击场景下的日志数据;否则该草图异常,即所获取的日志数据为apt攻击场景下的日志数据;
13.其中,所述检测模型的生成过程包括:
14.定时取无apt攻击场景下的日志数据得到本次训练的草图,并将本次训练的草图与之前训练的草图按照创建时间顺序排列形成草图序列;
15.使用聚类算法对草图序列进行聚类得到多个簇;
16.基于每个簇中草图的创建时间顺序以及每个簇的统计数据生成本次训练的进化模型,聚集多次训练得到的进化模型作为检测模型。
17.以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
18.作为优选,所述五个元属性为源对象、操作类型、目标对象、时间和主机。
19.作为优选,所述预设的边生成规则包括:
20.规则1、将同一天且同一源对象的日志条目按时间顺序连接,形成每日日志条目的序列,该规则具有最高权重;
21.规则2、将同一天且同一目标对象的日志条目按照时间顺序进行连接,形成每日日志条目的序列,该规则具有最高权重;
22.规则3、将相似度高于阈值且相同源对象的每日日志条目的序列连接;
23.规则4、将相似度高于阈值且相同目标对象的每日日志条目的序列连接。
24.作为优选,所述每日日志条目的序列之间的相似度与其所包含的日志条目的数量的相似性正相关。
25.作为优选,所述利用图嵌入技术提取异构图中每个日志条目的上下文关系,形成一条日志序列,包括:
26.所述图嵌入技术为随机游走方法,所述随机游走方法中边类型和边权重的定义如下:
27.所述边类型:将基于规则1和规则2生成的边的边类型划分为类型1,将基于规则3和规则4生成的边的边类型划分为类型2,生成两组边类型集合为{规则1,规则3}和{规则2,规则4};
28.所述边权重:每次执行随机游走,取两组边类型集合中的一组边类型集合,因此边权重函数表示为:
[0029][0030]
w(t,v)=e-s(m,n)
[0031]
式中,w(t,v)表示日志条目的序列t和日志条目的序列v在对应的边类型集合上的权重,序列t为基于边类型集合中边类型为类型1的规则连接生成的日志条目的序列,序列v为基于边类型集合中边类型为类型2的规则连接生成的日志条目的序列,m为序列t中所包含的日志条目的数量,n为序列v中所包含的日志条目的数量,s(m,n)为序列t和序列v的日
志条目数量的相似度。
[0032]
作为优选,所述随机游走方法中针对节点v处的转移概率计算如下:
[0033][0034]
式中,p(t|v)表示节点v到节点t的转移概率,e为异构图中所有边的集合,n(v)为节点v的邻居节点,w
n(v)
为节点v和其所有邻居节点n(v)之间的边权重之和,w(t,v)=w(t,v),为节点v和节点t的边类型,sn为所有边类型的集合,r
w(t,v)
为基于边类型与节点v相连的节点的边权重在所有与节点v相连的节点的边权重中降序排列的排序值,neigh为预设的邻居节点的数量。
[0035]
本发明提供的基于异构图的apt实时检测分析方法,实现将日志数据条目构建为异构图,并制定相应规则,所以能够同时考虑到日志之间的因果关系、时序关系和逻辑关系,对apt进行细粒度的检测;采用图概要技术,能够将增量生成的异构图中的所有节点向量保持紧凑且固定大小,同时也保持了日志序列之间的相似性,实现可扩展性,低计算和存储开销,高精度的apt检测;该方法在数据训练期间直接对系统的进化行为建模,并且不会在之后更新模型,所以能够防止攻击者毒害模型。
附图说明
[0036]
图1为本发明的基于异构图的apt实时检测分析方法的流程图。
具体实施方式
[0037]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本发明。
[0039]
为了克服现有技术中对apt攻击的识别性差的问题,本实施例提出一种基于异构图的apt实时检测分析方法,如图1所示,具体包括以下步骤:
[0040]
步骤1、获取操作系统中的日志数据。
[0041]
本实施例使用spade框架获取操作系统中的日志数据,数据只包括良性场景(即无apt攻击场景)下收集到的日志数据。
[0042]
具体地,在模型训练之前,采用spade基础架构进行细粒度日志数据的采集。spade提供用于推断、存储和查询数据来源的软件,是跨平台的,可用于多种来源,包括linux、macos和windows,无需对应用程序或目标平台进行任何更改即可完成来源的收集,spade易
于安装和配置,为用户提供了一种从多种存储格式中进行选择的简单机制。
[0043]
步骤2、提取日志数据中的五个元属性,根据五个元属性,基于预设的边生成规则将日志数据转化为异构图,异构图中的节点为日志条目。
[0044]
对于每一个日志条目,定义五个元属性,包括:源对象、操作类型、目标对象、时间和主机,并根据日志条目之间的三种关系,包括:日志条目的因果关系、顺序关系和逻辑关系来制定相应的边生成规则,然后根据日志条目的属性和边生成规则将日志条目构建成异构图。
[0045]
具体地,对采集到的日志条目进行初步处理,提取出日志的五个元属性,其中源对象表示日志的执行对象集合(例如进程、线程等),目标对象表示日志中操作的对象集合(例如进程、文件、socket、进程间通信、内存、网络);操作类型表示源对象对目标对象的操作类型的集合(例如进程之间有fork,execute,exit,clone操作,进程和文件之间有read,open,close,write,loadlib,create,unlink操作,进程和网络之间有connect,send操作,进程和内存之间有mprotect,mmap操作,进程和socket之间有connect,send,recv,read,close,accept,write操作等);时间表示日志发生的时间,主机是日志发生在的操作系统(例如计算机或者是服务器)。
[0046]
然后生成针对日志条目之间的三种关系的规则,考虑这些元属性的不同组合,以关联较少的日志条目,并将精细的日志关系映射到图中,本实施例中给出其中一些规则,后续可进行补充:
[0047]
规则1、将同一天且同一源对象的日志条目按时间顺序连接,形成每日日志条目的序列,该规则具有最高权重。
[0048]
规则2、将同一天且同一目标对象的日志条目按照时间顺序进行连接,形成每日日志条目的序列,该规则具有最高权重。
[0049]
规则3、将相似度高于阈值且相同源对象的每日日志条目的序列连接;每日日志条目的序列之间的相似度与其所包含的日志条目的数量的相似性正相关。
[0050]
规则4、将相似度高于阈值且相同目标对象的每日日志条目的序列连接。每日日志条目的序列之间的相似度与其所包含的日志条目的数量的相似性正相关。
[0051]
规则1和规则2中的具有最高权重理解为同一天内的日志条目必须相连,所以权重值是最高的,而天与天之间的序列需要根据相似度进行选择。
[0052]
规则1连接一天内的日志序列,得到一天的日志条目的序列,规则3根据这些由规则1连接的序列,在天与天之间计算他们的相似度(日志条目的数量),确定哪些天的序列比较相似,相似的序列可以相连。并且天与天之间连接不需要按照时间连接,天与天之间连接需要首尾节点去根据相似度连接其它天的日志序列(首尾节点)。
[0053]
并且可以取每日日志条目的序列之间的相似度与其所包含的日志条目的数量的相似性相同,例如两个序列所包含的日志条目的数量相同,则两个序列的相似度为100%,例如两个序列所包含的日志条目的数量相差5,则两个序列的相似度为95%。需要说明的是,两个序列的日志条目的数量的相似性可以根据实际需求选取计算方式。
[0054]
步骤3、利用图嵌入技术提取异构图中每个日志条目的上下文关系,形成一条日志序列,并把日志序列当成句子用word2vec方法将日志序列中的每个日志条目转换为低维向量表示。
[0055]
本实施例中图嵌入技术具体使用一种随机游走方法,随机游走是一种流行的图遍历算法,假设一个行走者驻留在图中的一个节点上,根据每个边的权重和类型来决定下一个要访问的节点,由它生成的路径(节点序列)被视为这些节点的上下文。word2vec模型用于计算每个节点的向量及其路径(上下文)。具体来说,这些路径被作为自然语言中的句子,并由该模型处理以学习每个单词(节点)的向量。该方法保持了节点与其上下文之间的接近性,这意味着节点(日志条目)及其邻居(与其关系密切的日志条目)共享相似的嵌入(向量)。
[0056]
本实施例采用的随机游走方法能够从异构图中提取每个日志条目的上下文,该方法通过控制邻居节点的数量以及不同比例的边类型集提取上下文,来解决不同攻击场景的异常检测问题。随机游走会根据边类型和权重生成路径,边的权重和两组日志序列包含的日志数量的相似度成正比。
[0057]
本实施例中所采用的随机游走方法中边类型和边权重的定义如下:
[0058]
边类型:将基于规则1和规则2生成的边的边类型划分为类型1,将基于规则3和规则4生成的边的边类型划分为类型2,生成两组边类型集合为{规则1,规则3}和{规则2,规则4}。
[0059]
本实施例改进了常规的随机游走方法,在随机游走生成路径时候,会根据我们设置的边类型集合(规则1 规则3或者规则2 规则4)的比例,生成不同数量路径,这样可以根据不同的场景,聚焦不同的攻击方式。
[0060]
边权重:每次执行随机游走,取两组边类型集合中的一组边类型集合,因此边权重函数表示为:
[0061][0062]
w(t,v)=e-s(m,n)
[0063]
式中,w(t,v)表示日志条目的序列t和日志条目的序列v在对应的边类型集合上的权重,序列t为基于边类型集合中边类型为类型1的规则连接生成的日志条目的序列,序列v为基于边类型集合中边类型为类型2的规则连接生成的日志条目的序列,m为序列t中所包含的日志条目的数量,n为序列v中所包含的日志条目的数量,s(m,n)为序列t和序列v的日志条目数量的相似度。
[0064]
并且随机游走方法中针对节点v处的转移概率计算如下:
[0065][0066]
式中,p(t|v)表示节点v到节点t的转移概率,e为异构图中所有边的集合,n(v)为节点v的邻居节点,w
n(v)
为节点v和其所有邻居节点n(v)之间的边权重之和,为节点v和节点t的边类型,sn为所有边类型的集合,r
w(t,v)
为基于边类型与节点v相连的节
点的边权重在所有与节点v相连的节点的边权重中降序排列的排序值(本质上就是限制了邻居节点的数量),neigh为预设的邻居节点的数量。
[0067]
当计算节点之间的转移概率时,若节点为天与天之间的序列,则取序列的第一个/最后一个节点的转移来代表序列之间的转移,此时取w(t,v)为w(t,v),即节点t为序列t的第一个/最后一个节点,节点v为序列v的第一个/最后一个节点。
[0068]
n(v)作为节点v的邻居节点需满足以下三个条件:
[0069]
1)节点t需要和节点v至少有一条边。
[0070]
2)节点t和节点v之间至少有一种边类型是属于sn的。
[0071]
3)w(t,v)表示节点t和节点v在边类型上的权重,当且仅当它的排序值不大于neigh时满足条件。
[0072]
满足以上三个条件的节点t即作为节点v的邻居节点n(v)。
[0073]
需要注意的是,每一次随机游走,只考虑一组边类型集合,这个定义可以基于不同场景确定每组边缘类型的重要性,允许有区别地提取每个节点的上下文,不同的攻击场景会留下不同的痕迹供检测,也就是说,在每种攻击中,只有一个或两个日志条目的元属性变得异常。在每个集合中,存在一种关注组内的类型(例如规则1、规则2)和另一种关注组间的类型(例如规则3、规则4)。
[0074]
如上所述,每组包括两种边类型,分别关注组内(同一天)和组间(天与天)。组内的边类型构建日志条目的序列,并且这种序列中的每个节点具有两个邻居节点,随机游走不会访问已经访问过的最后一个节点,因此在序列中实际只有一个节点要访问,而对于这种序列的第一个和最后一个节点,需要从多个其他序列的首尾节点中选择要关联的日志序列,因此需要控制邻居节点(neigh)的数量,通过调优neigh的值,能够将少量的恶意日志序列从向量空间中隔离,同时最优的neigh值需要基于不同的用户而变化,因此neigh的值是一个超参数,由实验设定,一般情况下设置一个较低的值,以确保最相似的序列连接到给定的序列。
[0075]
接下来,采用word2vec模型skip-gram从异构图中生成的路径中将日志条目映射到低维向量,它是一个目标函数,以一个节点为条件,最大化其邻居的概率。
[0076]
步骤4、基于异构图中所有节点的低维向量,采用图概要技术生成紧凑且固定大小的草图。
[0077]
采用图概要技术可以支持对增长的异构图进行实时流分析,同时保持了日志条目的向量表达前后的jaccard相似性,有利于对异构图的分析和聚类。
[0078]
具体地,由于相似性计算可能非常昂贵,因此需要可扩展的方法来估计大规模数据集的相似性,图概要技术为异构图中日志条目集合的向量表示构建保持紧凑且固定大小的草图。图概要技术是一种恒定时间算法,因此它足够快,可以支持对快速增长的异构图进行实时流分析。它还保持了日志条目的向量表达前后的jaccard相似性,允许我们有效地计算草图之间的相似性。
[0079]
步骤5、将草图与预训练的检测模型进行比较,若草图适合检测模型下进化模型中的一个簇则该草图正常,即所获取的日志数据为无apt攻击场景下的日志数据;否则该草图异常,即所获取的日志数据为apt攻击场景下的日志数据。
[0080]
实际的检测场景中,不会对之前已经训练好的检测模型进行修改,这样可以防止
检测模型被攻击数据毒害。部署检测时,对于不断增加的日志条目,需要定期对异构图进行增量更新,并计算生成其对应的草图,将其与训练过程中学习的所有进化模型进行比较,使其适合某个进化模型中的一个簇。
[0081]
若实时检测中得到的草图无法聚类到预训练得到的进化模型的某一个簇中,则认为这个草图是异常的,当出现异常行为后,系统会产生报警。本实施例中检测到的两种异常行为包括:不适合最终状态对应的集群的草图和转移状态对应的集群的草图。
[0082]
由于相似的操作生成的草图在聚类后会被聚到同一个簇中,在有新的操作出现后,可能会出现一个操作到另一个操作过渡(转换)的状态,把这种状态也视为正常行为。在实时检测时很难保证当前要检测的状态是否为一个最终状态还是一个转移状态,所以这些状态都需要草图维护。
[0083]
本实施例在预训练检测模型时,训练过程如下:
[0084]
定时取无apt攻击场景下的日志数据根据步骤1~4得到本次训练的草图,并将本次训练的草图与之前训练的草图按照创建时间顺序排列形成草图序列。
[0085]
使用聚类算法对草图序列进行聚类得到多个簇。本实施例使用k-medods算法对该草图序列进行聚类,并使用轮廓系数确定k的最佳值
[0086]
基于每个簇中草图的创建时间顺序以及每个簇的统计数据(例如直径、medoid)生成本次训练的进化模型,聚集多次训练得到的进化模型作为检测模型。
[0087]
数据训练时,只对良性场景下的日志条目进行训练,训练过程中创建一系列具有时序关系的草图,对于每个草图创建一个进化模型,该进化模型捕获系统运行时执行状态的更新,最终的检测模型由训练数据中的多个进化模型组成。
[0088]
给定草图和相似性度量,聚类是识别异常值的常用数据挖掘方法,apt攻击场景持续的时间足够长,无法捕捉系统的进化行为会导致太多的误报。本实施例利用其流式处理能力创建进化模型,捕捉系统行为的正常变化。至关重要的是,在训练期间而不是在部署期间构建这些进化模型,因为在部署期间动态演化模型有可能在apt的延长攻击阶段被毒害,从而降低了检测的准确性。
[0089]
本技术提供的基于异构图的apt实时检测分析方法,将日志条目构建成异构图,使用图嵌入方法将日志条目表示成低维向量,利用图概要技术保持图形草图的大小固定、紧凑,对图形草图进行建模并通过聚类算法检测异常行为,实现apt检测的高效性、精准性和实时性。
[0090]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0091]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献