恶意流量智能检测方法、装置及存储介质与流程

文档序号:31126482发布日期:2022-08-13 03:38阅读:75来源:国知局
恶意流量智能检测方法、装置及存储介质与流程

1.本发明涉及计算机网络技术领域,尤其是一种恶意流量智能检测方法、装置及存储介质。


背景技术:

2.随着计算机网络的广泛应用,尤其是移动网络的发展,越来越多的设备接入计算机网络,计算机网络中传输的数据流量呈现爆炸式增长,也对计算机网络以及连接到计算机网络中的设备的安全产生了影响。例如,一些设备可能会主动发出数据流量去对计算机网络或者其他设备发起攻击,一些设备可能被计算机病毒劫持,在该设备正常发送数据流量的同时发出恶意流量,对计算机网络或者其他设备发起攻击。恶意流量的存在对计算机网络的使用和发展造成了恶劣影响,甚至会对经济、交通、医疗、军事等方面的安全造成威胁。


技术实现要素:

3.针对目前的计算机网络中存在的恶意流量,本发明的目的在于提供一种恶意流量智能检测方法、装置及存储介质。
4.一方面,本发明实施例包括一种恶意流量智能检测方法,包括:
5.获取数据包样本集合;所述数据包样本集合包括多个数据包样本,以及各所述数据包样本对应的标签;所述标签用于表示所述数据包样本属于正常流量或者属于恶意流量;
6.设定多个不同类型的数据属性;所述数据属性通过其取值描述所述数据包样本的属性;
7.根据各所述数据包样本的标签以及对应数据属性的取值,建立决策树模型;
8.获取待检测数据包;
9.根据所述决策树模型,确定待检测数据包属于正常流量或者属于恶意流量。
10.进一步地,所述根据各所述数据包样本的标签以及对应数据属性的取值,建立决策树模型,包括:
11.执行根节点选定过程,选出一个所述数据属性作为总根节点,根据作为总根节点的所述数据属性的不同具体取值,形成所述根节点的各个分支;
12.对所述根节点的各个分支递归执行所述根节点选定过程,从而确定各个分支各自对应的根节点;
13.以所述总根节点以及各个分支各自对应的根节点,组成所述决策树模型;
14.所述根节点选定过程包括:
15.确定各所述数据属性所要求的信息增益;
16.选出具有最大的所述信息增益的所述数据属性,作为本分支对应的根节点。
17.进一步地,所述确定各所述数据属性所要求的信息增益,包括:
18.根据总正样本数量与总负样本数量,确定总期望信息;所述总正样本数量为全部所述数据包样本中,属于正常流量的全部所述数据包样本的数量,所述总负样本数量为全部所述数据包样本中,属于恶意流量的全部所述数据包样本的数量;
19.根据所述总正样本数量、所述总负样本数量、分支正样本数量和分支负样本数量,确定分支期望信息;所述分支正样本数量为所述数据属性在各个具体取值下,对应的属于正常流量的所述数据包样本的数量,所述分支负样本数量为所述数据属性在各个具体取值下,对应的属于恶意流量的所述数据包样本的数量;
20.根据所述总期望信息与所述分支期望信息的差,确定所述信息增益。
21.进一步地,所述根据总正样本数量与总负样本数量,确定总期望信息,包括:
22.通过公式进行计算;其中,i(p,n)表示所述总期望信息,p表示所述总正样本数量,n表示所述总负样本数量。
23.进一步地,所述根据所述总正样本数量、所述总负样本数量、分支正样本数量和分支负样本数量,确定分支期望信息,包括:
24.通过公式进行计算;其中,e(a)表示数据属性a的所述分支期望信息,数据属性a的具体取值包括{a1,a2,a3,
…am
},p表示所述总正样本数量,n表示所述总负样本数量,pi表示数据属性a的具体取值为ai时对应的属于正常流量的所述数据包样本的数量,ni表示数据属性a的具体取值为ai时对应的属于恶意流量的所述数据包样本的数量。
25.进一步地,所述设定多个不同类型的数据属性,包括:
26.收集通信过程中的会话信息;
27.根据所述会话信息,设定多个不同类型的候选数据属性;
28.获取各所述数据包样本的候选数据属性的具体取值;
29.对于每一种所述候选数据属性,确定所述候选数据属性的全部具体取值的离散系数;
30.以具有最大的离散系数的多个所述候选数据属性,作为所要设定的多个数据属性。
31.进一步地,所述收集通信过程中的会话信息和数据面信息,包括:
32.从5g核心网的smf网元获取所述会话信息;
33.所述获取待检测数据包,包括:
34.从5g核心网的upf网元获取数据面信息;
35.从所述数据面信息解析出所述待检测数据包。
36.进一步地,所述恶意流量智能检测方法还包括:
37.对于被确定为属于恶意流量的所述待检测数据包,确定所述待检测数据包的数据来源;
38.接收所述数据来源发出的数据包;
39.将所述数据来源发出的数据包标记为属于恶意流量;
40.将所述数据来源发出的数据包作为数据包样本,加入所述数据包样本集合。
41.另一方面,本发明实施例还包括一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行实施例中的恶意流量智能检测方法。
42.另一方面,本发明实施例还包括一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行实施例中的恶意流量智能检测方法。
43.本发明的有益效果是:实施例中的恶意流量智能检测方法,通过使用数据包样本建立决策树模型,能够学习数据包样本中的数据属性包含的特征信息,所得到的决策树模型具有识别待检测数据包属于恶意流量或者属于正常流量的能力,能够通过简单的判断过程,将待检测数据包分类为恶意流量或者正常流量,从而完成对恶意流量的智能快速检测;实施例中的恶意流量智能检测方法的算法实现简单,对执行各步骤的硬件设备的性能要求低,能够应用于各种网络节点中对接收或者转发的网络流量数据包进行分析,由于对网络节点的性能耗用少,能够降低对网络节点接收或者转发的网络流量数据包的影响,保障网络节点的数据传输效率。
附图说明
44.图1为实施例中恶意流量智能检测方法的流程图;
45.图2为实施例中获取会话信息和数据面信息的流程图;
46.图3为实施例中的决策树模型的原理图。
具体实施方式
47.本实施例中,参照图1,恶意流量智能检测方法包括以下步骤:
48.s1.获取数据包样本集合;
49.s2.设定多个不同类型的数据属性;数据属性通过其取值描述数据包样本的属性;
50.s3.根据各数据包样本的标签以及对应数据属性的取值,建立决策树模型;
51.s4.获取待检测数据包;
52.s5.根据决策树模型,确定待检测数据包属于正常流量或者属于恶意流量。
53.步骤s1中,数据包样本集合是由多个数据包样本组成的集合。可以从计算机网络的实际通信过程中抓取数据包作为数据包样本,或者生成数据包作为数据包样本。对数据包样本进行鉴别,确定数据包样本属于正常流量或者属于恶意流量,并向数据包样本添加标签,以标记这个数据包样本属于正常流量或者属于恶意流量。对于一个数据包样本,可以读取这个数据包样本的标签,从而识别这个数据包样本属于正常流量还是属于恶意流量。
54.本实施例中,一个数据包样本可以通过各种不同类型的数据属性去描述。
55.表1
[0056][0057]
步骤s2中,参照表1,可以使用源ip地址、源端口、通信协议、目的ip地址、目的端口、数据包长度、平均数据包长度、数据包长度方差、业务类型等数据属性,去描述每一个数据包样本。不同的数据包样本的同一数据属性可能会有不同的具体取值,例如对于数据包样本1和数据包样本3这两个数据包样本,其“源端口”这一数据属性的具体取值分别为1788和10221。
[0058]
本实施例中,在执行步骤s2,也就是设定多个不同类型的数据属性这一步骤时,具体可以执行以下步骤:
[0059]
s201.收集通信过程中的会话信息;
[0060]
s202.根据会话信息,设定多个不同类型的候选数据属性;
[0061]
s203.获取各数据包样本的候选数据属性的具体取值;
[0062]
s204.对于每一种候选数据属性,确定候选数据属性的全部具体取值的离散系数;
[0063]
s205.以具有最大的离散系数的多个候选数据属性,作为所要设定的多个数据属性。
[0064]
本实施例中,可以将恶意流量智能检测方法应用在5g通信系统中。参照图2,5g通信系统包括smf(service management function,业务管理功能)网元、upf(user plane function,用户平面功能)网元以及数据分析模块。可以由smf网元收集会话信息,并将会话信息发送至数据分析模块,由数据分析模块执行步骤s201-s205。
[0065]
本实施例中,可以从会话信息中获得源ip地址、源端口、通信协议、目的ip地址、目的端口、数据包长度、平均数据包长度、数据包长度方差、业务类型等数据属性及其具体取值。本实施例中,可以从上述多个数据属性中选取出一部分以用于步骤s3-s5中,可以将上述的源ip地址、源端口、通信协议、目的ip地址、目的端口、数据包长度、平均数据包长度、数据包长度方差、业务类型等数据属性,视为步骤s202中的候选数据属性。
[0066]
步骤s203中,参照表1,每个数据包样本都有其相应的候选数据属性的具体取值,
当存在多个数据包样本,每个候选数据属性就对应多个具体取值。例如,表1中,当存在数据包样本1、数据包样本2和数据包样本3,它们的“数据包长度”的具体取值分别为1s、2s和2s,因此“数据包长度”这一候选数据属性对应1s、2s和2s等多个具体取值。
[0067]
步骤s204中,对于每一种候选数据属性,确定候选数据属性的全部具体取值的离散系数。具体地,离散系数为一组数据的标准差与这组数据的数学期望的商。例如,表1中“数据包长度”这一候选数据属性包括1s、2s和2s等多个具体取值,其数学期望为1.67,其标准差为0.272,那么“数据包长度”这一候选数据属性的全部具体取值的离散系数为0.272/1.67=0.163。
[0068]
步骤s204中,如果一种候选数据属性的具体取值不是量化值,例如“业务类型”这种候选数据属性的具体取值包括“web业务”和“文件传输”,可以将这种候选数据属性的具体取值转换成量化值表示。
[0069]
步骤s204中计算出的离散系数,反映了一个候选数据属性的全部具体取值的离散程度,并且在不同候选数据属性的具体取值的总体水平不同的情况下,也能够将两个不同的候选数据属性的全部具体取值的离散程度进行比较。
[0070]
步骤s204中,计算出的一个候选数据属性的全部具体取值的离散系数越大,表明这个候选数据属性的全部具体取值越分散,将能够为决策树模型的建立提供更多样本信息。相反,步骤s204中,计算出的一个候选数据属性的全部具体取值的离散系数越小,表明这个候选数据属性的全部具体取值越集中,这一候选数据属性所包含的样本信息就相对较少。因此,步骤s205中,可以按照对应的离散系数的大小,对各个候选数据属性进行排序,选择出对应的离散系数最大的若干个候选数据属性,应用在步骤s3-s5中,从而实现用较少的数据属性建立决策树模型,以及使用决策树模型进行正常流量或者恶意流量的判断。
[0071]
本实施例中,可以选择数据包长度、平均数据包长度、数据包长度方差和业务类型这4种候选数据属性,作为步骤s2中设定的数据属性。
[0072]
本实施例中,在执行步骤s3,也就是根据各数据包样本的标签以及对应数据属性的取值,建立决策树模型这一步骤时,具体可以执行以下步骤:
[0073]
s301.执行根节点选定过程,选出一个数据属性作为总根节点,根据作为总根节点的数据属性的不同具体取值,形成根节点的各个分支;
[0074]
s302.对根节点的各个分支递归执行根节点选定过程,从而确定各个分支各自对应的根节点;
[0075]
s303.以总根节点以及各个分支各自对应的根节点,组成决策树模型。
[0076]
本实施例中,执行步骤s301-s303所获得的决策树模型的结构如图3所示,即图3所示的内容为执行步骤s301-s303的结果。可以结合图3,对步骤s301-s303的原理进行说明。
[0077]
图3中,各圆圈表示决策树模型中的节点,每个节点都对应一个数据属性。除了最末端的作为叶子节点的节点外,每个节点都产生了对应的分支,分支的走向与该节点对应的数据属性的取值有关,每个节点相对于其产生的分支属于根节点。
[0078]
通过执行步骤s301-s303,可以确定决策树模型中的各个节点,以及每个节点中引出的分支。
[0079]
具体地,在执行根节点选定过程时,可以先确定各数据属性所要求的信息增益,再根据各数据属性所要求的信息增益,选出具有最大的信息增益的数据属性,作为本分支对
应的根节点。
[0080]
在执行根节点选定过程时,可以先确定全部数据包样本中,属于正常流量的全部数据包样本的数量,即总正样本数量p,以及全部数据包样本中,属于恶意流量的全部数据包样本的数量,即总负样本数量n。通过公式计算出总期望信息i(p,n)。
[0081]
在执行根节点选定过程时,对于一种特定的数据属性a(其具体可以是源ip地址、源端口或者通信协议等),数据属性a的具体取值可以记为{a1,a2,a3,
…am
}(例如,参照表1,如果数据属性a是“数据包长度”,那么其具体取值包括{1s,2s}),对于数据属性a的某种具体取值ai(i∈{1,2,

,m}),确定数据属性a的具体取值为ai时对应的属于正常流量的数据包样本的数量,即分支正样本数量pi,以及确定数据属性a的具体取值为ai时对应的属于恶意流量的数据包样本的数量,即分支负样本数量ni。例如,参照表1,如果数据属性a是“数据包长度”,那么其具体取值为1s时,数据包样本1属于恶意流量,并没有对应属于正常流量的数据包样本,此时其分支正样本数量pi为0,分支负样本数量ni为1;其具体取值为2s时,数据包样本2属于正常流量,数据包样本3属于恶意流量,此时其分支正样本数量pi为1,分支负样本数量ni为1。
[0082]
本实施例中,对于数据属性a及其具体取值{a1,a2,a3,
…am
},遍历i=1,2,

