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

一种面向入侵行为的溯源数据聚类方法及装置与流程

2021-11-05 20:32:00 来源:中国专利 TAG:


1.本发明属于计算机技术领域,更具体地,涉及一种面向入侵行为的溯源数据聚类方法及装置。


背景技术:

2.在网络空间这个大战场中,攻防博弈双方实质上是信息获取能力的对抗,只有获取更多、更全的信息才能制定有效的攻防策略,在网络空间战场博弈中获得优势。目前的基于主机的入侵检测方法主要基于记录和分析unix shell命令数据或入侵行为的系统调用信息,例如系统调用的序列及发生的概率。然而,这些方法并未揭露详细的内在入侵事件信息(例如系统漏洞和入侵来源),它们的检测精确性并不高。尽管可以通过日志这种非结构化数据来分析系统被入侵的过程,但是从大量包含有用户正常行为以及入侵者的非法行为中获取有用日志信息仍然是一个非常繁琐的过程。
3.实际上,攻击者的攻击行为步骤是具有因果关联的。攻击溯源就是基于这种因果关联把与攻击相关的信息关联到一起构建溯源图(provenance graph),并从中找到攻击者及攻击路径。但溯源数据具有数据量大,且增长速度极快的特点,不同事件的溯源信息通常混杂在一起,不易区分。


技术实现要素:

