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

基于多模态深度学习的加密恶意流量检测方法及系统与流程

2021-10-24 03:55:00 来源:中国专利 TAG:网络安全 加密 深度 检测方法 恶意


1.本发明涉及计算机网络安全技术领域,更具体地,涉及一种基于多模态深度学习的加密恶意流量检测方法及系统。


背景技术:

2.恶意流量是攻击者设计并编写的恶意软件在运行过程中产生的通信流量。由于恶意软件可以造成许多不同类型的损害,比如窃取个人信息、夺取宿主计算机控制权等,所以在复杂的网络环境中及时检测出恶意流量成为网络空间安全中一项十分重要的挑战。由于加密流量在握手协商阶段采用明文数据包通信,并且协商过程中包含大量涉及加密通信的参数,比如客户端提供的加密套件、加密通信采用的加密算法等标志,研究者对于握手阶段产生的明文信息进行数据挖掘,发现对于恶意软件所产生的加密恶意流量,在ssl/tls握手阶段的特征与正常用户上网产生的加密流量具有显著的区分度。原因是恶意软件在通过ssl/tls加密套件对通信内容实施加密时,通常不倾向于和正常用户一样采用较新和较安全的加密套件,因为恶意软件加密通信流量的目的主要在于防止防火墙对明文内容进行恶意软件指纹的匹配,而不是防止第三方的黑客攻击。
3.针对这一点,许多研究者设计了包含ssl/tls握手特征在内的加密流量特征,再利用逻辑回归、随机森林或svm等机器学习模型实施加密恶意流量的检测。然而这种方法需要特定领域专家人为的精心设计加密流量特征,存在工作复杂而且效率低下的问题。另有研究者提出基于深度学习网络的恶意加密流量识别,将加密流量作为输入,然后通过使用端到端的深度学习网络模型提取加密流量特征并识别恶意加密流量,比如采用cnn网络、lstm网络等,在加密恶意流量检测任务中有良好的表现。但是在加密恶意流量识别方法的设计或加密恶意流量识别系统的构造的设计上,通常没有针对加密流量中不同模态的输入数据设计更为适配的网络模型,无法提取可以反应加密流量整体多方面的特征。


技术实现要素:

4.本发明为克服上述现有技术所述的需要设计特定加密流量特征,且单一深度学习模型无法提取能够反应加密流量整体多方面特征的缺陷,提供一种基于多模态深度学习的加密恶意流量检测方法,以及一种基于多模态深度学习的加密恶意流量检测系统。
5.为解决上述技术问题,本发明的技术方案如下:
6.一种基于多模态深度学习的加密恶意流量检测方法,包括以下步骤:
7.对加密流量数据进行数据分割,得到加密流量数据的握手阶段数据包、数据包长度序列和数据包到达的时间间隔序列;
8.从加密流量数据的握手阶段数据包中提取握手信息特征向量;
9.从加密流量数据的数据包长度序列中提取包长信息序列特征向量;
10.从加密流量数据的数据包到达的时间间隔序列中提取包到达信息序列特征向量;
11.将所述握手信息特征向量、包长信息序列特征向量、包到达信息序列特征向量进
行拼接融合,得到多模态特征向量,将所述多模态特征向量输入深度学习网络模型中,得到加密流量数据的分类结果;所述分类结果包括加密恶意流量所属恶意软件家族类别和非加密恶意流量。
12.本技术方案中,对加密流量数据中的握手信息特征向量、包长信息序列特征向量、包到达信息序列特征向量进行提取后,拼接融合得到多模态特征向量。其中,握手信息包括客户端与服务器在ssl/tls握手阶段传输的大量有关加密信息的数据,例如客户端提供的加密套件、服务端选择的加密套件、服务器证书等;包长信息序列为通信过程中加密流量每个数据包的长度信息组成的数字序列,能够反应出通信内容在长度上的分布偏好,属于加密流量在空间维度上的信息;包到达信息序列为通信过程中加密流量每个数据包的到达间隔时间组成的数字序列,能够反应出通信数据包生成和发送速度上的信息,属于加密流量在时间维度上的信息。通过对上述特征向量进行提取、拼接融合后得到多模态特征向量,再通过深度学习网络模型进行恶意加密流量的分类判决,输出得到加密流量数据的加密恶意流量所属恶意软件家族类别,或非加密恶意流量等分类结果。
13.作为优选方案,从加密流量数据中提取加密流量数据的握手阶段数据包的步骤包括:提取加密流量数据ssl/tls层握手阶段报文作为握手阶段数据包;
14.从加密流量数据中提取加密流的数据包长度序列的步骤包括:对加密流数据包实施字节统计得到包长信息,组成数据包长度序列,或对加密流数据包tcp包头标志位中提取包长信息,组成数据包长度序列;
15.从加密流量数据中提取数据包到达的时间间隔序列的步骤包括:通过加密流量数据中数据包的包到达时间计算得到包到达时间间隔元素,组成包到达的时间间隔序列,或采用流量分析工具获得。
16.作为优选方案,所述ssl/tls层握手阶段报文包括clienthello报文、serverhello报文和certificate报文。
17.作为优选方案,从加密流量数据的握手阶段数据包中提取握手信息特征的步骤包括:
18.对握手阶段数据包原始流量的字节数目进行统计,对字节数超过n比特的报文进行截断,对长度小于n字节的报文在其末尾以0x00补齐,然后将整形处理后的报文中各个字节解释为0