,m从而获得一系列的pi和ni,并根据公式计算出i(pi,ni),根据公式计算数据属性a的分支期望信息e(a)。
[0083]
本实施例中,根据总期望信息i(p,n)与分支期望信息e(a)的差,确定数据属性a的信息增益g(a),即g(a)=i(p,n)-e(a)。
[0084]
在确定每个数据属性的信息增益之后,可以选出最大的那个信息增益对应的数据属性,作为本分支对应的根节点。
[0085]
本实施例中,参照图3,通过根节点选定过程,选定“业务类型”这一数据属性作为第一个分支对应的根节点,也就是总根节点,“业务类型”这一数据属性的具体取值包括“web传输”和“文件传输”,分别形成一个分支。对于“web传输”这一分支,则再次执行根节点选定过程,选定“数据包长度”这一数据属性作为下一个分支对应的根节点。依次可以确定各个根节点的数据属性,从而组成决策树模型。
[0086]
本实施例中,在执行步骤s4,也就是获取待检测数据包这一步骤时,可以参照图2,由upf网元收集数据面信息,并将数据面信息发送至数据分析模块,由数据分析模块从数据面信息解析出待检测数据包。
[0087]
本实施例中,在执行步骤s5,也就是根据决策树模型,确定待检测数据包属于正常流量或者属于恶意流量时,具体可以参照图3,从决策树模型的总根节点开始出发,首先判断待检测数据包的业务类型,若待检测数据包的业务类型为web传输,那么就沿着“web传输”对应的分支,进一步判断待检测数据包的数据包长度是否大于阈值1,若待检测数据包的数据包长度小于阈值1,则可以确定待检测数据包属于恶意流量,若待检测数据包的数据
包长度大于阈值1,则可以进一步判断待检测数据包的的平均数据包长度是否大于阈值3,若待检测数据包的平均数据包长度小于阈值3,则可以确定待检测数据包属于恶意流量,若待检测数据包的平均数据包长度大于阈值3,则可以确定待检测数据包属于正常流量。决策树模型中的其他分支的判断过程也同理。
[0088]
本实施例中,通过使用数据包样本建立决策树模型,能够学习数据包样本中的数据属性包含的特征信息,所得到的决策树模型具有识别待检测数据包属于恶意流量或者属于正常流量的能力,能够通过简单的判断过程,将待检测数据包分类为恶意流量或者正常流量,从而完成对恶意流量的智能快速检测。本实施例中的恶意流量智能检测方法的算法实现简单,对执行各步骤的硬件设备的性能要求低,能够应用于各种网络节点中对接收或者转发的网络流量数据包进行分析,由于对网络节点的性能耗用少,能够降低对网络节点接收或者转发的网络流量数据包的影响,保障网络节点的数据传输效率。
[0089]
本实施例中,对于执行步骤s5识别出的属于恶意流量的待检测数据包,可以进行拦截。具体地,在接收到属于恶意流量的待检测数据包之后,可以不转发属于恶意流量的待检测数据包,对属于恶意流量的待检测数据包进行数据隔离,或者删除属于恶意流量的待检测数据包。
[0090]
本实施例中,对于执行步骤s5识别出的属于恶意流量的待检测数据包,还可以执行以下步骤:
[0091]
s6.对于被确定为属于恶意流量的待检测数据包,确定待检测数据包的数据来源;
[0092]
s7.接收数据来源发出的数据包;
[0093]
s8.将数据来源发出的数据包标记为属于恶意流量;
[0094]
s9.将数据来源发出的数据包作为数据包样本,加入数据包样本集合。
[0095]
步骤s6中,对于被确定为属于恶意流量的待检测数据包,可以根据该待检测数据包的源ip地址和源端口等数据属性的具体取值,确定该待检测数据包的数据来源,即发出该待检测数据包的设备。
[0096]
步骤s7中,对于步骤s6所确定的数据来源,继续接收该数据来源发出的数据包,并在步骤s8中将接收到的数据包标记为属于恶意流量。步骤s9中,将步骤s8中标记为属于恶意流量的数据包加入数据包样本集合,作为数据包样本集合中的新的数据包样本,以扩充数据包样本集合,或者替换掉数据包样本集合中原有的部分数据包样本。
[0097]
本实施例中,执行步骤s6-s9的原理在于:若一个数据来源发出的一个数据包属于恶意流量,那么有较大的概率该数据来源是一个网络攻击源,或者被计算机病毒劫持而持续发送带有攻击性的数据包,该数据来源所发出的其他数据包有较大的概率也属于恶意流量。通过执行步骤s6-s9,将该数据来源所发出的作为数据包样本,加入数据包样本集合,可以再次执行步骤s3以对决策树模型进行重建或者更新,新的决策树模型能够学习该数据来源所发出的数据包的特征,从而实现决策树模型的恶意流量识别能力的更新。与通过人工收集数据包样本并进行标记的方式相比,步骤s6-s9能够以更高的效率获取数据包样本,容易提高数据包样本集合的规模,建立更细致的决策树模型;与通过设计专门算法生成数据包样本的方式相比,步骤s6-s9能够从实际通信过程中获取数据包样本,从而使得决策树模型能够学习到实际通信过程中的数据包所存在的特征信息,提高决策树模型识别的准确率。
[0098]
在执行步骤s8时,可以在执行完步骤s5开始的一段时间内,将步骤s6所确定的数据来源发出的数据包,直接标记为属于恶意流量,也可以对步骤s6所确定的数据来源发出的数据包进行攻击性鉴别,在确定数据来源发出的数据包属于恶意流量的情况下,再执行步骤s9。
[0099]
由于执行步骤s6-s9时所接收到的数据包都来自于特定的一个或者多个数据来源,因此这些数据包的“源ip地址”或者“源端口”等数据属性的具体取值有可能会出现大量的重复,当这些数据包被加入至数据包样本集合之后,容易导致数据包样本集合中出现“源ip地址”或者“源端口”等数据属性的具体取值出现大量的重复,如果步骤s2中所设定的多个数据属性中包括“源ip地址”或者“源端口”等数据属性,可能会在步骤s3建立决策树模型时出现过拟合等情况。因此,在执行步骤s6-s9,将接收到的数据包加入至数据包样本集合之后,再次执行步骤s2和s3以更新或者重建决策树模型时,可以在步骤s2中避免设定“源ip地址”或者“源端口”等数据属性,以降低步骤s3建立决策树模型时出现过拟合等情况的可能性。
[0100]
可以通过编写执行本实施例中的恶意流量智能检测方法的计算机程序,将该计算机程序写入至计算机装置或者存储介质中,当计算机程序被读取出来运行时,执行本实施例中的恶意流量智能检测方法,从而实现与实施例中的恶意流量智能检测方法相同的技术效果。
[0101]
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
[0102]
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
[0103]
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0104]
此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可
在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0105]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
[0106]
计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0107]
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1