4.针对现有技术的以上缺陷或改进需求,本发明提供了一种面向入侵行为的溯源数据聚类方法及装置,旨在解决不同用户行为区分困难的技术问题。
5.为实现上述目的,本发明提供了一种面向入侵行为的溯源数据聚类方法,包括以下步骤:
6.s1,收集系统内核的溯源信息,并对所述溯源信息进行预处理,以过滤与入侵行为无关的节点以及与所述节点相关的依赖关系;
7.s2,将预处理后的溯源信息转换成溯源图,并构建所述溯源图的邻接矩阵和节点属性矩阵;
8.s3,从所述溯源图中选取多个根节点作为随机游走的种子节点,使所述种子节点按照游走策略进行随机游走,得到所述溯源图的游走路径以及溯源边的权重;所述游走策略为:所述种子节点中任一节点以概率p从邻接矩阵游走到与其相邻的节点,以概率(1

p)从节点属性矩阵游走到与其存在相同属性的节点;
9.s4,根据所述游走路径以及溯源边的权重进行聚类。
10.进一步地,所述s4包括:
11.根据所述游走路径以及溯源边的权重,结合社区发现算法infomap,进行重叠子社区聚类,并选取最小的信息熵值对应的社区划分作为最终聚类结果。
12.进一步地,当收集到新的溯源信息时,在所述最终聚类结果上进行增量聚类;其中,
13.若所述新的溯源信息中一新节点仅与所述最终聚类结果中一个社区的内部节点相连,则将所述一新节点划分到该社区;
14.若所述新的溯源信息中一新节点与所述最终聚类结果中多个社区的节点相连,则按照模块度指标进行增量更新,并根据增量更新的结果进行社区划分;
15.否则,将所述一新节点划分为一个新的社区。
16.进一步地,所述s1中,收集系统内核的溯源信息,包括:
17.拦截系统调用并处理得到溯源实体,所述溯源实体包括进程节点、文件节点、网络连接节点和管道节点;
18.初始化所述溯源实体,并分别收集与溯源实体中各节点相关的属性信息以及依赖关系;
19.去掉属性信息完全相同的节点,并对属性信息部分相同的同类型节点进行版本号区分。
20.进一步地,所述s4之后,还包括:
21.s5,引入固态硬盘ssd和硬盘驱动器hdd两种存储介质实现聚类后的溯源信息的冷热存储;利用聚类后的溯源信息中各个节点之间的依赖关系建立溯源规则库;
22.s6,根据用户发送的查询请求对所述溯源规则库的查询情况进行记录,并根据记录结果进行冷热数据的调度;将长期未被使用到的溯源信息进行压缩,以节约溯源信息的空间开销。
23.进一步地,所述s6包括:
24.将所述溯源规则库无差别的存入hdd中,当收到用户发送的查询请求时,根据节点的依赖关系对节点的全部子节点进行递归查找,以将查询的结果反馈给用户并将查询到的规则迁移到ssd中,同时在ssd中维护规则数据的淘汰列表;将长期未被使用到的溯源信息进行压缩,以节约溯源信息的空间开销;
25.其中,所述淘汰列表用于存储规则关系并使用lru队列,每次查询后重新维护所述lru队列,所述lru队列中的队尾数据为最近且最少使用的规则关系。
26.进一步地,当ssd存放满之后,将ssd中变冷的数据替换到hdd,以实现冷热数据分级存储,提高查询效率。
27.进一步地,所述将长期未被使用到的溯源信息进行压缩,包括:
28.周期性地将未被查询到的溯源信息进行bzip压缩,且将之前的查询记录清空。
29.为实现上述目的,本发明还提供了一种面向入侵行为的溯源数据聚类装置,包括:
30.收集与预处理模块,用于收集系统内核的溯源信息,并对所述溯源信息进行预处理,以过滤与入侵行为无关的节点以及与所述节点相关的依赖关系;
31.转换与构建模块,用于将预处理后的溯源信息转换成溯源图,并构建所述溯源图的邻接矩阵和节点属性矩阵;
32.随机游走模块,用于从所述溯源图中选取多个根节点作为随机游走的种子节点,使所述种子节点按照游走策略进行随机游走,得到所述溯源图的游走路径以及溯源边的权重;所述游走策略为:所述种子节点中任一节点以概率p从邻接矩阵游走到与其相邻的节点,以概率(1

p)从节点属性矩阵游走到与其存在相同属性的节点;
33.聚类模块,用于根据所述游走路径以及溯源边的权重进行聚类。
34.总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
35.(1)本发明通过过滤、压缩等预处理来提取有效溯源信息;将预处理后的溯源信息转换成溯源图,从溯源图中选取多个根节点作为随机游走的种子节点,使种子节点按照游走策略进行随机游走,得到溯源图的游走路径以及溯源边的权重,并以此进行聚类;其中,游走策略为:种子节点中任一节点以概率p从邻接矩阵游走到与其相邻的节点,以概率(1

p)从节点属性矩阵游走到与其存在相同属性的节点。本发明创新地提出了一种多种子节点的随机游走策略,通过不同游走节点相互影响,互相打上游走标签,从而得到更准确的聚类结果。
36.(2)本发明结合社区发现算法infomap,进行重叠子社区聚类,并选取最小的信息熵值对应的社区划分作为最终聚类结果;改进了目前针对有向图社区发现算法infomap,更好的发现溯源图中的重叠子图,让其能更好的结合溯源特征进行聚类,从而进一步提高溯源数据聚类的准确性。
37.(3)本发明在收集到新的溯源信息时,基于新的溯源信息中新节点与先前确定的聚类结果中社区的连接关系,进行社区划分,从而实现溯源数据动态聚类。
附图说明
38.图1为本发明实施例提供的一种面向入侵行为的溯源数据聚类方法的流程图;
39.图2为本发明实施例提供的基于溯源图构建邻接矩阵和节点属性矩阵的示意图;
40.图3为本发明实施例提供的多种子游走示意图;
41.图4为本发明实施例提供的存在重叠子社区的社区划分示意图;
42.图5为本发明实施例提供的动态聚类算法流程图;
43.图6为本发明实施例提供的一种面向入侵行为的溯源数据聚类装置的框图。
具体实施方式
44.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
45.在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
46.参阅图1,结合图2至图5,对本发明进行进一步详细说明。图1本发明实施例提供的一种面向入侵行为的溯源数据聚类方法的流程图,该聚类方法包括操作s1

操作s4。
47.操作s1,收集系统内核的溯源信息,并对所述溯源信息进行预处理,以过滤与入侵行为无关的节点以及与所述节点相关的依赖关系。具体地:
48.使用spade和camflow等系统收集系统内核、文件格式以及应用程序的溯源信息;溯源信息包括:进程节点、文件节点、网络连接节点和管道节点的名称及各节点之间的依赖关系。实际操作中,先收集系统内核的溯源信息,再从系统内核的溯源信息抽象得到文件格式以及应用程序的溯源信息。
49.其中,溯源收集系统包括网络溯源拦截层、网络溯源观察层、网络溯源分析层和网
络溯源分布层。网络溯源拦截层拦截accept、connect、send和recv等系统调用,并处理得到溯源实体,溯源实体包括进程节点、文件节点、网络连接节点和管道节点;网络溯源观察层初始化溯源实体,并分别收集与溯源实体中各节点相关的属性信息以及依赖关系,其中属性信息包括相关联的ip地址、端口号信息、用户id和连接创建时间;网络溯源分析层处理溯源信息,去掉属性信息完全相同的节点,并对属性信息部分相同的同类型节点进行版本号区分,以保证不会出现环;网络溯源分布层将获得的溯源信息写入溯源文件系统,保存在文件中。
50.需要说明的是,收集到的溯源信息主要表现形式为节点与节点之间相互依存进而建立相应的依赖关系,这些相互连接的每个节点当中都包含了大量属性信息,这些属性信息对进程以及文件对象等进行了详细的描述。为了进一步节省存储空间并提高检测效率,我们将从来源流中选择用于检测入侵的关键数据。并且我们通过省略程序执行期间生成的临时文件或管道的溯源来过滤数据。因为它们在不同实体(例如文件或进程)之间传输信息,并且生命周期短。因此,它们不太可能包含入侵信息。
51.操作s2,将预处理后的溯源信息转换成溯源图,并构建所述溯源图的邻接矩阵和节点属性矩阵。具体地:
52.参阅图2,将预处理后的溯源信息转换成溯源图,溯源图有a、b、c、d、e五个节点,节点属性矩阵h用one