255的整数,得到定长数字序列;
19.将所述定长数字序列输入嵌入层得到数字二维矩阵,其中每个数字映射为数字二维矩阵中的一行;
20.将所述定长数字序列的数字二维矩阵输入cnn模型中,cnn模型输出握手信息特征向量。
21.作为优选方案,所述cnn模型包括依次连接的若干卷积层,以及最大池化层和全连接层,且所述一维cnn模型采用残差网络结构。
22.作为优选方案,从加密流量数据的数据包长度序列中提取包长信息序列特征的步骤包括:
23.将所述数据包长度序列进行截断和添加数字0操作,得到固定序列长度的数据包长度序列,然后将其输入嵌入层中得到相应的数字二维矩阵,其中每个数字映射为数字二维矩阵中的一行;
24.将所述数据包长度序列的数字二维矩阵输入双向gru模型中,双向gru模型输出包长信息序列特征向量。
25.作为优选方案,从加密流量数据的数据包到达的时间间隔序列中提取包到达信息序列特征的步骤包括:
26.将所述加密流量数据的数据包到达的时间间隔序列进行截断和添加数字0操作,得到固定序列长度的数据包到达时间间隔序列,然后将其输入嵌入层中得到相应的数字二维矩阵,其中每个数字映射为数字二维矩阵中的一行;
27.将所述数据包到达时间间隔序列的数字二维矩阵输入双向gru模型中,双向gru模型输出包到达信息序列特征向量。
28.作为优选方案,所述双向gru模型包括依次连接的循环神经网络层、attention层和全连接层,所述循环神经网络层包括多层gru、双向gru、多层lstm、双向lstm、rnn或双向rnn网络中的一种。
29.作为优选方案,所述方法还包括对所述深度学习网络模型进行预训练,其步骤包括:
30.采用随机数初始化所述深度学习网络模型中所有参数;
31.获取带实际标签的加密流量数据作为训练数据,对其执行数据分割以及特征向量提取,得到握手信息特征向量、包长信息序列特征向量、包到达信息序列特征向量,然后将其拼接融合后输入所述深度学习网络模型中,得到表征加密恶意流量所属恶意软件家族类别或非加密恶意流量的分类向量;所述加密流量数据的实际标签包括加密恶意流量所属恶意软件家族类别和非加密恶意流量;
32.计算所述分类向量与对应加密流量数据的实际标签的交叉熵误差;
33.通过反向传播算法计算误差相对于所有权重的梯度,通过梯度下降算法更新所有的参数,使输出与实际标签误差最小;
34.保存深度学习网络模型的模型结构、训练配置、优化器状态和模型参数。
35.本发明还提出了一种基于多模态深度学习的加密恶意流量检测系统,应用于上述任一技术方案提出的基于多模态深度学习的加密恶意流量检测方法。其包括:
36.数据分割模块,用于对加密流量数据进行数据分割,得到加密流量数据的握手阶段数据包、数据包长度序列和数据包到达的时间间隔序列,然后分别传输至握手特征提取模块、包长信息序列特征提取模块和包到达信息序列特征提取模块;
37.握手特征提取模块,用于通过cnn模型从加密流量数据的握手阶段数据包中提取握手信息特征向量,然后传输至多模态特征融合分类模块;
38.包长信息序列特征提取模块,用于通过双向gru模型从加密流量数据的数据包长度序列中提取包长信息序列特征向量,然后传输至多模态特征融合分类模块;
39.包到达信息序列特征提取模块,用于通过双向gru模型从加密流量数据的数据包到达的时间间隔序列中提取包到达信息序列特征向量,然后传输至多模态特征融合分类模块;
40.多模态特征融合分类模块,用于将所述握手信息特征向量、包长信息序列特征向量、包到达信息序列特征向量进行拼接融合,得到多模态特征向量,将所述多模态特征向量输入深度学习网络模型中,输出得到加密流量数据的分类结果;所述分类结果包括加密恶
意流量所属恶意软件家族类别和非加密恶意流量。
41.与现有技术相比,本发明技术方案的有益效果是:本发明融合了三种加密流量中存在的信息模态,并对不同的模态设计针对性的特征提取深度学习网络,能够得到更精确反应加密流量综合整体特点的特征向量,从而进一步提高加密恶意流量的识别精度。
附图说明
42.图1为实施例1的基于多模态深度学习的加密恶意流量检测方法的流程图。
43.图2为实施例1的cnn模型的结构示意图。
44.图3为实施例1的双向gru模型的结构示意图。
45.图4为实施例2的基于多模态深度学习的加密恶意流量检测系统的原理图。
具体实施方式
46.附图仅用于示例性说明,不能理解为对本专利的限制;
47.为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
48.对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
49.下面结合附图和实施例对本发明的技术方案做进一步的说明。
50.实施例1
51.本实施例提出一种基于多模态深度学习的加密恶意流量检测方法,如图1所示,为本实施例的基于多模态深度学习的加密恶意流量检测方法的流程图。
52.本实施例提出的基于多模态深度学习的加密恶意流量检测方法中,包括以下步骤:
53.步骤1:对加密流量数据进行数据分割,得到加密流量数据的握手阶段数据包、数据包长度序列和数据包到达的时间间隔序列。
54.本步骤中,将加密流量数据从三种不同的分析角度进行分割、截断等数据操作,得到后续步骤中用于三种不同模态的信息特征提取操作的输入数据。
55.本实施例中,通过对ssl/tls层握手阶段报文的分析得到握手阶段的关键报文段,即建立ssl/tls连接阶段的协商报文段,并且从加密流量数据的数据包序列中分别提取得到加密流量的数据包长度序列和数据包到达的时间间隔序列。
56.从加密流量数据中提取加密流量数据的握手阶段数据包的步骤包括:提取加密流量数据ssl/tls层握手阶段报文作为握手阶段数据包,选取的报文均来源于ssl/tls协议握手协商阶段产生的数据报文。本实施例中提取的加密流量数据ssl/tls层握手阶段报文包括:clienthello报文、serverhello报文与certificate报文。
57.从加密流量数据中提取加密流的数据包长度序列的步骤包括:对加密流数据包实施字节统计得到包长信息组成数据包长度序列,或对加密流数据包tcp包头标志位中提取包长信息组成数据包长度序列。其中,所述包长信息包括tcp数据包长度信息或ssl/tls数据包报文长度信息。
58.从加密流量数据中提取数据包到达的时间间隔序列的步骤包括:通过加密流量数
据包pcap文件中数据包的包到达时间进行计算得到包到达时间间隔元素,组成包到达的时间间隔序列,或通过zeek等流量分析工具获得。其中,所述包到达时间间隔元素为tcp数据包到达时间间隔信息或ssl/tls数据包报文到达时间间隔信息。
59.步骤2:从加密流量数据的握手阶段数据包中提取握手信息特征向量。
60.本步骤中,采用一维cnn模型对加密流量数据的握手信息进行特征提取,所提取的握手信息为客户端与服务器在ssl/tls握手阶段传输的大量有关加密信息的数据,包括但不限于客户端提供的加密套件、服务端选择的加密套件、服务器证书等。一维cnn模型对握手阶段数据包中的握手信息进行筛选和组合,得到握手信息特征向量。其具体步骤包括:
61.步骤21:对握手阶段数据包原始流量的字节数目进行统计,对字节数超过n比特的报文进行截断,对长度小于n字节的报文在其末尾以0x00补齐,然后将整形处理后的报文中各个字节解释为0

