一种基于对比学习的加密恶意流量小样本检测方法及系统
未命名
10-08
阅读:117
评论:0

1.本发明涉及加密恶意流量检测的技术领域,尤其涉及一种基于对比学习的加密恶意流量小样本检测方法及系统。
背景技术:
2.近年来,随着互联网应用对用户隐私保护和网络安全维护的需求增加,越来越多的互联网服务采用https加密手段保障网络通信的安全。同时,流量加密技术的发展和普及使得恶意软件有了隐藏自身通信流量的技术手段,大量的恶意软件采用ssl/tls协议加密流量,导致传统的恶意流量检测方法失效。在深度包检测工具无法通过流量的加密有效载荷匹配指纹的情况下,网络空间安全维护人员需要高精度和强鲁棒性的加密恶意流量检测方法,以快速检测出各种新出现的恶意软件生成的加密恶意流量,从而及时减少网络用户的隐私和财产的损失。然而,采用流量加密手段隐藏自身的恶意软件在流行初期较为隐蔽,难以大量捕捉其生成的加密恶意流量。此外,由于恶意软件的恶意行为不同,部分恶意软件可采集到的加密恶意流量样本也十分有限。因此,研究一种仅需要少量加密流量样本即可进行加密恶意流量检测的方法就变得尤为重要。
3.现有的加密恶意流量检测方法大都借助于深度学习技术。这些检测方法借助带标签的加密恶意流量数据集进行深度学习训练,从而可以在不解密加密流量的情况下检测加密恶意流量。然而,这些基于深度学习的检测模型通常需要大量加密流量数据进行训练,这增加了小样本检测的难度。一种应对这一挑战的方法是使用大量已有的加密流量数据集辅助模型训练,但为了保证训练数据集与实际网络环境中的加密流量分布一致,最好使用真实网络环境中捕获的加密流量数据进行训练。然而,相对实验室采用蜜罐技术等方法生成的加密流量,这些产生于现实网络环境的加密流量通常难以标注,因此加密恶意流量小样本检测任务仍然面临以下的挑战:
4.(1)部分恶意软件产生的流量难以捕捉。采用流量加密手段隐藏自身恶意软件在流行初期较为隐蔽,再加上部分恶意软件因其恶意行为而仅产生较少加密流量,导致网络空间安全维护人员难以对这些恶意软件追踪和定位,更难大量捕捉其生成的加密恶意流量。如何仅采用少量加密恶意流量样本训练深度学习检测模型,是基于深度学习的加密恶意流量小样本检测中存在的挑战。
5.(2)加密流量数据集标注困难。尽管加密恶意流量很难被捕获且部分类别样本较少,但是可以通过使用现有的大量加密流量数据集来辅助深度学习模型的训练过程。为了确保训练数据集与实际网络环境中的加密流量数据分布一致,最好采用捕获于真实网络环境中的加密流量作为训练数据集。然而,相对于实验室生成的加密流量(例如蜜罐技术),这些来源于真实网络环境的加密流量通常难以标注。为了提高加密恶意流量小样本检测的性能,如果深度学习模型能够使用无标记的加密流量数据集进行训练,将会解决加密流量难以标注所带来的困难。
6.(3)难以采用加密恶意流量小样本数据集快速训练深度学习模型。深度学习方法
比传统机器学习方法更准确、泛化性能更好,可用于加密恶意流量的检测。然而,深度学习网络中通常有大量参数需要学习和调整,更深更宽的网络会增加训练难度。恶意软件通常需要及时、快速的网络安全措施来应对,采用具有少量样本的加密恶意流量数据集,快速训练用于检测新型恶意流量的深度学习模型可以及时减少网络用户的隐私、财产损失。
技术实现要素:
7.本发明针对现有的加密恶意流量检测技术中,存在工作量大、难以捕捉加密恶意流量以及检测准确率低的问题,提出一种基于一种基于对比学习的加密恶意流量小样本检测方法及系统,通过构建加密恶意流量检测模型,并利用所述加密恶意流量检测模型对加密恶意流量进行检测,能够更加快捷有效的检测出加密恶意流量。
8.为了实现发明的目的,本发明采用如下技术方案实现:
9.一种基于对比学习的加密恶意流量小样本检测方法,包括以下步骤:
10.s1:获取加密流量,对所述加密流量进行数据清洗;
11.s2:对数据清洗后的加密流量进行多模态数据集提取;
12.s3:搭建特征编码器;
13.s4:利用多模态数据集对特征编码器进行对比学习训练;
14.s5:利用对比学习训练完成的特征编码器构建加密恶意流量检测模型,并利用所述加密恶意流量检测模型对加密恶意流量进行检测。
15.根据上述技术方案,通过获取加密流量,并对所述加密流量进行数据清洗;对数据清洗后的加密流量进行多模态数据集提取,并搭建特征编码器,利用提取的多模态数据集对特征编码器进行对比学习训练;同时,利用对比学习训练完成的特征编码器构建加密恶意流量检测模型,并利用所述加密恶意流量检测模型对加密恶意流量进行检测,能够快速有效的检测出隐藏的恶意软件产生的加密恶意流量,有效减少了加密恶意流量检测的工作量,提升了加密恶意流量检测的准确度,保证了网络用户的隐私和财产安全。
16.进一步地,步骤s1所述的对所述加密流量进行数据清洗的具体过程为:
17.s11:对获取的原始加密流量进行流量数据过滤;
18.s12:对过滤后的加密流量进行流量数据分割;
19.s13:将分割后的流量数据进行标准化处理。
20.步骤s11所述的对原始加密流量进行流量数据过滤的具体过程为:
21.以流量会话为单位,将获取的原始加密流量,划分为n个流量会话数据包;
22.利用ssl/tls协议标志判断n个流量会话数据包中是否包含ssl/tls层数据,判断过程满足:
23.若流量会话数据包中包含ssl/tls层数据,则该流量会话数据包为经由ssl/tls协议加密的流量数据,进行保留;
24.若流量会话数据包中未包含ssl/tls层数据,则该流量会话数据包为背景流量数据,进行过滤;
25.其中,所述背景流量数据表示不属于检测任务中的目标流量数据。
26.步骤s12所述的对过滤后的加密流量进行流量数据分割的具体过程为:
27.将过滤后得到的流量会话数据包中具有相同五元组的数据包划分为同一ssl/tls
流量会话数据,得到多个ssl/tls流量会话数据包;其中,所述五元组包括源ip、目的ip、源端口、目的端口和传输层协议,此外,将所述五元组的值均≥0;
28.将所述ssl/tls流量会话数据包重新过滤,过程满足:
29.判断ssl/tls流量会话数据包是否握手成功;
30.若成功,则表示该流量会话数据包中的数据进行到ssl/tls协议中的数据传输阶段,并继续判断该ssl/tls流量会话数据包中是否包含重传的tcp数据包,若包含,则将重传的tcp数据包过滤,若不包含,则直接保存该ssl/tls流量会话数据包;
31.若失败,则表示该流量会话数据包中的数据未进行到ssl/tls协议中的数据传输阶段,则将该流量会话数据包过滤。
32.步骤s13所述的将分割后的流量数据进行标准化处理的具体过程为:
33.将所述ssl/tls流量会话数据包的长度、ssl/tls流量会话数据包到达时间、ssl/tls流量会话数据包tcp层有效载荷以及ssl/tls流量会话数据包的发送方向进行保存,并对所述ssl/tls流量会话数据包进行截断、补零和归一化操作。
34.在上述技术方案中,通过将获取的原始加密流量以流量会话为单位划分为n个流量会话数据包,进而利用ssl/tls协议将划分的n个流量会话数据包中未包含ssl/tls层数据的流量会话数据包过滤;将过滤后得到的流量会话数据包中具有相同五元组的数据包划分为同一ssl/tls流量会话数据,得到多个ssl/tls流量会话数据包,并将多个ssl/tls流量会话数据包中握手失败的ssl/tls流量会话数据包与重传的tcp数据包过滤;最后将留下的ssl/tls流量会话数据包进行标准化处理,进而完成对加密流量的数据清洗。通过对加密流量进行数据清洗,有效的提升了加密流量数据的质量,减少了重复的加密流量数据,更利于后续的工作。
35.进一步地,步骤s2所述的对数据清洗后的加密流量进行多模态数据集提取的具体过程为:
36.将数据清洗后得到的ssl/tls流量会话数据包划分为有标签加密流量数据包和无标签加密流量数据包;
37.从所述无标签加密流量数据包中提取n个加密流量模态数据集形成无标签数据集s1,表达式满足:
38.从所述有标签加密流量数据包中提取n个加密流量模态数据集形成有标签数据集s2,表达式满足:
39.其中,n≥2。
40.进一步地,步骤s3所述的搭建特征编码器的具体过程为:
41.利用transformer网络搭建n个模态数据集上的特征编码器,表达式为:
42.e1,e2,
…
,en;
43.其中,所述特征编码器包括:输入嵌入层、位置嵌入层、transformer编码器层、全连接层和标准化层;
44.输入嵌入层,用于接收加密流量模态数据集中的数据,将加密流量模态数据集的输入向量中的每个元素映射为一个向量,并对输入向量进嵌入操作;
45.位置嵌入层,用于将所述输入嵌入层传输的输入向量中每个位置的数据嵌入位置
信息;
46.transformer编码器层,用于将所述位置嵌入层输出的向量进行特征提取,并重新编码为特征空间中的模态数据集上的特征向量;
47.全连接层,用于将所述transformer编码器层输出的特征向量进行降维操作;
48.标准化层,用于将降维后的特征向量进行标准化处理。
49.进一步地,步骤s4所述的利用多模态数据集对特征编码器进行对比学习训练的具体过程为:
50.利用所述无标签数据集s1对n个模态上的特征编码器进行预训练,过程满足:
51.将无标签数据集s1中的加密流量模态数据集输入特征编码器,利用特征编码器的输入嵌入层将加密流量模态数据集中的数据进行嵌入操作,将加密流量模态数据集的输入向量中的每个元素映射为一个向量,并将嵌入后的向量输入至所述位置嵌入层;
52.利用所述位置嵌入层将输入向量中每个位置的数据增加位置信息,并将嵌入位置信息后的向量输入至所述transformer编码器层;
53.利用所述transformer编码器层将所述位置嵌入层输出的向量进行特征提取,并重新编码为特征空间中的模态数据集上的特征向量;
54.利用所述全连接于将所述transformer编码器层输出的特征向量进行降维操作;
55.利用所述标准化层将所述全连接层输出的特征向量进行标准化处理;
56.其中,1≤i≤n;
57.在预训练过程中,构建损失函数表达式为
58.当损失函数的输出收敛并趋于稳定,则表示特征编码器训练完成;
59.利用预训练损失函数约束编码器为同一加密流量样本的不同模态数据编码出相似的特征向量,并为不同加密流量样本的不同模态数据编码出不相似的特征向量;
60.其中,表示加密流量两种不同模态数据间的对比学习损失,表示损失项,k表示训练时每批次采用的样本数量,表示采用余弦相似性函数对样本对编码后的相似性打分。
61.在上述技术方案中,从ssl/tls流量会话数据包中提取无标签数据集s1与有标签数据集s2,并搭建多模态数据集上的特征编码器,利于无标签数据集s1对所述特征编码器进
行预训练,并通过判断损失函数是否收敛,确定特征编码器是否完成训练,且利用预训练损失函数约束编码器为同一加密流量样本的不同模态数据编码出相似的特征向量,并为不同加密流量样本的不同模态数据编码出不相似的特征向量,更有利于对特征编码器的训练,使经过对比学习训练都得到的特征编码器在编码过程中,增强模态间互信息,并减少了噪音信息的编码,进而编码出的加密流量特征向量的泛化性能更强。
62.进一步地,步骤s5所述的利用对比学习训练完成的特征编码器构建加密恶意流量检测模型的具体过程为:
63.将预训练结束的特征编码器e1,e2,...,en的输出向量进行拼接并输入全连接层网络,形成加密恶意流量检测模型m
traffic
,表达式满足:
[0064][0065]
利用所述加密恶意流量检测模型对加密恶意流量进行检测的具体过程为:
[0066]
冻结特征编码器e1,e2,...,en中的参数,利用所述有标签数据集s2对所述加密恶意流量检测模型进行微调,得到有效的加密恶意流量检测网络;
[0067]
其中,所述微调表示将所述有标签数据集s2输入加密恶意流量检测模型,对所述加密恶意流量检测模型的参数不断进行训练调整,并交叉熵损失函数计算加密恶意流量检测模型的损失,当所述加密恶意流量检测模型的损失趋于稳定,表示加密恶意流量检测模型微调完成,得到有效的加密恶意流量检测网。
[0068]
根据上述技术方案,将预训练结束得到的特征编码器e1,e2,...,en的输出向量进行拼接并输入全连接层网络,能够快速的形成加密恶意流量检测模型m
traffic
;在利用加密恶意流量检测模型m
traffic
对加密恶意流量进行检测的过程中,冻结特征编码器e1,e2,...,en中的参数,并利用所述有标签数据集s2对所述加密恶意流量检测模型进行微调,得到有效的加密恶意流量检测网络。利用加密恶意流量检测模型m
traffic
对加密恶意流量进行检测,能够快速有效的检测出隐藏的恶意软件产生的加密恶意流量,有效减少了加密恶意流量检测的工作量,提升了加密恶意流量检测的准确度。
[0069]
本发明还提出一种基于对比学习的加密恶意流量小样本检测系统,包括:
[0070]
获取模块,用于获取加密流量;
[0071]
数据清洗模块,用于清洗所述获取模块中获取得到的加密流量;
[0072]
提取模块,用于提取数据清洗后的加密流量中的多模态数据集;
[0073]
构建模块,用于搭建多模态数据集的特征编码器;
[0074]
训练模块,利用多模态数据集对特征编码器进行对比学习训练;
[0075]
所述构建模块还用于利用对比学习训练完成的特征编码器构建加密恶意流量检测模型;
[0076]
检测模块,利用所述加密恶意流量检测模型对加密恶意流量进行检测。
[0077]
相比现有技术,本发明的有益效果在于:
[0078]
通过获取加密流量,并对所述加密流量进行数据清洗;进而对数据清洗后的加密流量进行多模态数据集提取,并搭建特征编码器,利用提取的多模态数据集对特征编码器
进行对比学习训练;同时,利用对比学习训练完成的特征编码器能够快速的构建加密恶意流量检测模型,进而利用所述加密恶意流量检测模型对加密恶意流量进行检测,能够有效的检测出隐藏的恶意软件产生的加密恶意流量,减少加密恶意流量检测的工作量,并提升加密恶意流量检测的准确度,保证了网络用户的隐私和财产的安全。
附图说明
[0079]
图1为本技术实施例提供的一种基于对比学习的加密恶意流量小样本检测方法的流程图;
[0080]
图2为本技术实施例提供的特征编码器的结构示意图;
[0081]
图3为本技术实施例提供的一种基于对比学习的加密恶意流量小样本检测系统结构示意图。
具体实施方式
[0082]
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以用许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
[0083]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0084]
实施例一:
[0085]
一种基于对比学习的加密恶意流量小样本检测方法,参见图1,包括以下步骤:
[0086]
s1:获取加密流量,对所述加密流量进行数据清洗;
[0087]
s2:对数据清洗后的加密流量进行多模态数据集提取;
[0088]
s3:搭建特征编码器;
[0089]
s4:利用多模态数据集对特征编码器进行对比学习训练;
[0090]
s5:利用对比学习训练完成的特征编码器构建加密恶意流量检测模型,并利用所述加密恶意流量检测模型对加密恶意流量进行检测。
[0091]
示例性的,将获取的加密流量以pcap文件的形式存储,在pcap文件中通常充斥着大量的背景流量,例如dns查询、页面样式加载等背景流量数据,在不破坏加密流量数据分布的情况下,对所述加密流量进行过滤、分割以及标准化等清洗操作;将经过过滤、分割以及标准化等清洗操作的加密流量进行多模态数据集提取,生成用于预训练的无标签数据集和用于微调的有标签数据集;并搭建多模态数据集的特征编码器,利用无标签数据集对特征编码器进行对比学习的预训练,训练训练方式为采用每次训练批次中的样本进行互相的对比学习,且用于对比的数据均为当前批次的最新编码;利用对比学习训练完成的特征编码器构建加密恶意流量检测模型,同时,利用有标签数据集对所述加密恶意流量检测模型进行微调,得到有效的加密恶意流量检测网络,进而对加密恶意流量小样本进行检测。
[0092]
在本实施例中,通过获取加密流量,并对所述加密流量进行数据清洗;对数据清洗
后的加密流量进行多模态数据集提取,并搭建特征编码器,利用提取的多模态数据集对特征编码器进行对比学习训练;同时,利用对比学习训练完成的特征编码器构建加密恶意流量检测模型,并利用所述加密恶意流量检测模型对加密恶意流量进行检测,能够快速有效的检测出隐藏的恶意软件产生的加密恶意流量,有效减少了加密恶意流量检测的工作量,提升了加密恶意流量检测的准确度,保证了网络用户的隐私和财产安全。
[0093]
实施例二:
[0094]
在本实施例中,针对实施例一中步骤s1至步骤s5作进一步说明。
[0095]
步骤s1所述的对所述加密流量进行数据清洗的具体过程为:
[0096]
s11:对获取的原始加密流量进行流量数据过滤,具体过程为:
[0097]
以流量会话为单位,将获取的原始加密流量,划分为n个流量会话数据包;
[0098]
利用ssl/tls协议标志判断n个流量会话数据包中是否包含ssl/tls层数据,判断过程满足:
[0099]
若流量会话数据包中包含ssl/tls层数据,则该流量会话数据包为经由ssl/tls协议加密的流量数据,进行保留;
[0100]
若流量会话数据包中未包含ssl/tls层数据,则该流量会话数据包为背景流量数据,进行过滤;
[0101]
其中,所述背景流量数据表示不属于检测任务中的目标流量数据。
[0102]
示例性的,将获取的加密流量以pcap文件的形式存储,获取的加密流量中包含了实验主机网卡某一接口在网络环境中某一段中捕获的所有通信流量。在pcap文件中通常充斥着大量的背景流量,例如dns查询、页面样式加载等背景流量数据,所述背景流量数据不属于加密恶意流量检测任务中的目标流量数据;在不破坏加密流量数据分布的情况下,将获取的原始加密流量以流量会话为单位,划分为n个流量会话数据包;利用ssl/tls协议标志判断n个流量会话数据包中是否包含ssl/tls层数据,判断过程满足:若流量会话数据包中包含ssl/tls层数据,则该流量会话数据包为经由ssl/tls协议加密的流量数据,将所述流量会话数据包进行保留;若流量会话数据包中未包含ssl/tls层数据,则该流量会话数据包为背景流量数据,将所述流量会话数据包进行过滤。
[0103]
s12:对过滤后的加密流量进行流量数据分割,具体过程为:
[0104]
将过滤后得到的流量会话数据包中具有相同五元组的数据包划分为同一ssl/tls流量会话数据,得到多个ssl/tls流量会话数据包;其中,所述五元组包括源ip、目的ip、源端口、目的端口和传输层协议,此外,所述五元组的值均≥0;
[0105]
将所述ssl/tls流量会话数据包重新过滤,过程满足:
[0106]
判断ssl/tls流量会话数据包是否握手成功;
[0107]
若成功,则表示该流量会话数据包中的数据进行到ssl/tls协议中的数据传输阶段,并继续判断该ssl/tls流量会话数据包中是否包含重传的tcp数据包,若包含,则将重传的tcp数据包过滤,若不包含,则直接保存该ssl/tls流量会话数据包;
[0108]
若失败,则表示该流量会话数据包中的数据未进行到ssl/tls协议中的数据传输阶段,则将该流量会话数据包过滤。
[0109]
示例性的,加密的流量会话是加密恶意流量检测的基本单位,一条加密流量会话是一组共享五个元组的数据包。共享的五元组分别为源ip、目的ip、源端口、目的端口和传
输层协议,由于会话中的数据包传输包含两个方向,因此源和目的两个方向的ip与端口可以互换。原始的加密流量数据是记录了某一时段中全部流量的pcap文件,所以文件中通常包含了上万条加密流量会话。此外,由于同一时间可能进行多条网络通信,所以这些流量会话所包含的数据包在pcap文件中可能相互交错。因此,需要将流量会话从原始的pcap文件中分割出来单独保存为pcap文件。对原始加密流量数据去除了背景流量后,ssl/tls流量会话数据包中依旧存在无效流量,这些无效流量包括握手失败流量会话和重传的tcp数据包。握手失败流量会话指的是由于网络拥塞、秘钥协商失败或身份验证不通过等原因,没有成功建立起加密信道传输应用层数据的流量会话。这些流量会话没有进行到ssl/tls协议中的数据传输阶段,并不为客户端与服务器传输合法或恶意数据,因此将其过滤。重传的tcp数据包则是因为偶发的网络拥塞等产生的重复数据包,这些数据包仅体现了捕获数据当时的网络情况,并不体现使用该流量会话传输数据的用户端与服务器的一般特性,因此,将重传的tcp数据包进行过滤,可采用tcp包的数据序号与确认序号判断ssl/tls流量会话数据包中是否存在重传的tcp数据包。五元组可以视为流量会话的身份id,而为了规避基于传统规则的恶意流量检测,恶意软件通常会采用混淆端口或随机端口,这就导致五元组信息对于恶意软件来说不能作为有效的识别特征,需要对有效流量中的五元组信息做屏蔽处理,五元组信息屏蔽方式可以采用将数据包中五元组信息设置为m,其中,m≥0。
[0110]
s13:将分割后的流量数据进行标准化处理,具体过程为:
[0111]
将所述ssl/tls流量会话数据包的长度、ssl/tls流量会话数据包到达时间、ssl/tls流量会话数据包tcp层有效载荷以及ssl/tls流量会话数据包的发送方向进行保存,并对所述ssl/tls流量会话数据包进行截断、补零和归一化操作。
[0112]
示例性的,在数据清洗阶段将以pcap文件形式保存的ssl/tls流量会话数据包进行转换和标准化,仅将所述ssl/tls流量会话数据包的长度、ssl/tls流量会话数据包到达时间、ssl/tls流量会话数据包tcp层有效载荷以及ssl/tls流量会话数据包的发送方向进行转换保存,并对转换保存的ssl/tls流量会话数据包进行截断、补零和归一化操作,从而减少存储和计算资源的消耗。
[0113]
可以理解的,通过将获取的原始加密流量以流量会话为单位划分为n个流量会话数据包,进而利用ssl/tls协议将划分的n个流量会话数据包中未包含ssl/tls层数据的流量会话数据包过滤;将过滤后得到的流量会话数据包中具有相同五元组的数据包划分为同一ssl/tls流量会话数据,得到多个ssl/tls流量会话数据包,并将多个ssl/tls流量会话数据包中握手失败的ssl/tls流量会话数据包与重传的tcp数据包过滤;最后将留下的ssl/tls流量会话数据包进行标准化处理,进而完成对加密流量的数据清洗。通过对加密流量进行数据清洗,有效的提升了加密流量数据的质量,减少了重复的加密流量数据,更利于后续的工作。
[0114]
步骤s2所述的对数据清洗后的加密流量进行多模态数据集提取的具体过程为:
[0115]
将数据清洗后得到的ssl/tls流量会话数据包划分为有标签加密流量数据包和无标签加密流量数据包;
[0116]
从所述无标签加密流量数据包中提取n个加密流量模态数据集形成无标签数据集s1,表达式满足:
[0117]
从所述有标签加密流量数据包中提取n个加密流量模态数据集形成有标签数据集s2,表达式满足:
[0118]
其中,n≥2。
[0119]
示例性的,从数据清洗后的无标签加密流量数据中提取多个加密流量模态数据集,数据集个数为n(n≥2),数据集表示为其中每个加密流量模态数据集以加密流量会话为组成单位,不同加密流量模态数据集中对应位置的样本为同一加密流量会话的不同模态数据,多个加密流量模态数据集组成用于预训练的无标签数据集s1;表达式满足:形成有标签数据集s2的原理与形成无标签数据集s1的原理一致。
[0120]
其中,多个加密流量模态数据集指的是对加密流量原始数据采用不同传感器采集的多组数据集,也可以视为包含加密流量不同维度信息的数据集;上述的多个加密流量模态数据集可选用的模态包括如下加密流量模态中的多种:
[0121]
数据包长序列:加密流量会话中数据包长度组成的序列,包含可用于加密恶意流量检测的加密流量整体传输上的空间维度信息;
[0122]
数据包到达时间间隔序列:加密流量会话中数据包到达时间间隔组成的序列,包含可用于加密恶意流量检测的加密流量整体传输上的时间维度信息;
[0123]
ssl/tls握手阶段有效载荷:加密流量会话中的client hello消息与server hello消息,包含加密流量在加密行为上的信息;
[0124]
证书有效载荷:加密流量会话中的证书消息,包含加密流量在身份认证上的信息。
[0125]
步骤s3所述的搭建特征编码器的具体过程为:
[0126]
参见图2,利用transformer网络搭建n个模态数据集上的特征编码器,表达式为:
[0127]
e1,e2,...,en;
[0128]
其中,所述特征编码器包括:输入嵌入层、位置嵌入层、transformer编码器层、全连接层和标准化层;
[0129]
输入嵌入层,用于接收加密流量模态数据集中的数据,将加密流量模态数据集的输入向量中的每个元素映射为一个向量,并对输入向量进嵌入操作;
[0130]
位置嵌入层,用于将所述输入嵌入层传输的输入向量中每个位置的数据嵌入位置信息;
[0131]
transformer编码器层,用于将所述位置嵌入层输出的向量进行特征提取,并重新编码为特征空间中的模态数据集上的特征向量;
[0132]
全连接层,用于将所述transformer编码器层输出的特征向量进行降维操作;
[0133]
标准化层,用于将降维后的特征向量进行标准化处理。
[0134]
步骤s4所述的利用多模态数据集对特征编码器进行对比学习训练的具体过程为:
[0135]
利用所述无标签数据集s1对n个模态上的特征编码器进行预训练,过程满足:
[0136]
将无标签数据集s1中的加密流量模态数据集输入特征编码器,利用特征编码器的输入嵌入层将加密流量模态数据集中的数据进行嵌入操作,将加密流量模态数据集的输入向量中的每个元素映射为一个向量,并将嵌入后的向量输入至所述位置嵌入层;
[0137]
利用所述位置嵌入层将输入向量中每个位置的数据增加位置信息,并将嵌入位置信息后的向量输入至所述transformer编码器层;
[0138]
利用所述transformer编码器层将所述位置嵌入层输出的向量进行特征提取,并重新编码为特征空间中的模态数据集上的特征向量;
[0139]
利用所述全连接于将所述transformer编码器层输出的特征向量进行降维操作;
[0140]
利用所述标准化层将所述全连接层输出的特征向量进行标准化处理;
[0141]
其中,1≤i≤n;
[0142]
在预训练过程中,构建损失函数表达式为
[0143]
当损失函数的输出收敛并趋于稳定,则表示特征编码器训练完成;
[0144]
利用预训练损失函数约束编码器为同一加密流量样本的不同模态数据编码出相似的特征向量,并为不同加密流量样本的不同模态数据编码出不相似的特征向量;
[0145]
其中,表示加密流量两种不同模态数据间的对比学习损失,表示损失项,k表示训练时每批次采用的样本数量,表示采用余弦相似性函数对样本对编码后的相似性打分。
[0146]
示例性的,上述的损失函数是由不同加密流量模态的样本之间计算的对比损失组成,每一对模态间的对比损失设置为可以视为两种模态互相比对自身样本与对方所有样本的相似性并计算损失。损失项表示将作为已有的编码集,计算中所有向量与编码集中所有编码的损失的平均值。其中用于衡量编码之间相似性的函数采用了采用余弦相似性函数,为相似与不相似的编码分别输出高与低的值。损失函数的设置是为了约束编码器为同一加密流量样本的不同模态数据编码出相似的特征向量,同时为不同加密流量样本的不同模态数据编码出不相似的特征向量。使得编码器能在编码时尽量多的保留加密流量在不同模态间共享的信息,称之
为模态间互信息,同时尽量减少加密流量单个模态上的噪音信息,进而训练编码器编码出泛用性强的加密流量特征。
[0147]
可以理解的,从ssl/tls流量会话数据包中提取无标签数据集s1与有标签数据集s2,并搭建多模态数据集上的特征编码器,利于无标签数据集s1对所述特征编码器进行预训练,并通过判断损失函数是否收敛,确定特征编码器是否完成训练,当损失函数的输出收敛并趋于稳定,不在大幅波动时,则表示特征编码器训练完成;且利用预训练损失函数约束编码器为同一加密流量样本的不同模态数据编码出相似的特征向量,并为不同加密流量样本的不同模态数据编码出不相似的特征向量,更有利于对特征编码器的训练,使经过对比学习训练都得到的特征编码器在编码过程中,增强模态间互信息,并减少了噪音信息的编码,进而编码出的加密流量特征向量的泛化性能更强。
[0148]
步骤s5所述的利用对比学习训练完成的特征编码器构建加密恶意流量检测模型的具体过程为:
[0149]
将预训练结束的特征编码器e1,e2,
…
,en的输出向量进行拼接并输入全连接层网络,形成加密恶意流量检测模型m
traffic
,表达式满足:
[0150][0151]
利用所述加密恶意流量检测模型对加密恶意流量进行检测的具体过程为:
[0152]
冻结特征编码器e1,e2,
…
,en中的参数,利用所述有标签数据集s2对所述加密恶意流量检测模型进行微调,得到有效的加密恶意流量检测网络;
[0153]
其中,所述微调表示将所述有标签数据集s2输入加密恶意流量检测模型,对所述加密恶意流量检测模型的参数不断进行训练调整,并利用交叉熵损失函数计算加密恶意流量检测模型的损失,当所述加密恶意流量检测模型的损失趋于稳定,表示加密恶意流量检测模型微调完成,得到有效的加密恶意流量检测网。
[0154]
示例性的,将预训练好的多个模态上的特征编码器e1,e2,...,en和全连接网络组成加密恶意流量检测模型m
traffic
,具体过程为:采用将特征编码器e1,e2,...,en输出的向量拼接后输入全连接层网络的方式形成加密恶意流量检测模型m
traffic
,即其中,c表示全连接层网络输出向量,且全连接层网络输出向量c的维数为加密流量小样本检测中加密流量的类别数;微调过程中根据需要不冻结e1,e2,...,en的参数,相对于冻结参数可以训练模型具有更好的检测精度,但是训练时间会增加。
[0155]
可以理解的,将预训练结束得到的特征编码器e1,e2,...,en的输出向量进行拼接并输入全连接层网络,能够快速的形成加密恶意流量检测模型m
traffic
;在利用加密恶意流量检测模型m
traffic
对加密恶意流量进行检测的过程中,冻结特征编码器e1,e2,...,en中的参数,并利用所述有标签数据集s2对所述加密恶意流量检测模型进行微调,得到有效的加密恶意流量检测网络。利用加密恶意流量检测模型m
traffic
对加密恶意流量进行检测,能够快速有效的检测出隐藏的恶意软件产生的加密恶意流量,有效减少了加密恶意流量检测的
工作量,提升了加密恶意流量检测的准确度。
[0156]
在本实施例中,通过对加密流量进行数据清洗,并对数据清洗后加密流量进行多模态数据集提取,然后搭建多模态数据集的特征编码器e1,e2,...,en,将多模态数据集划分为无标签数据集s1和有标签数据集s2,利用无标签数据集s1对特征编码器e1,e2,...,en进行预训练,利用训练完成的特征编码器e1,e2,
…
,en和全连接层网络组成加密恶意流量检测模型,并利用有标签数据集s2对加密恶意流量检测模型进行微调,微调好的加密流量检测模型用于加密恶意流量检测,能够快速有效的检测出隐藏的恶意软件产生的加密恶意流量,有效减少了加密恶意流量检测的工作量,提升了加密恶意流量检测的准确度,保证了网络用户的隐私和财产安全。
[0157]
实施例三:
[0158]
一种基于对比学习的加密恶意流量小样本检测系统,包括:
[0159]
获取模块,用于获取加密流量;
[0160]
数据清洗模块,用于清洗所述获取模块中获取得到的加密流量;
[0161]
提取模块,用于提取数据清洗后的加密流量中的多模态数据集;
[0162]
构建模块,用于搭建特征编码器;
[0163]
训练模块,利用多模态数据集对特征编码器进行对比学习训练;
[0164]
所述构建模块还用于利用对比学习训练完成的特征编码器构建加密恶意流量检测模型;
[0165]
检测模块,利用所述加密恶意流量检测模型对加密恶意流量进行检测。
[0166]
在本实施例中,利用获取模块获取加密流量,并将获取的加密流量传输至数据清洗模块,利用数据清洗模块对获取的加密流量进行数据清洗;利用提取模块将经过数据清洗后加密流量进行多模态数据集提取;利用搭建模块搭建多模态数据集的特征编码器,将多模态数据集输入训练模块对特征编码器进行对比学习训练,利用构建模块将对比学习训练完成的特征编码器构建加密恶意流量检测模型,随后,利用检测模块对所述加密恶意流量检测模型对加密恶意流量进行检测。
[0167]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种基于对比学习的加密恶意流量小样本检测方法,其特征在于,包括以下步骤:s1:获取加密流量,对所述加密流量进行数据清洗;s2:对数据清洗后的加密流量进行多模态数据集提取;s3:搭建特征编码器;s4:利用多模态数据集对特征编码器进行对比学习训练;s5:利用对比学习训练完成的特征编码器构建加密恶意流量检测模型,并利用所述加密恶意流量检测模型对加密恶意流量进行检测。2.根据权利要求1所述的基于对比学习的加密恶意流量小样本检测方法,其特征在于,步骤s1所述的对所述加密流量进行数据清洗的具体过程为:s11:对获取的原始加密流量进行流量数据过滤;s12:对过滤后的加密流量进行流量数据分割;s13:将分割后的流量数据进行标准化处理。3.根据权利要求2所述的基于对比学习的加密恶意流量小样本检测方法,其特征在于,步骤s11所述的对原始加密流量进行流量数据过滤的具体过程为:以流量会话为单位,将获取的原始加密流量划分为n个流量会话数据包;利用ssl/tls协议标志判断n个流量会话数据包中是否包含ssl/tls层数据,判断过程满足:若流量会话数据包中包含ssl/tls层数据,则该流量会话数据包为经由ssl/tls协议加密的流量数据,进行保留;若流量会话数据包中未包含ssl/tls层数据,则该流量会话数据包为背景流量数据,进行过滤;其中,所述背景流量数据表示不属于检测任务中的目标流量数据。4.根据权利要求3所述的基于对比学习的加密恶意流量小样本检测方法,其特征在于,步骤s12所述的对过滤后的加密流量进行流量数据分割的具体过程为:将过滤后得到的流量会话数据包中具有相同五元组的数据包划分为同一ssl/tls流量会话数据,得到多个ssl/tls流量会话数据包;其中,所述五元组包括源ip、目的ip、源端口、目的端口和传输层协议,此外,所述五元组的值均≥0;将所述ssl/tls流量会话数据包重新过滤,过程满足:判断ssl/tls流量会话数据包是否握手成功;若成功,则表示该流量会话数据包中的数据进行到ssl/tls协议中的数据传输阶段,并继续判断该ssl/tls流量会话数据包中是否包含重传的tcp数据包,若包含,则将重传的tcp数据包过滤,若不包含,则直接保存该ssl/tls流量会话数据包;若失败,则表示该流量会话数据包中的数据未进行到ssl/tls协议中的数据传输阶段,则将该流量会话数据包过滤。5.根据权利要求4所述的基于对比学习的加密恶意流量小样本检测方法,其特征在于,步骤s13所述的将分割后的流量数据进行标准化处理的具体过程为:将所述ssl/tls流量会话数据包的长度、ssl/tls流量会话数据包到达时间、ssl/tls流量会话数据包tcp层有效载荷以及ssl/tls流量会话数据包的发送方向进行保存,并对所述ssl/tls流量会话数据包进行截断、补零和归一化操作。
6.根据权利要求5所述的基于对比学习的加密恶意流量小样本检测方法,其特征在于,步骤s2所述的对数据清洗后的加密流量进行多模态数据集提取的具体过程为:将数据清洗后得到的ssl/tls流量会话数据包划分为有标签加密流量数据包和无标签加密流量数据包;从所述无标签加密流量数据包中提取n个加密流量模态数据集形成无标签数据集s1,表达式满足:从所述有标签加密流量数据包中提取n个加密流量模态数据集形成有标签数据集s2,表达式满足:其中,n≥2。7.根据权利要求6所述的基于对比学习的加密恶意流量小样本检测方法,其特征在于,步骤s3所述的搭建特征编码器的具体过程为:利用transformer网络搭建n个模态数据集上的特征编码器,表示为:e1,e2,
…
,e
n
;其中,所述特征编码器包括:输入嵌入层、位置嵌入层、transformer编码器层、全连接层和标准化层;输入嵌入层,用于接收加密流量模态数据集中的数据,将加密流量模态数据集的输入向量中的每个元素映射为一个向量,并对输入向量进嵌入操作;位置嵌入层,用于将所述输入嵌入层传输的输入向量中每个位置的数据嵌入位置信息;transformer编码器层,用于将所述位置嵌入层输出的向量进行特征提取,并重新编码为特征空间中的模态数据集上的特征向量;全连接层,用于将所述transformer编码器层输出的特征向量进行降维操作;标准化层,用于将降维后的特征向量进行标准化处理。8.根据权利要求7所述的基于对比学习的加密恶意流量小样本检测方法,其特征在于,步骤s4所述的利用多模态数据集对特征编码器进行对比学习训练的具体过程为:利用所述无标签数据集s1对n个模态上的特征编码器进行预训练,过程满足:将无标签数据集s1中的加密流量模态数据集输入特征编码器,利用特征编码器的输入嵌入层将加密流量模态数据集中的数据进行嵌入操作,将加密流量模态数据集的输入向量中的每个元素映射为一个向量,并将嵌入后的向量输入至所述位置嵌入层;利用所述位置嵌入层将输入向量中每个位置的数据增加位置信息,并将嵌入位置信息后的向量输入至所述transformer编码器层;利用所述transformer编码器层将所述位置嵌入层输出的向量进行特征提取,并重新编码为特征空间中的模态数据集上的特征向量;利用所述全连接于将所述transformer编码器层输出的特征向量进行降维操作;利用所述标准化层将所述全连接层输出的特征向量进行标准化处理;其中,1≤i≤n;
在预训练过程中,构建损失函数表达式为当损失函数的输出收敛并趋于稳定,则表示特征编码器训练完成;其中,表示加密流量两种不同模态数据间的对比学习损失,习损失,表示损失项,k表示训练时每批次采用的样本数量,表示采用余弦相似性函数对样本对编码后的相似性打分。9.根据权利要求8所述的基于对比学习的加密恶意流量小样本检测方法,其特征在于,步骤s5所述的利用对比学习训练完成的特征编码器构建加密恶意流量检测模型的具体过程为:将预训练结束的特征编码器e1,e2,
…
,e
n
的输出向量进行拼接并输入至全连接层网络,形成加密恶意流量检测模型m
traffic
,表达式满足:利用所述加密恶意流量检测模型对加密恶意流量进行检测的具体过程为:冻结特征编码器e1,e2,
…
,e
n
中的参数,利用所述有标签数据集s2对所述加密恶意流量检测模型进行微调,得到有效的加密恶意流量检测网络;其中,所述微调表示将所述有标签数据集s2输入加密恶意流量检测模型,对所述加密恶意流量检测模型的参数不断进行训练调整,并利用交叉熵损失函数计算加密恶意流量检测模型的损失,当所述加密恶意流量检测模型的损失趋于稳定,表示加密恶意流量检测模型微调完成,得到有效的加密恶意流量检测网络。10.一种基于对比学习的加密恶意流量小样本检测系统,其特征在于,包括:获取模块,用于获取加密流量;数据清洗模块,用于清洗所述获取模块中获取得到的加密流量;提取模块,用于提取数据清洗后的加密流量中的多模态数据集;构建模块,用于搭建特征编码器;训练模块,利用多模态数据集对特征编码器进行对比学习训练;所述构建模块还用于利用对比学习训练完成的特征编码器构建加密恶意流量检测模型;检测模块,利用所述加密恶意流量检测模型对加密恶意流量进行检测。
技术总结
本发明公开了一种基于对比学习的加密恶意流量小样本检测方法及系统,涉及加密恶意流量检测的技术领域。首先,获取加密流量,并对所述加密流量进行数据清洗;对数据清洗后的加密流量进行多模态数据集提取,并搭建特征编码器,利用提取的多模态数据集对特征编码器进行对比学习训练;同时,利用对比学习训练完成的特征编码器构建加密恶意流量检测模型,并利用所述加密恶意流量检测模型对加密恶意流量进行检测。通过本发明提出的基于对比学习的加密恶意流量小样本检测方法及系统,能够快速的训练出用于检测加密恶意流量的模型,并能有效的检测出隐藏的恶意软件产生的加密恶意流量,减少加密恶意流量检测的工作量,提升了加密恶意流量检测的准确度。流量检测的准确度。流量检测的准确度。
技术研发人员:金舒原 张笑天
受保护的技术使用者:中山大学
技术研发日:2023.08.10
技术公布日:2023/10/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/