hot编码,总共有5个不同属性构建的邻接矩阵g和节点属性矩阵h如图2所示。
53.操作s3,从所述溯源图中选取多个根节点作为随机游走的种子节点,使所述种子节点按照游走策略进行随机游走,得到所述溯源图的游走路径以及溯源边的权重;所述游走策略为:所述种子节点中任一节点以概率p从邻接矩阵g游走到与其相邻的节点,以概率(1

p)从节点属性矩阵h游走到与其存在相同属性的节点。具体地:
54.如图3所示,有社区1和社区2,在没有先验知识(不考虑权重,也就是节点按照不同边游走的概率相同)的情况下,节点a进行随机游走时不能很好区分社区边界,从而造成划分的不准确。一种多种子节点的随机游走方式,通过不同游走节点相互影响,互相打上游走标签,进行更准确的社区划分,例如节点d和节点a同时进行游走d—a,和a—a,而已知d和a属于不同社区,从而认为降低d—a和a—a间的游走概率,可以进行更准确的社区划分。
55.进一步地,如果一个节点是多个节点的祖先,则说明这个节点是数据流动的目的地,其重要性也越高。此处为每个节点分配一个初始值信息熵值h0,若节点p只有一个输入节点且为其自身,则其h0=0;若节点p有一个或多个输入节点且不包括其自身,则其h0=1。节点p的h值等于其初始值信息熵值h0和其子节点的h值之和。理论上,根节点的节点重要度最高,为了简化,一般采用根节点作为初始游走节点。
56.游走策略为:种子节点中任一节点以概率p从邻接矩阵g游走到与其相邻的节点,以概率(1

p)从节点属性矩阵h游走到与其存在相同属性的节点,转移矩阵公式为:
[0057][0058]
其中,其中和分表代表归一化之后的邻接矩阵和节点属性矩阵,n和m分别代表矩阵的行和列,其中n为邻接矩阵g中的节点的数量,m是溯源图中不同属性的数量,在上
述例子中,有5个节点,m为5,节点属性矩阵h中有5个不同属性,从而n为5。
[0059]
以图2为例,假设从节点a开始游走,从邻接矩阵g游走,游走的节点可能是b或c;从节点属性矩阵h游走,游走首先选取节点a的属性b或c,假设选取属性b,则最终游走的节点可能是d或e,假设选取属性c,则最终游走的节点是d。
[0060]
需要说明的是,由于随机游走能保证溯源图结构,因此,溯源边的权重可以根据游走序列确定。
[0061]
操作s4,根据所述游走路径以及溯源边的权重进行聚类。具体地:
[0062]
本实施例中事件聚类采用了社区划分的思想。社区的定义可以理解为:在一个社区内部的边尽可能地多,而社区与社区之间的边尽可能少。同时将社区发现与信息编码联系到一起。一个好的社区划分,可以带来更短的编码。所以,如果能量化编码长度,找到使得长度最短的社区划分,那就找到了一个好的社区划分。
[0063]
进一步地,如图4所示,节点7属于多个事件(两个社区),不考虑重叠子社区,会导致划分的子图结构不精确。因此,本实施例结合社区发现算法infomap,进行重叠子社区聚类,并选取最小的信息熵值对应的社区划分作为最终聚类结果。
[0064]
具体的,采用分层聚类算法:引用信息熵量化社区划分,如以下公式所示,该公式为两部分的加权和,一个是编码不同社区所需的平均字节长度,另一个是编码每个社区中的节点所需的平均字节长度。
[0065][0066][0067][0068]
其中,h(q)为编码溯源事件个数所需的平均字节长度,h(p
i
)为第i个社区编码每个溯源事件的节点所需的平均字节长度,l(m)为两部分的加权和;p
a
为对象a出现的概率,q
i~
为类别i出现的概率,q