255的整数,得到定长数字序列;
62.步骤22:将所述定长数字序列输入嵌入层得到数字二维矩阵,其中每个数字映射为数字二维矩阵中的一行,矩阵长度对应定长数字序列长度;
63.步骤23:将所述定长数字序列的数字二维矩阵输入cnn模型中,cnn模型输出握手信息特征向量。
64.其中,每个报文处理得到的定长数字序列的字节长度n在[200,2000]范围内,可根据加密恶意流量识别在时间效率和计算资源消耗的要求,在本实施例中n设置为200。
[0065]
本实施例的cnn模型的原理图如图2所示,其中包括依次连接的嵌入层、若干卷积层,以及最大池化层和全连接层。本实施例中的嵌入层的输出维数设置为60,且cnn模型采用残差网络结构,其卷积方向为纵向。
[0066]
步骤3:从加密流量数据的数据包长度序列中提取包长信息序列特征向量。
[0067]
本步骤中,采用双向gru网络模型对加密流量数据的包长信息序列进行特征提取,其中包长信息序列是通信过程中加密流量每个数据包的长度信息组成的数字序列,可以反应出通信内容在长度上的分布偏好,属于加密流量在空间维度上的信息。本实施例通过将序列信息全文特征提取能力优秀的双向gru网络应用于包长信息序列特征向量的提取,可以高效的得到加密流空间模态上用于恶意加密流量检测的特征。其具体步骤包括:
[0068]
步骤31:将所述数据包长度序列进行截断和添加数字0操作,得到固定序列长度的数据包长度序列,然后将其输入嵌入层中得到相应的数字二维矩阵,其中每个数字映射为数字二维矩阵中的一行,矩阵长度对应数据包长度序列的长度;
[0069]
步骤32:将所述数据包长度序列的数字二维矩阵输入双向gru模型中,双向gru模型输出包长信息序列特征向量。
[0070]
本实施例中的双向gru网络模型采用多层双向gru网络层搭建。如图3所示,为本实施例的双向gru网络模型的原理图。本实施例中的双向gru网络模型包括依次连接的嵌入层、循环神经网络层、attention层和全连接层,其中循环神经网络层包括多层gru、双向gru、多层lstm、双向lstm、rnn或双向rnn网络中的一种。本实施例中的循环神经网络层采用双向gru网络。
[0071]
步骤4:从加密流量数据的数据包到达的时间间隔序列中提取包到达信息序列特征向量。
[0072]
本步骤中,采用双向gru网络模型对加密流量数据的包到达信息序列进行特征提
取,其中包到达信息序列是通信过程中加密流量每个数据包的到达间隔时间组成的数字序列,可以反应出通信数据包生成和发送速度上的信息,属于加密流量在时间维度上的信息。本实施例通过将序列信息全文特征提取能力优秀的双向gru网络应用于包到达信息序列特征向量的提取,可以高效的得到加密流时间模态上用于恶意加密流量检测的特征。其具体步骤与步骤3类似,包括:
[0073]
步骤41:将所述加密流量数据的数据包到达的时间间隔序列进行截断和添加数字0操作,得到固定序列长度的数据包到达时间间隔序列,然后将其输入嵌入层中得到相应的数字二维矩阵,其中每个数字映射为数字二维矩阵中的一行,矩阵长度对应数据包到达时间间隔序列的长度;
[0074]
步骤42:将所述数据包到达时间间隔序列的数字二维矩阵输入双向gru模型中,双向gru模型输出包到达信息序列特征向量。
[0075]
本步骤中所采用的双向gru模型与步骤3中采用的双向gru网络模型的结构相同,包括依次连接的嵌入层、循环神经网络层、attention层和全连接层,其中循环神经网络层包括多层gru、双向gru、多层lstm、双向lstm、rnn或双向rnn网络中的一种。本实施例中的循环神经网络层采用双向gru网络。
[0076]
步骤5:将所述握手信息特征向量、包长信息序列特征向量、包到达信息序列特征向量进行拼接融合,得到多模态特征向量,将所述多模态特征向量输入深度学习网络模型中,得到加密流量数据的分类结果。
[0077]
其中,本实施例中的分类结果包括加密恶意流量所属恶意软件家族类别和非加密恶意流量。
[0078]
本步骤中的深度学习网络模型采用多个全连接层构造,且深度学习网络模型最后一层设置为softmax分类器。
[0079]
其中,本实施例利用了多个深度学习网络模型进行加密流量不同模态的数据特征提取,包括嵌入层在内的深度学习网络模型是一个端到端的深度学习网络,而在通过基于多模态深度学习的加密恶意流量的检测方法实施加密恶意流量检测之前,需要对该模型进行预训练。对本实施例中的深度学习网络模型进行预训练的步骤包括:
[0080]
1)采用随机数初始化所述深度学习网络模型中所有参数;
[0081]
2)获取带实际标签的加密流量数据作为训练数据,对其执行数据分割以及特征向量提取操作,得到握手信息特征向量、包长信息序列特征向量、包到达信息序列特征向量,然后将其拼接融合后输入所述深度学习网络模型中,得到表征加密恶意流量所属恶意软件家族类别或非加密恶意流量的分类向量;所述加密流量数据的实际标签中包括加密恶意流量所属恶意软件家族类别和非加密恶意流量;
[0082]
3)计算所述分类向量与对应加密流量数据的实际标签的交叉熵误差;
[0083]
4)通过反向传播算法计算误差相对于所有权重的梯度,通过梯度下降算法更新所有的参数,使输出与实际标签误差最小;
[0084]
5)保存深度学习网络模型的模型结构、训练配置、优化器状态和模型参数。
[0085]
本实施例中,将加密流量数据分割为不同方面的输入数据,同时考虑了三种加密流量中存在的信息模态,并且对不同的模态设计针对性的特征提取深度学习网络,分别提取握手信息特征向量、包长信息序列特征向量、包到达信息序列特征向量,与传统的通过单
一深度学习网络相比,其提取的加密流量特征更能精确地反应加密流量的综合整体特点,因此能够有效提高加密恶意流量的识别精度。
[0086]
本实施例采用机器学习的方式识别加密恶意流量,端到端的深度学习网络的应用避免了复杂的特征工程步骤,可以极大节省人力,提升效率,且本实施例所采用的深度学习网络模型避免了单一复杂网络模型面对分类信息分布不均的原始加密流数据时的网络性能使用不充分的情况,提升了检测效率,具有更好的应用价值。
[0087]
实施例2
[0088]
本实施例提出一种基于多模态深度学习的加密恶意流量检测系统,应用于实施例1提出的基于多模态深度学习的加密恶意流量检测方法。如图4所示,为本实施例的加密恶意流量检测系统的原理图。
[0089]
本实施例提出的基于多模态深度学习的加密恶意流量检测系统中,包括:
[0090]
数据分割模块1,用于对加密流量数据进行数据分割,得到加密流量数据的握手阶段数据包、数据包长度序列和数据包到达的时间间隔序列,然后分别传输至握手特征提取模块2、包长信息序列特征提取模块3和包到达信息序列特征提取模块4;
[0091]
握手特征提取模块2,用于通过cnn模型从加密流量数据的握手阶段数据包中提取握手信息特征向量,然后传输至多模态特征融合分类模块5;
[0092]
包长信息序列特征提取模块3,用于通过双向gru模型从加密流量数据的数据包长度序列中提取包长信息序列特征向量,然后传输至多模态特征融合分类模块5;
[0093]
包到达信息序列特征提取模块4,用于通过双向gru模型从加密流量数据的数据包到达的时间间隔序列中提取包到达信息序列特征向量,然后传输至多模态特征融合分类模块5;
[0094]
多模态特征融合分类模块5,用于将所述握手信息特征向量、包长信息序列特征向量、包到达信息序列特征向量进行拼接融合,得到多模态特征向量,将所述多模态特征向量输入深度学习网络模型中,输出得到加密流量数据的检测结果。
[0095]
本实施例中,数据分割模块1的工作流程如下:
[0096]
1)将原始加密流量数据包序列作为输入,进行握手阶段数据包提取、数据包长序列构建和包到达间隔序列构建操作;
[0097]
2)将握手阶段数据包、数据包长序列和包到达间隔序列分别输出到握手信息特征提取模块、包长信息序列特征提取模块3和包到达信息序列特征提取模块4。
[0098]
握手特征提取模块2的工作流程如下:
[0099]
1)将握手阶段数据包作为输入,进行包括截断、补零和字节转换整数处理的数据整形操作;
[0100]
2)将整形后的数字序列输入至嵌入层得到二维数字矩阵,作为输入传入一维cnn模型中进行特征抽取,得到握手信息特征向量;
[0101]
3)模型输出的握手信息特征向量作为模块输出传至多模态特征融合分类模块5。
[0102]
其中,本实施例的一维cnn模型包括输入层、嵌入层、第一一维卷积层、第二一维卷积层、第三一维卷积层、最大池化层和输出层。
[0103]
包长信息序列特征提取模块3的工作流程如下:
[0104]
1)将数据包长序列作为输入,通过截断和增加零元素操作构建定长数据包长序
列;
[0105]
2)将序列输入至嵌入层得到二维数字矩阵,作为输入传入双向gru模型中进行特征抽取,得到包长信息序列特征向量;
[0106]
3)模型输出的包长信息序列特征向量作为模块输出传至多模态特征融合分类模块5。
[0107]
其中,本实施例的双向gru模型包括输入层、嵌入层、双向gru层、attention层和输出层。其中双向gru层可以替换为选用lstm层、双向lstm层、rnn层或双向rnn层,网络层数可以根据实际加密恶意软件流量分类任务的效率限制与计算资源限制做适当调整。
[0108]
包到达信息序列特征提取模块4的工作流程如下:
[0109]
1)将包到达间隔序列作为输入,通过截断和增加零元素操作构建定长包到达间隔序列;
[0110]
2)将序列输入至嵌入层得到二维数字矩阵,作为输入传入双向gru模型中进行特征抽取,得到包到达信息序列特征向量;
[0111]
3)模型输出的包到达信息序列特征向量作为模块输出传至多模态特征融合分类模块5。
[0112]
其中,该模块所采用的双向gru模型与包长信息序列特征提取模块3所采用的双向gru模型组成结构相同。
[0113]
多模态特征融合分类模块5的工作流程如下:
[0114]
1)将握手信息特征向量、包长信息序列特征向量和包到达信息序列特征向量执行拼接融合操作得到多模态特征向量;
[0115]
2)将多模态特征向量传入多层全连接网络,网络的最后一层输出至softmax分类器进行恶意加密流量的分类判决,得到加密流量的分类结果作为模块输出。
[0116]
根据多模态特征融合分类模块5输出的加密流量分类结果,判断当前识别的加密流量数据是否为加密恶意流量。其中,分类结果包括加密恶意流量所属恶意软件家族类别和非加密恶意流量。
[0117]
相同或相似的标号对应相同或相似的部件;
[0118]
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
[0119]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