1.本发明实施例涉及安全技术领域,特别涉及一种网络流量安全检测方法及装置。
背景技术:2.随着网络技术的飞速发展,越来越多的信息存储在网络流量数据中,信息安全也逐渐成为当前面临的重要问题。面对网络流量数据的攻击,需要对网络流量进行安全检测。
3.传统网络流量安全检测的方式,是基于维护的规则集对网络流量中的入侵访问进行拦截。然后,这些硬规则在灵活的网络攻击面前,很容易被绕过。因此,亟需提供一种新的网络流量检测方法,以提高网络流量安全检测的准确性。
技术实现要素:4.本发明实施例提供了一种网络流量安全检测方法及装置,能够提高网络流量安全检测的准确性。
5.第一方面,本发明实施例提供了一种网络流量安全检测方法,包括:
6.获取网络流量数据的第一训练样本集;所述第一训练样本集中包括若干个正样本和若干个负样本;
7.针对每一个样本对应的网络流量数据,均执行:
8.将该网络流量数据分割为若干个会话流数据,其中,每一个会话流数据为一个完整的会话;
9.按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为所述预设字节数;
10.将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态;
11.将得到的每一个图片作为第二训练样本集,并利用所述第二训练样本集训练神经网络,得到网络流量安全检测模型;
12.利用所述网络流量安全检测模型对待检测网络流量数据进行安全检测。
13.在一种可能的实现方式中,所述将该网络流量数据分割为若干个会话流数据,包括:
14.将该网络流量数据切分为流数据,并将切分后的流数据按照五元组信息进行分组,并将每一个分组中的流数据按照时间进行排序;
15.对每一个分组中排序后的流数据进行遍历,每遍历到当前流数据,则判断该当前流数据是否为另一个会话的开始,若是,则将当前流数据与上一条流数据分割为不同的会话流数据。
16.在一种可能的实现方式中,所述判断该当前流数据是否为另一个会话的开始,包括:
17.判断该当前流数据与上一条流数据的主机对是否相同,若不相同,则表明该当前流数据是另一个会话的开始。
18.在一种可能的实现方式中,还包括:
19.若判断该当前流数据与上一条流数据的主机对相同,则进一步判断该当前流数据与该上一条流数据之间是否包括syn标志位,若包括syn标志位,则表明该当前流数据是另一个会话的开始。
20.在一种可能的实现方式中,所述预设特征提取策略包括:从会话流数据中的应用层提取出数据特征,和/或,从会话流数据中的所有层提取出数据特征。
21.在一种可能的实现方式中,所述从每一个会话流数据中提取出数据特征,包括:
22.若会话流数据的字节数小于所述预设字节数,则对该会话流数据进行补零处理,得到所占字节数为所述预设字节数的数据特征;
23.若会话流数据的字节数大于所述预设字节数,则从该会话流数据中随机提取所占字节数为所述预设字节数的数据特征,且提取次数为预设次数。
24.在一种可能的实现方式中,所述预设字节数包括至少两个不同的字节数;所述第二训练样本集的数量为至少两个,且至少两个所述第二训练样本集与至少两个不同的字节数一一对应;
25.所述利用所述第二训练样本集训练神经网络,包括:利用至少两个所述第二训练样本集依次对所述神经网络进行训练。
26.第二方面,本发明实施例还提供了一种网络流量安全检测装置,包括:
27.获取单元,用于获取网络流量数据的第一训练样本集;所述第一训练样本集中包括若干个正样本和若干个负样本;
28.样本处理单元,用于针对每一个样本对应的网络流量数据,均执行:将该网络流量数据分割为若干个会话流数据,其中,每一个会话流数据为一个完整的会话;按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为所述预设字节数;将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态;
29.模型训练单元,用于将得到的每一个图片作为第二训练样本集,并利用所述第二训练样本集训练神经网络,得到网络流量安全检测模型;
30.检测单元,用于利用所述网络流量安全检测模型对待检测网络流量数据进行安全检测。
31.第三方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。
32.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
33.本发明实施例提供了一种网络流量安全检测方法及装置,一个完整的会话流数据中包含有真实且完整的数据特征,通过将用于训练网络流量安全检测模型的样本对应的网络流量数据分给为会话流数据,以每一个完整的会话流数据作为一个整体进行数据特征提取,以降提取的数据特征转换为图片,实现对网络流量安全检测模型的训练,使得训练得到的网络流量安全检测模型能够基于会话流数据中的真实完整的数据特征对模型参数进行
调整,能够不依据硬规则实现对待检测网络流量数据的数据特征进行检测和预测,提高网络流量安全检测的准确性。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1是本发明一实施例提供的一种网络流量安全检测方法流程图;
36.图2是本发明一实施例提供的一种电子设备的硬件架构图;
37.图3是本发明一实施例提供的一种网络流量安全检测装置结构图。
具体实施方式
38.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.如前所述,由于维护的规则集是基于先验知识提取出来的,因此,规则及属于硬规则,匹配到则确定网络流量是异常的,未匹配到则确定网络流量是正常的。这些硬规则很容易被绕过,难以应对0day(zero day,破解)攻击。
40.为解决上述问题,本发明的发明构思在于:提供一种新的网络流量安全检测方法,不采用这些硬规则对网络流量进行安全检测,而是通过收集网络流量数据的样本以进行安全检测模型的训练,利用训练好的安全检测模型对网络流量进行安全检测。
41.下面描述以上构思的具体实现方式。
42.请参考图1,本发明实施例提供了一种网络流量安全检测方法,该方法包括:
43.步骤100,获取网络流量数据的第一训练样本集;所述第一训练样本集中包括若干个正样本和若干个负样本;
44.步骤102,针对每一个样本对应的网络流量数据,均执行:将该网络流量数据分割为若干个会话流数据,其中,每一个会话流数据为一个完整的会话;按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为所述预设字节数;将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态;
45.步骤104,将得到的每一个图片作为第二训练样本集,并利用所述第二训练样本集训练神经网络,得到网络流量安全检测模型;
46.步骤106,利用所述网络流量安全检测模型对待检测网络流量数据进行安全检测。
47.本发明实施例中,一个完整的会话流数据中包含有真实且完整的数据特征,通过将用于训练网络流量安全检测模型的样本对应的网络流量数据分给为会话流数据,以每一个完整的会话流数据作为一个整体进行数据特征提取,以降提取的数据特征转换为图片,实现对网络流量安全检测模型的训练,使得训练得到的网络流量安全检测模型能够基于会话流数据中的真实完整的数据特征对模型参数进行调整,能够不依据硬规则实现对待检测
网络流量数据的数据特征进行检测和预测,提高网络流量安全检测的准确性。
48.下面描述图1所示的各个步骤的执行方式。
49.首先,针对步骤100,获取网络流量数据的第一训练样本集;所述第一训练样本集中包括若干个正样本和若干个负样本。
50.本发明实施例中,正样本为正常的网络流量数据,负样本为异常的网络流量数据。
51.样本的获取可以联动外部网络流量数据库,以提取出正样本和负样本形成第一训练样本集。
52.然后,针对步骤102,针对每一个样本对应的网络流量数据,均执行:将该网络流量数据分割为若干个会话流数据,其中,每一个会话流数据为一个完整的会话;按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为所述预设字节数;将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态。
53.本发明实施例中,正样本对应的正常网络流量数据的处理方式与负样本对应的异常网络流量数据的处理方式均相同。
54.下面以其中一个样本对应的网络流量数据为例,对该网络流量数据的处理方式进行说明,其它样本的网络流量数据的处理方式与本实施例相同。
55.本发明实施例中,对网络流量数据的处理方式包括如下步骤a1~a3:
56.a1、将该网络流量数据分割为若干个会话流数据,其中,每一个会话流数据为一个完整的会话。
57.原始的网络流量数据均是基于流量采集交换机镜像端口捕获得到的,捕获的pcap包的切分方式至少可以包括五种:tcp连接、流、会话、服务和主机。相同的原始网络流量数据按照不同依据切分后的数据集的表示形式有很大不同,根据需要选取一种适合的切分方法。
58.在本发明一个实施例中,考虑到病毒一般体现在流数据中,网络流量数据进行分割时,将其分割为流数据,而会话数据是双向流数据组成的数据包,因此,可以将网络流量数据分给为会话流数据进行数据特征的提取,以进行模型训练。
59.在本发明一个实施例中,本步骤a1可以包括:
60.a11、将该网络流量数据切分为流数据,并将切分后的流数据按照五元组信息进行分组,并将每一个分组中的流数据按照时间进行排序;
61.网络流量数据为集合p,集合p中包括所有包,每一个包表示为pi;那么可以得到如下表现形式:
62.p={p1,...,p
p|
}
63.pi=(xi,bi,ti)
64.i=1,2,...,|p|,bi∈[0,∞),ti∈[0,∞)
[0065]
其中,每一个包pi中的元素x、b和t分别表示为包的五元组信息、以字节计数的包长度、包开始发送时间。
[0066]
流数据是按照五元组信息将集合p划分为多个子集合,每个子集合内的包按照时间顺序排列,将其称为一个流f
μ
[0067]
p={p1=(x1,b1,t1),...pn=(xn,bn,tn)}
[0068]
t1《t2《...《tn[0069]f→
(x,b,d,t)
[0070]
其中,f
μ
中的元素x为相同的五元组,即x=x1...xn,元素b为子集合内所有包长度之和元素d为所有包的持续长度d1=f
n-t1,元素t为首个包的开始时间t=t1。整个网络流量数据即可转换为流f={f1...fn}。
[0071]
会话流数据的形式与流数据基本相同,区别在于会话流数据的五元组中的源和地址可互换,会话又被称为双向流。
[0072]
a12、对每一个分组中排序后的流数据进行遍历,每遍历到当前流数据,则判断该当前流数据是否为另一个会话的开始,若是,则将当前流数据与上一条流数据分割为不同的会话流数据。
[0073]
一般情况下,在分割相邻两个流数据是否属于同一个会话流数据时,可以依据该两个流数据的时间差是否大于设定阈值来分辨,也可以通过fin标志位来实现分割。但是若检测到fin标志位为1时认为是会话结束,会存在一些问题。首先抓包经常会抓到一些深色的带有bad tcp标志的包,这些包是因为没收到确认重发,或者是顺序混乱等问题导致的。因此有可能会在一次会话中遇到多于两个带有fin标志位的包。另外tcp连接的四次挥手过程中,一共会有两个包带有fin标志位。所以以fin标志位为标准判断会话结束是不合理的。
[0074]
本发明一个实施例中,通过如下方式判断该当前流数据是否为另一个会话的开始:判断该当前流数据与上一条流数据的主机对是否相同,若不相同,则表明该当前流数据是另一个会话的开始。
[0075]
主机对是由服务器和客户端组成的,若一个流数据是由服务器发送至客户端的,另一个流数据是由该客户端发送给该服务器的,则这两个流数据的主机对相同。若相邻两个流数据的主机对不同,则表明上一个流数据是会话的结束,当前流数据是另一个会话的开始,能够准确判定不同的会话,保证分割后的会话流数据是一个完整的会话。
[0076]
进一步地,还包括:若判断该当前流数据与上一条流数据的主机对相同,则进一步判断该当前流数据与该上一条流数据之间是否包括syn标志位,若包括syn标志位,则表明该当前流数据是另一个会话的开始。
[0077]
由于相同主机对之间可能存在多次tcp会话,而每一次tcp会话也是一个完整的会话,因此通过syn标志位分别相同主机对之间的多次tcp会话,进而进行分割,使得分割后的会话流数据能够完整表征该次tcp会话的数据特征,不受下一次tcp会话中数据特征的影响,进一步可以提高所训练模型的准确性。
[0078]
a2、按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为所述预设字节数。
[0079]
对于一个会话流数据,从协议层次分析,流量特征主要体现在应用层,即osi模型的第七层。例如,stmp协议代表邮件流量,http代表浏览器流量。直观上讲流量表示形式应该只选择应用层。但是,其它协议层的信息有时也反应流量特征,例如,传输层端口信息能标识大多数使用标准端口应用,传输层的各种标志位有时也反映syn攻击、rst攻击特征。
[0080]
本发明一个实施例中,可以使用三种协议层的选择形式作为特征提取策略,第一种是在所有层数据(all-layers,以下简称all)中提取数据特征;第二种是在应用层数据
(l7)中提取数据特征;第三种是在所有层数据进行数据特征的提取后,还要再应用层数据中提取数据特征。
[0081]
进一步地,在all数据中提取数据特征时,各网络流量数据特有的ip地址和mac地址等信息可能会影响特征提取,为消除这些因素影响,需对网络流量数据的特有信息进行随机化处理,以实现流量清洗或匿名化。
[0082]
具体地,本步骤a2中从每一个会话流数据中提取出数据特征的方式包括:
[0083]
若会话流数据的字节数小于所述预设字节数,则对该会话流数据进行补零处理,得到所占字节数为所述预设字节数的数据特征;
[0084]
若会话流数据的字节数大于所述预设字节数,则从该会话流数据中随机提取所占字节数为所述预设字节数的数据特征,且提取次数为预设次数。
[0085]
以预设字节数为784字节为例,对数据特征的提取进行说明。
[0086]
若会话流数据的字节数小于784,则在该会话流数据之前或该会话流数据之后连续补零,使得补零后的会话流数据所占字节数为该预设字节数。
[0087]
若会话流数据的字节数等于784,则直接将该会话流数据作为数据特征。
[0088]
若会话流数据的字节数大于784,则从该会话流数据中进行预设次数的数据特征提取,每一次进行数据特征提取时均是随机确定提取位置,以提取出于预设次数相同数量的数据特征。
[0089]
可见,当会话流数据的字节数大于预设字节数时,由于一个会话流数据可以得到与预设次数相同数量的数据特征,从而可以丰富训练样本的数量。
[0090]
a3、将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态。
[0091]
若转换为该图片的数据特征所对应的网络数据流量是正样本,则为该图片标注正样本状态;若转换为该图片的数据特征所对应的网络数据流量是负样本,则为该图片标注负样本状态。
[0092]
步骤104,将得到的每一个图片作为第二训练样本集,并利用所述第二训练样本集训练神经网络,得到网络流量安全检测模型;
[0093]
根据步骤102中可知,会话流数据的字节数大于预设字节数时,可以提取出与预设次数相同数量的数据特征,那么针对该会话流数据可以得到与预设次数相同数量的图片,由此可见,第二训练样本集中的图片数量多于第一训练样本集中网络数据流量分割为会话流数据的数量。
[0094]
进一步地,由于在进行网络流量安全检测模型的训练时,为了减少图片尺寸对网络流量数据特征的影响,向神经网络输入的图片尺寸相等,因此,该预设字节数为一个固定值,比如为784字节,转换后的图片尺寸为28*28。
[0095]
更进一步地,为了能够保证网络流量安全检测模型对待检测网络流量数据进行检测时,不受网络流量数据大小的影响,该预设字节数包括至少两个不同的字节数;所述第二训练样本集的数量为至少两个,且至少两个所述第二训练样本集与至少两个不同的字节数一一对应。
[0096]
具体地,在步骤102中的a2步骤,需要针对同一个会话流数据按照不同字节数分别进行数据特征的提取,使得提取后的数据特征转换的图片尺寸分别对应不同尺寸。比如,预设字节数包括的至少两个不同的字节数在转换为图片时的尺寸分别为:28*28、56*56、112*
112。那么需要针对同一个会话流数据按照三个不同字节数分别进行数据特征的提取,使得提取后的数据特征转换为的图片尺寸分别为28*28、56*56、112*112。
[0097]
为了保证利用第二训练样本集对网络流量安全检测模型进行训练后训练结果的准确性,该第二训练样本集的数量为至少两个,且至少两个所述第二训练样本集与至少两个不同的字节数一一对应,即尺寸为28*28的图片形成一个第二训练样本集,尺寸为56*56的图片形成一个第二训练样本集,尺寸为112*112的图片形成一个第二训练样本集。
[0098]
在利用第二训练样本集训练神经网络时,具体包括:利用至少两个所述第二训练样本集依次对所述神经网络进行训练。
[0099]
比如,先使用尺寸为28*28的图片形成的第二训练样本集对神经网络进行训练,得到训练后神经网络的模型参数,然后使用尺寸为56*56的图片形成的第二训练样本集对神经网络进一步训练,以调整模型参数,最后使用尺寸为112*112的图片形成的第二训练样本集对神经网络进一步训练,以调整模型参数。
[0100]
如此,训练完成的网络流量安全检测模型可以不受待检测网络流量数据大小的影响,可以提高检测结果的准确性。
[0101]
在本发明一个实施例中,用于训练网络流量安全检测模型的神经网络是cnn网络。那么在训练cnn网络时,可以将图片进一步转换为idx文件,以将转换后的idx文件输入至cnn网络中对cnn网络进行训练。
[0102]
mnist数据集使用了一种独创的数据格式用来存储多维数组。这种数据格式就叫idx,如果数组是3个维度,就叫id3,如果数组是1个维度,就叫id1。开头2个字节,表示该格式的版本号(一直是0x0000)。接下来1个字节表示数组中每个元素的数据类型(所以最多表示256种数据类型),相当于a.dtype。再接下来1个字节表示数组的维度(所以数组最多有256维),相当于len(a.shape)然后接下来的若干个int类型(4个字节)的数据表示各个维度的长度,相当于a.shape最后是数据部分,数据部分的数据类型前面已经知道了,所以每个元素所占字节数确定了,最后如果元素个数符合维度特征,表明解析正确,否则说明文件损坏。其中dtype字节的表示为:
[0103]
0x08:unsigned byte
[0104]
0x09:signed byte
[0105]
0x0b:short(2 bytes)
[0106]
0x0c:int(4 bytes)
[0107]
0x0d:float(4 bytes)
[0108]
0x0e:double(8 bytes)
[0109]
可见,由于idx文件中包括了多个维度的数据,其数据特征的表征对应多个维度,因此在将图片转换为idx文件之后对cnn网络进行训练,可以使得cnn网络能够在多个维度上进行数据特征的学习,进而使得训练后的cnn在进行检测时更加准确。
[0110]
另外,在构建神经网络的模型时,该模型包括输入层、隐藏层(卷积层和池化层)和输出层。其中,各层计算公式及工作原理如下:
[0111]
一、卷积层计算公式
[0112]
1、卷积层输入特征图(input feature map)的尺寸为:h(input)
×
w(input)
×
c(input)
[0113]
h(input)表示输入特征图的高
[0114]
w(input)表示输入特征图的宽
[0115]
c(input)表示输入特征图的通道数(如果是第一个卷积层则是输入图像的通道数,如果是中间的卷积层则是上一层的输出通道数
[0116]
2、卷积层的参数有如下几个
[0117]
输出通道数为k
[0118]
正方形卷积核的边长为f
[0119]
步幅(stride)为s
[0120]
补零的行数和列数(padding)为p
[0121]
3、输出特征图(output feature map)的尺寸为h(input)
×
w(input)
×
c(input),其中每一个变量的计算方式如下:
[0122]
h(output)=(h(input)-f+2p)/s+1
[0123]
w(output)=(winput-f+2p)/s+1
[0124]
c(output)=k
[0125]
4、参数量大小的计算,分为weights和biases:
[0126]
首先来计算weights的参数量:f
×f×
c(input)
×
k,接着计算biases的参数量:k
[0127]
所以总参数量为:f
×f×
c(input)
×
k+k。
[0128]
二、池化层计算公式
[0129]
设置h=height,w=width,d=depth,输入维度是4
×4×
5(h
×w×
d),滤波器大小2
×
2(h
×
w),stride的高和宽都是2(s),新的高和宽的公式是:
[0130]
new_height=(input_height-filter_height)/s+1
[0131]
new_width=(input_width-filter_width)/s+1
[0132]
注意:池化层的输出深度与输入的深度相同。另外池化操作是分别应用到每一个深度切片层。
[0133]
三、全连接层计算公式
[0134]
zj=wj·
x+bj=w
j1
x1+w
j2
x2+
…
+w
jn
xn+bj[0135]
w代表的是权重矩阵,bias是偏置,x是来自全连接层的输入,z为k为的列向量。
[0136]
四、softmax计算公式
[0137][0138]
其中,z是上一层的输出,softmax的输入,维度为c,yi为预测对象属于第c类的概率。
[0139]
在模型训练过程中,cnn网络训练核心原理主要分为三个阶段,前向传播、反向传播与更新权重:
[0140]
前向传播:从前往后,逐层计算,目的:得到损失值。
[0141]
反向传播:从后往前,逐层求导,可以得到前一项的权重,目的:为了让损失函数的值最小。
[0142]
更新权重:根据前向传播得到的损失值优化权重参数。
[0143]
在数据推理过程中,测试集达到97%,项目环境达到93.6%。
[0144]
步骤106,利用所述网络流量安全检测模型对待检测网络流量数据进行安全检测。
[0145]
在对待检测网络流量数据进行安全检测时,可以将待检测网络流量数据转换为图片输入至网络流量安全检测模型中。
[0146]
为了进一步提高待检测网络流量数据的检测准确性,可以在对待检测网络流量数据转换为图片之前,从待检测网络流量数据中提取预设字节数的数据特征,然后将该数据特征转换为图片,如此转换为的图片尺寸与网络流量安全检测模型在训练时使用的图片尺寸相同,从而可以提高检测准确性。
[0147]
如图2、图3所示,本发明实施例提供了一种网络流量安全检测装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图2所示,为本发明实施例提供的一种网络流量安全检测装置所在电子设备的一种硬件架构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图3所示,作为一个逻辑意义上的装置,是通过其所在电子设备的cpu将非易失性存储器中对应的计算机程序读取到内存中运行形成的。本实施例提供的一种网络流量安全检测装置,包括:
[0148]
获取单元301,用于获取网络流量数据的第一训练样本集;所述第一训练样本集中包括若干个正样本和若干个负样本;
[0149]
样本处理单元302,用于针对每一个样本对应的网络流量数据,均执行:将该网络流量数据分割为若干个会话流数据,其中,每一个会话流数据为一个完整的会话;按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为所述预设字节数;将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态;
[0150]
模型训练单元303,用于将得到的每一个图片作为第二训练样本集,并利用所述第二训练样本集训练神经网络,得到网络流量安全检测模型;
[0151]
检测单元304,用于利用所述网络流量安全检测模型对待检测网络流量数据进行安全检测。
[0152]
在本发明一个实施例中,所述样本处理单元在将该网络流量数据分割为若干个会话流数据时,具体用于:将该网络流量数据切分为流数据,并将切分后的流数据按照五元组信息进行分组,并将每一个分组中的流数据按照时间进行排序;对每一个分组中排序后的流数据进行遍历,每遍历到当前流数据,则判断该当前流数据是否为另一个会话的开始,若是,则将当前流数据与上一条流数据分割为不同的会话流数据。
[0153]
在本发明一个实施例中,所述样本处理单元在判断该当前流数据是否为另一个会话的开始时,具体用于:判断该当前流数据与上一条流数据的主机对是否相同,若不相同,则表明该当前流数据是另一个会话的开始。
[0154]
在本发明一个实施例中,所述样本处理单元还用于若判断该当前流数据与上一条流数据的主机对相同,则进一步判断该当前流数据与该上一条流数据之间是否包括syn标志位,若包括syn标志位,则表明该当前流数据是另一个会话的开始。
[0155]
在本发明一个实施例中,所述预设特征提取策略包括:从会话流数据中的应用层
提取出数据特征,和/或,从会话流数据中的所有层提取出数据特征。
[0156]
在本发明一个实施例中,所述样本处理单元在从每一个会话流数据中提取出数据特征时,具体用于:若会话流数据的字节数小于所述预设字节数,则对该会话流数据进行补零处理,得到所占字节数为所述预设字节数的数据特征;若会话流数据的字节数大于所述预设字节数,则从该会话流数据中随机提取所占字节数为所述预设字节数的数据特征,且提取次数为预设次数。
[0157]
在本发明一个实施例中,所述预设字节数包括至少两个不同的字节数;所述第二训练样本集的数量为至少两个,且至少两个所述第二训练样本集与至少两个不同的字节数一一对应;
[0158]
所述模型训练单元具体用于利用至少两个所述第二训练样本集依次对所述神经网络进行训练。
[0159]
可以理解的是,本发明实施例示意的结构并不构成对一种网络流量安全检测装置的具体限定。在本发明的另一些实施例中,一种网络流量安全检测装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
[0160]
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0161]
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种网络流量安全检测方法。
[0162]
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种网络流量安全检测方法。
[0163]
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
[0164]
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
[0165]
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
[0166]
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
[0167]
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
[0168]
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体
或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0169]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。
[0170]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:1.一种网络流量安全检测方法,其特征在于,包括:获取网络流量数据的第一训练样本集;所述第一训练样本集中包括若干个正样本和若干个负样本;针对每一个样本对应的网络流量数据,均执行:将该网络流量数据分割为若干个会话流数据,其中,每一个会话流数据为一个完整的会话;按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为所述预设字节数;将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态;将得到的每一个图片作为第二训练样本集,并利用所述第二训练样本集训练神经网络,得到网络流量安全检测模型;利用所述网络流量安全检测模型对待检测网络流量数据进行安全检测。2.根据权利要求1所述的方法,其特征在于,所述将该网络流量数据分割为若干个会话流数据,包括:将该网络流量数据切分为流数据,并将切分后的流数据按照五元组信息进行分组,并将每一个分组中的流数据按照时间进行排序;对每一个分组中排序后的流数据进行遍历,每遍历到当前流数据,则判断该当前流数据是否为另一个会话的开始,若是,则将当前流数据与上一条流数据分割为不同的会话流数据。3.根据权利要求2所述的方法,其特征在于,所述判断该当前流数据是否为另一个会话的开始,包括:判断该当前流数据与上一条流数据的主机对是否相同,若不相同,则表明该当前流数据是另一个会话的开始。4.根据权利要求3所述的方法,其特征在于,还包括:若判断该当前流数据与上一条流数据的主机对相同,则进一步判断该当前流数据与该上一条流数据之间是否包括syn标志位,若包括syn标志位,则表明该当前流数据是另一个会话的开始。5.根据权利要求1所述的方法,其特征在于,所述预设特征提取策略包括:从会话流数据中的应用层提取出数据特征,和/或,从会话流数据中的所有层提取出数据特征。6.根据权利要求5所述的方法,其特征在于,所述从每一个会话流数据中提取出数据特征,包括:若会话流数据的字节数小于所述预设字节数,则对该会话流数据进行补零处理,得到所占字节数为所述预设字节数的数据特征;若会话流数据的字节数大于所述预设字节数,则从该会话流数据中随机提取所占字节数为所述预设字节数的数据特征,且提取次数为预设次数。7.根据权利要求1-6中任一所述的方法,其特征在于,所述预设字节数包括至少两个不同的字节数;所述第二训练样本集的数量为至少两个,且至少两个所述第二训练样本集与至少两个不同的字节数一一对应;所述利用所述第二训练样本集训练神经网络,包括:利用至少两个所述第二训练样本
集依次对所述神经网络进行训练。8.一种网络流量安全检测装置,其特征在于,包括:获取单元,用于获取网络流量数据的第一训练样本集;所述第一训练样本集中包括若干个正样本和若干个负样本;样本处理单元,用于针对每一个样本对应的网络流量数据,均执行:将该网络流量数据分割为若干个会话流数据,其中,每一个会话流数据为一个完整的会话;按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为所述预设字节数;将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态;模型训练单元,用于将得到的每一个图片作为第二训练样本集,并利用所述第二训练样本集训练神经网络,得到网络流量安全检测模型;检测单元,用于利用所述网络流量安全检测模型对待检测网络流量数据进行安全检测。9.一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7中任一项所述的方法。10.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。
技术总结本发明提供了一种网络流量安全检测方法及装置,方法包括:获取网络流量数据的第一训练样本集;针对每一个样本对应的网络流量数据,均执行:将该网络流量数据分割为若干个会话流数据,每一个会话流数据为一个完整的会话;按照预设特征提取策略从每一个会话流数据中提取出数据特征,使得提取出的数据特征所占字节数为预设字节数;将提取出的每一个数据特征分别转换为图片,并为图片标注对应的正负状态;将得到的每一个图片作为第二训练样本集,并利用第二训练样本集训练神经网络,得到网络流量安全检测模型;利用网络流量安全检测模型对待检测网络流量数据进行安全检测。本方案,能够提高网络流量安全检测的准确性。能够提高网络流量安全检测的准确性。能够提高网络流量安全检测的准确性。
技术研发人员:孙俊虎 闫印强
受保护的技术使用者:长扬科技(北京)股份有限公司
技术研发日:2022.07.22
技术公布日:2022/11/1