=∑
i
q
i~
,主要因为类是独一一套编码,将其归一化后,代入熵的公式即可;p
i≡
=q
i~

a∈i
p
a

[0069]
最初将不同节点认为成不同社区,按照上述公式逐步合并节点,最终进行溯源事件的聚类。简而言之:infomap的输入是不同路径序列或者节点和边集,输出是不同社区的节点。
[0070]
进一步地,本发明在收集到新的溯源信息时,基于新的溯源信息中新节点与先前确定的聚类结果中社区的连接关系,进行社区划分,从而实现溯源数据动态聚类。具体的,动态更新增量聚类,核心思想溯源图是有向图,新节点仅仅影响部分先前节点。如图5所示,代码首先根据距上一次infomap聚类时间进行判定是否再次进行离线infomap聚类,若时间小于阈值,则执行增量聚类,这样主要是一方面避免增量聚类的误差累积,另一方面也是为了保证系统的效率。
[0071]
具体来说有三种情况,前两种情况是新节点与社区有边相连,第三种情况是新节点为“根节点”。针对情况1,新节点仅仅与某个社区节点相连,直接将节点划分到该社区。针
对情况2,新节点与多个社区节点相连,按照模块度指标进行增量更新。针对情况3,新节点直接为一个新的社区。
[0072]
进一步地,在s4之后,该聚类方法包括操作s5

操作s6。
[0073]
操作s5,引入固态硬盘ssd和硬盘驱动器hdd两种存储介质实现聚类后的溯源信息的冷热存储;利用聚类后的溯源信息中各个节点之间的依赖关系建立溯源规则库。
[0074]
操作s6,根据用户发送的查询请求对所述溯源规则库的查询情况进行记录,并根据记录结果进行冷热数据的调度;将长期未被使用到的溯源信息进行压缩,以节约溯源信息的空间开销。具体地:
[0075]
将所述溯源规则库无差别的存入hdd中,当收到用户发送的查询请求时,根据节点的依赖关系对节点的全部子节点进行递归查找,以将查询的结果反馈给用户并将查询到的规则迁移到ssd中,同时在ssd中维护规则数据的淘汰列表;将长期未被使用到的溯源信息进行压缩,以节约溯源信息的空间开销;
[0076]
其中,所述淘汰列表用于存储规则关系并使用lru队列,每次查询后重新维护所述lru队列,所述lru队列中的队尾数据为最近且最少使用的规则关系。
[0077]
进一步地,当ssd存放满之后,将ssd中变冷的数据替换到hdd,以实现冷热数据分级存储,提高查询效率。
[0078]
进一步地,周期性地将未被查询到的溯源信息进行bzip压缩,且将之前的查询记录清空。
[0079]
图6为本发明实施例提供的一种面向入侵行为的溯源数据聚类装置的框图。参阅图6,该面向入侵行为的溯源数据聚类装置600包括收集与预处理模块610、转换与构建模块620、随机游走模块630以及聚类模块640。
[0080]
收集与预处理模块610例如执行操作s1,用于收集系统内核的溯源信息,并对所述溯源信息进行预处理,以过滤与入侵行为无关的节点以及与所述节点相关的依赖关系;
[0081]
转换与构建模块620例如执行操作s2,用于将预处理后的溯源信息转换成溯源图,并构建所述溯源图的邻接矩阵和节点属性矩阵;
[0082]
随机游走模块630例如执行操作s3,用于从所述溯源图中选取多个根节点作为随机游走的种子节点,使所述种子节点按照游走策略进行随机游走,得到所述溯源图的游走路径以及溯源边的权重;所述游走策略为:所述种子节点中任一节点以概率p从邻接矩阵游走到与其相邻的节点,以概率(1

p)从节点属性矩阵游走到与其存在相同属性的节点;
[0083]
聚类模块640例如执行操作s4,用于根据所述游走路径以及溯源边的权重进行聚类。
[0084]
面向入侵行为的溯源数据聚类装置600用于执行上述图1所示实施例中的面向入侵行为的溯源数据聚类方法。本实施例未尽之细节,请参阅前述图1所示实施例中的面向入侵行为的溯源数据聚类方法,此处不再赘述。
[0085]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献