CN114330469A - 一种快速、准确的加密流量分类方法及系统 - Google Patents
一种快速、准确的加密流量分类方法及系统 Download PDFInfo
- Publication number
- CN114330469A CN114330469A CN202110999637.6A CN202110999637A CN114330469A CN 114330469 A CN114330469 A CN 114330469A CN 202110999637 A CN202110999637 A CN 202110999637A CN 114330469 A CN114330469 A CN 114330469A
- Authority
- CN
- China
- Prior art keywords
- sequence
- early
- stage
- classification
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种快速、准确的加密流量分类方法及系统,该方法包括模型构建阶段1、模型构建阶段2以及分类阶段。模型构建阶段1包括:对流序列进行短序列预处理;对短序列训练数据进行模型构建,生成早期快速检测模型。模型构建阶段2包括:对流序列进行长序列预处理;对长序列训练数据进行模型构建,生成细粒度分类模型。根据模型构建阶段2生成的细粒度分类模型对不能早期分类的流进行精细化分类,并输出其预测标签。本发明使用较多的数据报文将不能早期分类的流进行精细化分类,在网络流量分类过程既保证了高精度的同时又极大的减少了所有流等待数据报文所花费的时间,因此,能够同时满足高速与高精度的分类需求。
Description
技术领域
本发明涉及根据加密流量的基础属性信息使用机器学习和深度学习技术相结合的方法对未标记的加密流量进行分类,具体涉及快速、准确的加密流量分类方法及系统。
背景技术
网络流量分类作为网络管理的基础,对网络管理和网络安全都起着至关重要的作用。例如,保证网络服务质量(QoS)和检测网络异常,都要依赖于快速、准确的网络流量分类。具体而言,在网络管理中,为了给用户提供更好的服务质量和网络供应,网络运营商首先需要根据不同的应用将流量快速、准确地划分为不同的类别。另外,在网络安全中,网络流量分类是网络异常检测的第一步。由于这种应用需求,该领域的研究吸引着学术界和工业界的广泛关注。值得注意的是,随着通信技术和网络技术的不断发展,传统的网络流量分类方法面临着新的困难与挑战。具体地说,首先,5G通信技术的出现使移动通信数据传输速度大幅提升,网络流量呈现出爆炸式增长的态势。在5G移动通信的全新网络架构下,峰值速率超过了每秒20Gbit,相当于4G的20倍,网络时延从4G的50ms缩减到1ms,设备连接满足千亿量级。针对网络流量高速增长的现状,对网络流量进行快速分类是当今网络领域一个亟待解决的难题。其次,为了保护用户信息安全与隐私,网络数据加密技术得到了普遍的应用,从而导致网络环境中加密流量越来越多。根据市场分析公司NetMarketShare提供的数据显示,截止到2019年10月全球使用HTTPS(超文本传输安全协议)加密的WEB(全球广域网)流量比例已经超90%;同年12月,谷歌宣称80%的安卓应用程序默认使用TLS(传输层安全)加密了绝大部分移动终端设备的流量,且这一比例随着时间的推移而持续增大。由此可见,加密技术在网络传输过程中已经被普遍应用。值得注意的是,使用加密技术虽然保护了互联网用户的隐私与信息安全,但是,也给网络管理者对网络流量的进行准确分类带来了新的挑战。因为在加密过程中数据包的有效载荷变得随机化或规范化,使得在网络流量分类过程中无法利用内容特有的特征,如语义信息的相关性。面对这些难题与挑战,迫切地需要一种既快速又准确的加密流量分类解决方案。
本发明设计并实现了一种快速、准确的加密流量分类方法及系统。本发明通过提取加密流量的基础属性信息,并采用多阶段处理操作的系统框架,实现一种同时具备高速与高精度分类需求的方法和系统。
近年来,针对加密流量的研究工作主要分为两类:基于流统计行为特征的研究和基于流序列行为特征的研究。然而,现有的研究工作很难达到同时具备高速与高精度的分类要求。
基于流统计行为特征的研究:首先,对每一条流提取该流的一些基础属性(例如,报文长度、报文个数、报文间隔时间等),然后将这些基础属性与其统计量(例如,最大值、最小值、平均值等)进行组合使用,从而将每一条流抽象为由一组属性统计量构成的特征向量,最后使用该特征向量构建流分类模型来对网络流进行分类。该研究不需要考虑流的有效载荷中的内容,因此,不涉及用户的隐私。此外,基于流序列行为特征的研究:首先,对每一条流中的数据包同样地提取其基础属性,然后将这些数据包的基础属性按时间顺序进行排列,从而形成属性序列来描述该流,并进一步地使用该属性序列形成分类特征,最终实现网络流分类。
值得注意的是,传统加密流分类方法受限于将所有的流进行一致化的分类处理操作,导致很难去满足同时具备高速与高精度的分类需求。具体地说,一些方法为了达到快速分类的目的,仅对每一条流进行极短时间的信息观测,以此来减少信息观测所花费的时间,从而实现网络流的快速分类。然而,这种以快速分类为目的,将所有流进行一致化分类处理操作的方法会极大的降低分类的准确性。这是因为对于很多流来说,需要观测足够完整的信息才能实现准确分类。另外一些方法为了达到准确分类的目的,需要对每一条流进行长时间的信息观测,从而获得该流的较完整信息。然而,这种以准确分类的目的,将所有流进行一致化分类处理操作方法又会产生大量、不必要的时间开销。这是因为对于大部分流来说,通常并不需要对其进行长时间的信息观测就可以实现准确分类。因此,传统加密流分类方法受限于将所有的流进行一致化处理操作,所以很难去实现同时具备高速与高精度的分类需求。
发明内容
本发明的目的在于设计并实现一种快速、准确的加密流量分类方法及系统,使得其在网络流量分类过程中,可以使用极少的早期数据报文将大多数加密流进行快速的早期分类,使用较多的数据报文将不能早期分类的流进行精细化分类,以实现同时满足高速与高精度的分类需求。
为实现上述目的,本发明采用的技术方案如下:
本发明涉及一种快速、准确的加密流量分类方法及系统。该方法包括模型构建阶段1、模型构建阶段2以及分类阶段;
所述模型构建阶段1包括如下步骤:
1)以已标记流序列的集合为输入,通过截取或填充的方式使每一条流序列的仅保留少数的、固定数量的几个早期数据报文,然后对每一个数据报文进行基础属性提取,并顺序排列成定长的特征短序列;
2)以步骤1)得到的定长的特征短序列作为输入,形成离线训练数据集,采用有监督学习的方式,构建能快速识别能早期分类流与不能早分类流的早期快速检测模型;
所述模型构建阶段2包括如下步骤:
3)以已标记流序列的集合为输入,通过截取或填充的方式使每一条流序列的保留较多的、固定数量的数据报文,然后对每一个数据报文进行基础属性提取,并顺序排列成定长的特征长序列,最后采用独热编码将定长特征长序列转换为定长的独热表征长序列;
4)以步骤3)得到的定长的独热表征长序列作为输入,形成离线训练数据集,采用有监督学习的方式,构建能够对加密流进行精细化分类的细粒度分类模型;
所述分类阶段包括如下步骤:
5)以未标记的流序列为输入,进行与模型构建阶段1中步骤1)相同的短序列预处理操作将待测流序列转换为定长特征短序列;
6)根据模型构建阶段1中步骤2)得到的早期快速检测模型,判断该目标流量是能早期分类的流还是不能早期分类的流,并做不同的标记。
7)根据每条目标流量在分类阶段中步骤6)生成的早期检测标记进行判断,对于能早期分类的流输出其对应的预测标签,对于不能早期分类的流传送到后续模块。
8)根据分类阶段中步骤7)所传送的不能早期分类的目标流量的进行与模型构建阶段2中步骤3)相同的长序列预处理操作,生成定长的独热表征长序列。
9)以分类阶段中步骤8)生成的定长独热表征长序列为输入,采用模型构建阶段2中步骤4)生成的细粒度分类模型对不能早期分类的目标流量进行精细化分类,并输出其预测标签。
一种快速、准确的加密流量分类系统,包括用于模型构建阶段的模型构建阶段1和模型构建阶段2,以及用于分类阶段的早期快速检测处理模块、细粒度分类处理模块;其中,
模型构建阶段1模块从输入的原始网络流量数据中,提取早期数据报文的基础属性,并顺序排列成定长的特征短序列;然后,对短序列训练数据进行模型构建,生成早期快速检测模型。
模型构建阶段2模块从输入的原始网络流量数据中,提取更多数据报文的基础属性,并顺序排列成定长的特征长序列,并转换为独热向量形式;根据生成的独热向量形式的长序列训练数据进行模型构建,生成细粒度分类模型。
分类阶段对采集网络流量并根据模型构建阶段1生成的早期快速检测模型进行早期快速检测处理,将能早期分类的流和不能早期分类的流进行不同标记;然后根据早期检测处理得到结果进行二次分类选择判别,将能早期分类的流输出其预测标签,将不能早期分类的流输出给后续模块;最后,根据模型构建阶段2生成的细粒度分类模型对不能早期分类的流进行精细化分类,并输出其预测标签。
本发明的关键技术点在于:
1.采用机器学习的决策树算法将加密流量中能早期分类的流与不能早期分类的流进行分离。
2.使用少数的几个早期数据报文的报文长度、传输控制协议层的窗口大小值以及数据报文之间的到达时间间隔,构建能准确快速分离加密流量的特征向量。
3.使用较多数据报文的TCP负载长度值构建能将加密流量的准确分类报文长度序列特征。
利用本发明的方法可以实现对混杂网络流量的快速准确分类,与已公开的相关技术相比,具有如下优点:
1.设计了一种多阶段处理操作的系统框架,避免了所有流量进行一致化处理带来的局限性。该框架可以很好的权衡速度与精度之间的关系,并且能够极大的减少不必要的时间开销,在保证高速度的同时,也保证了高精度的效果。
2.该设计将多棵决策树的规则进行融合构成早期快速检测模型,该融合过程结合了集成的思想,相比于普通的决策树规则而言,具有更高的可靠性和泛化能力,能够快速、准确的将能早期分类的流与不能早期分类的流进行分离和分类。
3.设计了一种基于TCN的细粒度分类模型,该网络模型能够高准确率识别出不能早期分类流的所属应用类型,并且该模型避免了传统RNN类模型在处理序列化数据时只能顺序处理的局限性。它并行的处理序列化数据,充分利用GPU的并行化计算资源,以提高分类的速度。
附图说明
图1是快速、准确的加密流量分类方法及系统的模型构建流程图。
图2是残差卷积模块结构图。
图3是快速、准确的加密流量分类方法及系统的分类阶段流程图。
图4是快速、准确的加密流量分类方法及系统的工作流程结构图。
图5是二十八种应用在验证集上的实验结果图。
图6是二十八种应用在测试集上的实验结果图。
具体实施方式
本发明的工作流程,可分为模型构建阶段和分类阶段。在模型构建阶段,根据已标记类别的TLS加密流的基础属性组以及基础属性序列作为输入,构建分类阶段的早期快速检测模型与精细化分类模型。在分类阶段,基于模型构建阶段获得的早期快速检测模型与精细化分类模型,对网络环境中获取到的真实、未标记的TLS加密流进行分类。
模型构建阶段中,本发明的关键技术部分在于TLS加密流分类模型的构建,TLS加密流分类模型包含两个子模型,分别是早期快速检测模型和细粒度分类模型,其构建流程如图1所示。该构建过程的输入是已标记的TLS加密流的数据报文序列集合,输出为可用于TLS加密流快速、准确分类的应用分类模型。
模型构建阶段1中,本发明首先基于CART(分类与回归树)算法来构建早期快速检测模型,其具体实施步骤如下:
1.给定已标记的流序列集合作为输入,并对集合中每条流序列进行短序列预处理。
首先,对每条流序列中少数的早期数据报文进行截取或填充操作。具体地说,本步骤截取每一条流序列的前h1个数据报文,若流序列数据报文数大于等于h1,则截取该流序列的前h1个数据报文;否则,则在该流序列后面填充数据报文,使流序列数据报文数达到h1,其中,填充的数据报文的基础属性值全为0,得到定长流序列集合。
然后,对定长流序列集合中每条流序列进行基础属性提取操作。本发明在模型构建阶段1提取每条流序列中每个数据报文的三个基础属性,分别是报文长度、窗口大小、时间间隔大小。得到定长的特征短序列集合集合中每条特征短序列对应的应用标签集合
其中,N表示应用种类数,表示第m条特征短序列对应的应用标签。另外,M表示集合D1中包含M条特征短序列,h1代表每条特征短序列的有h1个数据报文,(Lm,h,Wm,h,Tm,h)表示第h个数据报文的三个基本属性的属性值大小,Lm,h代表第m条流的第h个数据包中的报文长度值;Wm,h代表第m条流的第h个数据包的传输控制协议层的窗口大小值;Tm,h代表第m流的第h个数据包的到达时间与该流的第h-1个数据包的到达时间的差值分段处理过的结果,值得注意的是,第一个数据包的Tm,0默认为0。具体地说,首先,将数据包之间的差值放大10000倍,然后取该放大数值的整数部分值,最后对该整数部分数值进行分段处理。这里的放大倍数可以根据实际情况进行调整。为了便于描述分段处理过程,本发明暂且将整数部分值记为x。当0≤x<1000,则当1000≤x<10000,则当10000≤x,则
该步骤中,Lm,h的取值范围为(0,1500]的整数,Wm,h的取值范围为(0,65535]的整数,Tm,h的取值范围为[0,+∞)的整数。
2.在早期快速检测模型构建前,需要对模型参数进行设置以及对集合D1中的数据进行处理操作。首先,对本阶段模型的参数进行设置,其中包括模型中决策树的数量I、及其树分裂的终止条件。然后,对每条特征短序列进行展开得到形如 的特征短序列集。最后,将展开的特征统一用E代替,得到新的样本集其中H=3*h1。
3.对样本集D″1进行划分。设置一个参数α=0.632作为划分比例系数,其中α的取值是依据Bagging思想中的结论。划分过程是从样本集D″1中随机抽取条样本,作为构建第i棵决策树的样本集(其中i表示第i棵决策树,i的取值范围为[1,I]的止整数)。
为便于理解,后续基于CART算法的决策树构建步骤中,将以集合D″1,i作为输入数据来描述第i棵决策树的构建过程。
4.基于样本集D″1,i和节点可再分条件(节点再划分所需的最小样本数为2且叶节点中的样本数至少为1),从根节点开始,用样本集D″1,i递归地建立一棵决策树。令当前节点的样本集为D″(i,j)(i表示第i棵决策树,j表示当前节点的编号)。特别注意的是,当前节点为根节点时,令该节点编号为0,且该根节点对应的样本集D″(i,0)=D″1,i。
4.1对于样本集D″(i,j)的基尼指数表达式:(其中N表示TLS加密流的应用类型种类数,|Cn|表示在样本集D″(i,j)中样本标签为n的样本个数,|D″(i,j)|表示样本集D″(i,j)中样本的总数)。样本集D″(i,j)的每个样本都是一个H维的向量,每个维度作为一种特征,则得到特征集合F∈{F1,F2,...,Fg,...,FH},从第一个特征开始到最后一个特征结束,对于所有可能的分割点(该节点样本集中该特征假定的所有取值)处分割一个特征。设f为特征F中的一个可能取值,并根据此特征及特征值作为该节点样本集D″(i,j)待切分点,将样本集D″(i,j)划分成子样本集D″(i,j,1)和D″(i,j,2),则在F=f的条件下,样本集D″(i,j)的基尼指数表达式为:
4.2在所有可能的待切分点中选择基尼指数最小的特征及其特征值作为最优切分点,将样本集D″(i,j)划分为两个子样本集D″(i,j,1)和D″(i,j,2),并将两个子样本集分别作为左右子结点的样本集。
4.3将步骤4.1和步骤4.2重复应用于每个非叶子节点中,直到所有节点不再满足节点可再分条件,得到基于CART算法构建的决策树Ti。
5.决策树剪枝。对于CART算法构建的决策树采用代价复杂性剪枝(cost-complexity pruning)算法进行剪枝,该剪枝算法是一种后剪枝方法。
6.模型生成。重复步骤4和步骤5,根据不同的数据集D″1,i∈{D″1,1,D″1,2,.....D″1,I}构建I棵基于CART算法的决策树。将构建的I棵决策树的规则集合进行融合,得到早期快速检测模型。
模型构建阶段2中,本发明其次基于TCN(时间卷积网络)模型来构建精细化分类模型,其具体实施步骤如下:
1.给定已标记的流序列集合作为输入,并对集合中每条流序列进行长序列预处理。
首先,对每条流序列中一定数量(多于模型构建阶段1中每条流所使用的数据报文个数)的数据报文进行截取或填充操作。具体地说,本步骤截取每一条流序列的前h2个数据报文,若流序列数据报文数大于等于h2,则截取该流序列的前h2个数据报文;否则,则在该流序列后面填充数据报文,使流序列数据报文数达到h2,其中,填充的数据报文的基础属性值全为0,得到定长流序列集合。
其中,N表示应用种类数,表示第m条流序列对应的应用类型标签。另外,M表示集合D2中包含M条流序列,h2代表每条流序列的有h2个数据报文,Lm,h代表第m条流的第h个数据包中的报文长度值,Lm,h的取值范围为[0,1500]的整数。
2.经过长序列预处理流序列需要进行数据独热编码处理。以集合D2中的第m条流序列的第h个数据Lm,h为例,对的Lm,h进行独热编码处理,转换为维度为C的独热向量,其中C=1500。对于数据Lm,h转换为维度为C的独热向量E(m,i),其中E(m,i)表示为第Lm,h位元素取值为1,除第Lm,h位以外其余元素取值均为0的C维向量,E(m,i)=(0,...,1,...,0)T。所有的基础属性序列的序列元素经过独热处理后得到集合D′2,其中该步骤中的T为矩阵的转置。
3.在开始神经网络模型训练前,对神经网络中的可训练参数进行初始化。神经网络参数初始化可以通过加载现有的模型参数、随机初始化、自定义初始化等方法进行。在本模型构建过程中,使用随机初始化的方法为神经网络中的可训练参数赋予初始值。值得注意的是,本模型中有两个重要参数,一个是每层残差卷积模块层的卷积核数(其中S表示总共有S层残差卷积模块层,对于第s层残差卷积模块,Us表示输出通道数(即卷积核数),Us-1表示输入通道数;当s=1时,令U0为输入通道数),另一个是膨胀卷积核的初始大小K。
4.2D卷积特征提取操作的输入数据的维度为(h2×C);在第1维度进行维度扩充,且扩充的大小为1,该扩充值作为输入的通道数,维度扩充后输入数据形式变换为(1×h2×C)。然后使用U0个大小为(1×C)的卷积核,进行步长为(1×1)的2D卷积操作;经2D卷积操作后的输出数据维度为(U0×h2×1),最后将输出数据进行压缩,得到维度为(U0×h2)的数据其中且该数据Xm作为TCN模型训练过程的输入数据。
5.残差卷积模块结构如图2所示。以输入数据Xm作为讨论对象,描述其经过第s+1层隐含残差卷积模块处理过程中数据的转换操作及其维度变换过程。其中,对于第l+1层隐含残差卷积模块处理过程的输入数据为第s层的输出数据其中其输出数据为其中
首先,对于输入数据进行扩张性因果卷积处理,在此过程中的主要参数有输入通道数为Us,卷积核大小为(K,),输出通道数(即卷积核个数)为Us+1,膨胀系数d为2s,填充系数为pad=(K-1)*2s,步长为stride=1,其他均取默认值。经过扩张性因果卷积处理后数据维度转换为(1×Us+1×h′2),其中然后,对扩张性因果卷积处理后的数据进行权重归一化处理。以临时变量x作为输入,临时变量y作为输出为例,计算过程满足y=φ(w*x+b),其中,临时变量w为权重系数,通过损失函数与梯度下降对网络进行优化的过程就是求解最优w的过程,临时变量b表示偏置项。然后,对权重归一化处理后的数据进行剪枝操作。通过权重归一化操作后的数据维度为(1×Us×h′2),再将数据进行剪枝处理。其中剪枝处理是仅保留h′2维中的前h2维数据,所以剪枝后数据维度为(1×Us×h2)。然后,对剪枝后的数据进行整流线性单元(ReLU)处理,其主要作用是将数据中所有负值归零。再然后,进行随机失活(dropout)处理。其中主要根据随机失活系数p,将隐藏层单元以概率p随机停止工作,目的是为了防止过拟合。
最后,重复进行一次扩张性因果卷积处理、权重归一化处理、剪枝处理以及随机失活处理得到临时数据与第s+1层输入数据进行特征残差融合处理,并将融合后的数据进行整流线性单元(ReLU)处理得至该输出数据作为第s+2层的输入数据。
6.重复步骤5,直到完成S层残差卷积模块处理操作得到数据 其中然后仅保留第三维度的最后一组数值,得到该数据维度变换为(1×US×1),并将该数据进行拉伸压平操作,使其维度变换为(1×US),再将拉伸压平后的数据输入到全连接层(fully connected layer)进行线性变换操作,其中全连接层的层数以及隐藏单元数,可以根据实际情况进行微调。经过全连接层后,数据维度变为(1×N),其中N为应用类型标签种类数。最后,经过log似然代价函数确定出流序列应用类型标签,并通过反向传播操作实现对精细化分类模型的构建。
分类阶段的工作流程如图3所示,该阶段根据模型构建阶段所得到的早期快速检测模型和细粒度分类模型,对每个原始的无标签加密流量进行快速、准确的分类。对于一条流序列,首先要经过早期快速检测处理模块,并通过该模块的短序列预处理对未标记流序列进行处理,得到具有三个基础属性(报文长度、窗口大小以及时间间隔)的定长流序列。然后,早期快速检测器根据短序列预处理生成的定长特征短序列将未标记的流分为两类,可以早期分类的流和不能早期分类的流。二次分类选择器输出可以早期分类流的预测标签,并将不能早期分类的流输入到细粒度分类处理模块。对于细粒度分类处理模块来说,该模块等待不能早期分类的流的数据报文到达,当足够的数据报文到达时,对流序列进行长序列预处理以提取每个数据报文的报文长度,并形成用于细粒度分类模型的定长独热表征长序列。最后,细粒度分类模型根据定长独热表征长序列对不能早期分类的流进行精细分类,并输出预测标签。下面具体介绍每一部分:
1.早期快速分类处理模块包括两个部分,分别是短数据预处理和早期快速检测器。下面我们详细描述这两个部分。
1.1短序列预处理主要负责将数据格式化处理成早期快速检测器的输入数据。首先对流序列集合的样本进行数据报文填充或截取,使得流序列中包含h1个数据报文,然后对每一个数据报文进行基础属性提取,提取报文长度、窗口大小以及时间间隔,并对这些基础属性进行处理,形成用于早期快速检测的定长特征短序列。
1.2早期快速检测器依据模型构建阶段1生成的早期快速检测模型来将未标记的流序列划分为可以早期分类的流与不能早期分类的流,并生成可以早期分类流的预测标签。具体地说,以短序列预处理输出的格式化数据作为输入,各决策树生成的预测标签(其中对于单棵树来说,保留从Gini=0的叶子节点预测出的标签值,其他叶子节点预测出的标签值更改为“-1”)。然后设置一个标签数量阈值,当同一流序列的同一标签值统计数量大于等于该阈值且标签不为“-1”时,那么就输出该流的预测标签,否则输出的预测标签为“-1”。
2.二次分类选择器根据早期快速检测处理模块对未标记的TLS流的预测标签判断该流为可以早期分类的流还是不可以早期分类的流。具体的说,二次分类选择器认为预测标签为“-1”的流为不可以早期分类的流,并将其输入细粒度分类处理模块;认为预测标签不为“-1”的流为可以早期分类的流,并输出其预测标签。
3.细粒度分类处理模块包括两个部分,分别是长序列预处理和细粒度分类。下面我们详细描述这两个部分。
3.1长序列预处理主要针对在早期快速检测器预测出来的标签为“-1”的TLS加密流。
对于该流,长序列预处理先进行数据报文填充或截取,使得流序列中包含h2个数据报文,并提取这些数据报文的报文长度属性。然后按数据报文的到达顺序将报文长度排列形成定长报文长度序列。最后,将统一长度序列的流序列数据,转换为独热的表达形式。
3.2细粒度分类模块依据模型构建阶段2生成的细粒度分类模型,以经过长序列数据预处理的格式化数据作为输入,进行2D卷积特征提取并将提取的特征输入到TCN中,
从而获得该输入流的预测标签。
本发明在实际应用过程中,可根据方法在不同数据集上的分类效果、可分类应用协议类型的变动等因素,通过调整模型参数,重新构建模型。保证本发明性能满足TLS加密流分类的需求。
结合上述的一种快速、准确的加密流量分类方法,本发明同时公开了一种快速、准确的加密流量分类方法及系统。本系统主要由模型构建阶段和分类阶段两个阶段构成,系统图架构如图4所示。其中模型构建阶段分成两个子阶段,分别是模型构建阶段1和模型构建阶段2。
1.模型构建阶段1:首先,以已标记的加密流量为输入,由(1.1)短序列预处理将数据格式化处理成早期快速检测器的输入数据。首先对流序列集合的样本进行数据报文填充或截取,使得流序列中包含少数的h1个早期数据报文,然后提取每一个数据报文的报文长度、窗口大小以及时间间隔,并对这些基础属性进行处理,形成用于构建早期快速检测模型的定长流序列。(1.2)早期快速检测模型构建模块使用短序列预处理生成的已标记的流序列集合,对本模块的早期快速检测模型进行构建,使早期快速检测模型的性能满足早期快速检测的分类需求。早期快速检测模型构建模块的输出是能检测一条加密流量是否可以早期分类的早期快速检测模型。
2.模型构建阶段2:首先,以已标记的加密流量为输入,由(2.1)长序列预处理将数据格式化处理成细粒度分类模型构建的输入数据。首先,通过截断或填充的方式对流序列的数据报文个数进行调整,使流序列中包含h2个数据报文。然后仅提取每一个数据报文的报文长度属性,并将这些报文长度按数据报文的到达顺序排列,形成定长报文长度序列。最后,将统一长度序列的流序列数据,进行独热编码处理。(2.2)细粒度分类模型构建模块使用长序列预处理生成的已标记的格式化数据集合,对本模块的细粒度分类模型进行构建,使细粒度分类模型的性能满足高精度分类的分类需求。细粒度分类模型构建模块的输出是能将不能早期分类的流进行精细化分类的细粒度分类模型。
3.分类阶段:分类阶段以未标记的加密流量作为输入,由(1.1)短序列预处理将数据格式化处理成早期快速检测器的输入数据。首先对流序列集合的每一个样本进行数据报文填充或截取,使得流序列中包含少数的h1个早期数据报文,然后提取每一个数据报文的报文长度、窗口大小以及时间间隔,并对这些基础属性进行处理,形成用于早期快速检测的定长流序列。最终,得到待测数据集。(1.2)早期快速检测器以待测数据集为输入,使用模型构建阶段1所生成的早期快速检测模型,对待测数据集中的各个样本进行早期检测,将能早期分类的流样本与不能早期分类的流样本进行检测,并将检测结果发送给二次分类选择器。(2)二次分类选择器以早期快速检测处理模块的生成结果作为输入,对于早期快速检测器不能早期分类的加密流量序列输入给(3.1)长序列预处理,把早期快速检测模块能早期分类的加密流量输出其预测标签。(3.1)长序列预处理以二次分类选择器模块确定的标签为“-1”的流序列作为输入。首先,通过截断或填充的方式对流序列的数据报文数量进行调整,使得流序列中包含h2个数据报文。然后对每一个数据报文进行基础属性提取,且仅提取报文长度。然后将报文长度按照数据报文到达的顺序进行排列,形成定长报文长度序列。最后,将定长的长度序列转换为独热编码的表达形式,作为细粒度分类器的待测数据。(3.2)细粒度分类器根据模型构建阶段2所生成的细粒度分类模型,对待测数据集中的各个样本进行类型判别。分类阶段的输出结果为未标记的加密流量所对应的预测标签。
在验证实验中,本发明对Airbnb、Alipay、Amap、Baidumap、Baidusearchbox、Blued、Booking、Ctrip、Eleme、Facebook、GitHub、Instagram、JD、LinkedIn、Meituan、NeteaseCloudMusic、Pandora、Pinduoduo、Reddit、Taobao、TikTok、Toutiao、TripAdvisor、Twitter、Vipshop、Weibo、Yirendai、Zhihu二十八种不同应用类型的加密流量开展实例验证。实验中所使用的具体网络流量信息如表1所示。其中,对于每个应用类别,随机地选择了5千个样本。因此,总共有140K个(28个类别*5K)样本构成了实验数据集。此外,在实验数据集上开展了5折交叉验证,其中训练集,验证集和测试集的比例为3:1:1。
表格1:实验验证中所使用的应用协议名称及各个类别的网络流量信息,其中G代表109,M代表106,K代表103。
实验展示了三种超参数形成的不同分类器的分类效果,超参数包括:(1)细粒度模型中初始化时卷积核的大小的不同取值(用K来表示);(2)细粒度模型中所用的到报文长度个数的不同取值(用H来表示);(3)细粒度分类模型残差卷积模块层数的不同取值(用L来表示)。在不同超参数设置的情况下分别进行实验,并将本发明与现有的基于深度学习的网络流量分类方法进行对比。
首先,定义实验分析指标分为两类如下:
一、分类时间相关指标:
(1)早期甩出率,Cov,其具体的定义如下:
(2)n个数据报文平均等待时间,tn,其具体的定义如下:
(3)网络流量分类花费的时间,由Time表示:该值主要是等待数据报文的所花费的时间。其中包含早期检测等待n1个数据报文花费的时间与细粒度分类等待n2个数据报文花费的时间,具体定于如下。
快速、准确的加密流量分类方法与系统在二十八种应用下的时间花费结果如下表所示。
表格2:现有的基于深度学习的网络流量分类方法时间花费对比实验结果
从表格2中可以明显地观察到,本发明在实验数据集上的一条流分类等待数据报文的时间是0.7527秒-1.218秒,优于现有的基于深度学习的分类方法和系统(Fs-Net、SMC)的时间花费。此外,为了够保持较高的准确率,本发明选择早期检测采用4个数据报文,细粒度分类选择16个数据报文,Fs-Net是本发明的方法时间花费的4.9倍,SMC是本发明的3.97倍。因此,本发明的方法在加密流量快速分类中具有绝对的优势
首先,定义实验分析指标如下:
(1)类别t的真阳值,由TPt表示:该值是一组样本的个数,其中每个样本由网络流量分类器报告为属于类别t,并且确实是属于相应的类别t。
(2)类别t的真阳率,TPRt,其具体的定义如下:
(3)多类别分类准确性指标Accuracy,定义如下:
其中T代表总的分类类别数。
快速、准确的加密流量分类方法与系统在二十八种应用下的实验结果如图5所示
在训练阶段,本发明使用验证集来定量评估不同分类器的分类性能。如图5所示,对于不同的参数设置,45个分类器在验证数据集上的ACC平均数值在96.740%–97.153%的范围内变化。值得注意的是,H值的对分类的准确率有着较大的影响,通常随着H的增大,分类ACC数值通常上升。但是当H值超过16时,分类准确率相对稳定。对于二十八种类型的应用的验证数据集,本发明观察到N参数的最佳值为K=13,H=16和L=4。此外,测试数据集上所有45个分类器的实验评估结果如图6所示。对于K,H和L的所有可能取值,测试集上分类ACC数值在96.651%–97.179%的范围内变化。在验证数据集上表现最佳的K=13,H=16和L=4的分类器,其在测试数据集上的分类ACC平均数值为97.047%。
表格3:现有的基于深度学习的网络流量分类方法对比实验结果
从表格3中可以明显地观察到,本发明在实验数据集上的平均分类准确率是97.055±0.708,优于现有的基于深度学习的分类方法和系统(Fs-Net、SMC)的分类准确率。此外,在Airbnb、Alipay、Amap、Baidumap、Baidusearchbox、Blued、Booking、Ctrip、Eleme、Facebook、GitHub、Instagram、JD、LinkedIn、Meituan、NeteaseCloudMusic、Pandora、Pinduoduo、Reddit、Taobao、TikTok、Toutiao、TripAdvisor、Twitter、Vipshop、Weibo、Yirendai、Zhihu二十八种类型的网络流量中的二十四种上,都展现出了更好的分类准确率。
Claims (8)
1.一种快速、准确的加密流量分类方法,其特征在于,包括模型构建阶段和分类阶段;
所述模型构建阶段包括两部分,即模型构建阶段1和模型构建阶段2:
所述模型构建阶段1包括如下步骤:
1)以已标记的流序列集合为输入,通过截取或填充的方式使每一条流序列的仅保留少数的、固定数量的几个早期数据报文,然后对每一个数据报文进行基础属性提取,并形成按报文出现顺序排列的定长特征短序列;
2)以步骤1)得到的定长特征短序列作为输入,形成离线训练数据集,采用有监督学习的方式,构建能快速区分能早期分类流与不能早分类流的早期快速检测模型;
所述模型构建阶段2包括如下步骤:
3)以已标记的流序列集合为输入,通过截取或填充的方式使每一条流序列保留较多的、固定数量的数据报文,然后对每一个数据报文进行基础属性提取,并按照报文出现顺序排列成定长的特征长序列,最后采用独热编码将定长特征长序列转换为定长的独热表征长序列;
4)以步骤3)得到的定长的独热表征长序列作为输入,形成离线训练数据集,采用有监督学习的方式,构建能够对加密流进行精细化分类的细粒度分类模型;
所述分类阶段包括如下步骤:
5)以未标记的流序列为输入,进行与模型构建阶段1中步骤1)相同的短序列预处理操作将待测流序列转换为定长特征短序列;
6)根据模型构建阶段1中步骤2)得到的早期快速检测模型,判断该目标流量是能早期分类的流还是不能早期分类的流,并做不同的标记;
7)根据每条目标流量在分类阶段中步骤6)生成的早期检测标记进行判断,对于能早期分类的流输出其对应的预测标签,对于不能早期分类的流传送到后续模块;
8)对分类阶段中步骤7)中不能早期分类的流进行与模型构建阶段2中步骤3)相同的长序列预处理操作,生成定长的独热表征长序列;
9)以分类阶段中步骤8)生成的定长独热表征长序列为输入,采用模型构建阶段2中步骤4)生成的细粒度分类模型对不能早期分类的目标流量进行精细化分类,并输出其预测标签。
2.如权利要求1所述的一种快速、准确的加密流量分类方法,其特征在于,步骤1)进行短序列预处理的具体操作方法是:
1-1)根据短序列预处理模块指定的数据报文个数,通过截取或填充的方式对每条流序列中少数的早期数据报文个数进行调整,使每条流序列仅包含指定数量的几个早期数据包;丢弃流序列中超出指定数量的数据报文、对不足指定数量的流序列在尾部填充基础属性全为零的数据报文;
1-2)在指定数据报文数量的流中,提取流中每个数据报文的报文长度、窗口大小以及数据报文到达时间间隔,并对数据报文到达时间间隔进行分段处理;然后,对这些基础属性以每个数据包的三个基础属性(报文长度、窗口大小、时间间隔)为单位、按照报文出现的顺序进行排列,形成定长的特征短序列。
3.如权利要求1所述的一种快速、准确的加密流量分类方法,其特征在于,步骤2)构建所述早期快速检测模型的方法是:
2-1)以步骤1)得到的定长特征短序列集合为训练集作为输入,采用随机采样的方式对训练集合进行子集构建操作,从而构建出多个包含有固定数量样本的训练样本子集;
2-2)以步骤2-1)得到的多个训练样本子集为输入,对每一个训练样本子集都采用基于CART(分类与回归树)算法的建树操作,从而得到多棵决策树;
2-3)以步骤2-2)得到的多棵决策树为输入,对每棵决策树中的Gini为零的叶子节点进行规则生成操作,得到用于判别流序列是否可以早期分类的规则集;
2-4)以步骤2-3)得到的多个规则集为输入,进行规则融合操作,得到包含各个规则集的融合规则集,并输出由融合规则集构成的早期快速检测模型。
4.如权利要求1所述的一种快速、准确的加密流量分类方法,其特征在于,步骤3)进行长序列预处理的具体操作方法是:
3-1)根据长序列预处理模块指定的数据报文个数,通过截取或填充的方式对每条流序列中较多的数据报文个数进行调整,使每条流序列包含指定数量的早期数据包;丢弃流序列中超出指定数量的数据报文、对不足指定数量的流序列在尾部填充基础属性全为零的数据报文;
3-2)在指定数据报文数量的流中,仅提取流中每个数据报文的报文长度,并对这些报文长度属性按照报文出现的顺序排列形成定长的特征长序列;
3-2)在定长的特征长序列中,设流序列中每个报文长度可能的取值构成一个集合,且该集合的基数为C,将所有字节转换为长度与C相等的独热向量,其特征在于,除代表该字节实际取值的一位为1之外,向量其余各位为0。
5.如权利要求1所述的一种快速、准确的加密流量分类方法,其特征在于,步骤4)构建所述细粒度分类模型的方法是:
4-1)以步骤1)得到的定长独热表征长序列为输入,使用单层2D卷积神经网络结构进行初始特征变换操作,将单通道、离散取值的定长独热表征序列转换为多通道、连续取值的流序列初始表征向量;
4-2)以步骤4-1)得到的初始表征向量为输入,使用深层的时间卷积网络(TCN,Temporal Convolutional Network)结构,进行深度特征提取操作,得到流的深度特征向量;
4-3)以步骤4-2)得到的深度特征向量为输入,使用具有RELU激活功能的三层全连接层,进行特征压缩操作,得到低维度的特征向量;
4-4)以步骤4-3)得到的低维度的特征向量为输入,使用Softmax分类器得到特征向量在不同应用的概率分布,并将概率最大的应用标签作为预测标签;
4-5)以步骤4-4)得到预测标签与步骤3)中的流序列的真实标签为输入,计算模型分类准确率、损失函数值等指标,若指标满足终止条件,则停止模型构建流程,输出细粒度分类模型;若指标不满足终止条件,则重复步骤4-1)~步骤4-5)。
6.如权利要求5所述的一种快速、准确的加密流量分类方法,其特征在于,步骤4-1)所述的初始特征变换操作的具体操作方法是:
使用2D卷积神经网络层,设流序列中每个报文长度可能的取值构成一个集合,且该集合的基数为C,则其卷积核尺寸为(C×1),将流序列的独热表征长序列转换为流表征向量,将每个报文长度的单一离散表示转换为多重语义嵌入表示,使初始表征向量具有更复杂的表达能力。
7.如权利要求5所述的一种快速、准确的加密流量分类方法,其特征在于,步骤4-2)所述的深度特征提取操作的具体操作方法是:
4-2-1)以步骤4-1)得到初始表征向量为输入,设共有S层卷积层,其中,对于第s+1(s+1∈{1,2,…,S})层卷积层包含两层卷积核尺寸为K、膨胀系数为2s、填充系数为(K-1)*2s的1D扩张性因果卷积层,对于每一层扩张性因果卷积特征信息提取后都需要对特征进行裁剪使得输入和输出的特征长度保持一致;
4-2-2)对于每层卷积层生成的特征向量与该层输入的特征向量进行特征残差融合处理;
4-2-3)在各扩张性因果卷积层后可附加功能性操作,包括但不局限于激活函数(activation)、归一化(normalization)、随机丢弃(dropout)及其他功能性操作,可根据网络训练和性能的实际需求进行配置;
4-2-4)对第1层特征残差融合生成的特征向量进行特征选择,得到深度卷积向量。
8.一种快速、准确的加密流量分类系统,其特征在于,包括用于模型构建阶段的模型构建阶段1和模型构建阶段2,以及用于分类阶段的早期快速检测处理模块、细粒度分类处理模块;其中,
模型构建阶段1模块从输入的原始网络流量数据中,提取早期数据报文的基础属性,并按照报文出现顺序排列成定长的特征短序列;然后,对短序列训练数据进行模型构建,生成早期快速检测模型;
模型构建阶段2模块从输入的原始网络流量数据中,提取更多数据报文的基础属性,并顺序排列成定长的特征长序列,并转换为独热向量形式;根据生成的独热向量形式的长序列训练数据进行模型构建,生成细粒度分类模型;
分类阶段对采集网络流量并根据模型构建阶段1生成的早期快速检测模型进行早期快速检测处理,将能早期分类的流和不能早期分类的流进行不同标记;然后根据早期检测处理得到结果进行二次分类选择判别,将能早期分类的流输出其预测标签,将不能早期分类的流输出给后续模块;最后,根据模型构建阶段2生成的细粒度分类模型对不能早期分类的流进行精细化分类,并输出其预测标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110999637.6A CN114330469A (zh) | 2021-08-29 | 2021-08-29 | 一种快速、准确的加密流量分类方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110999637.6A CN114330469A (zh) | 2021-08-29 | 2021-08-29 | 一种快速、准确的加密流量分类方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114330469A true CN114330469A (zh) | 2022-04-12 |
Family
ID=81045151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110999637.6A Pending CN114330469A (zh) | 2021-08-29 | 2021-08-29 | 一种快速、准确的加密流量分类方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114330469A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115409114A (zh) * | 2022-08-31 | 2022-11-29 | 济南永信新材料科技有限公司 | 一种数据流两阶段早期分类方法 |
CN115795318A (zh) * | 2022-11-17 | 2023-03-14 | 北京白龙马云行科技有限公司 | 用例对象的归类方法、模型训练方法、设备和存储介质 |
CN117313004A (zh) * | 2023-11-29 | 2023-12-29 | 南京邮电大学 | 一种在物联网中基于深度学习的QoS流分类方法 |
-
2021
- 2021-08-29 CN CN202110999637.6A patent/CN114330469A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115409114A (zh) * | 2022-08-31 | 2022-11-29 | 济南永信新材料科技有限公司 | 一种数据流两阶段早期分类方法 |
CN115795318A (zh) * | 2022-11-17 | 2023-03-14 | 北京白龙马云行科技有限公司 | 用例对象的归类方法、模型训练方法、设备和存储介质 |
CN117313004A (zh) * | 2023-11-29 | 2023-12-29 | 南京邮电大学 | 一种在物联网中基于深度学习的QoS流分类方法 |
CN117313004B (zh) * | 2023-11-29 | 2024-03-12 | 南京邮电大学 | 一种在物联网中基于深度学习的QoS流分类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ren et al. | Tree-RNN: Tree structural recurrent neural network for network traffic classification | |
CN114330469A (zh) | 一种快速、准确的加密流量分类方法及系统 | |
CN112508085B (zh) | 基于感知神经网络的社交网络链路预测方法 | |
WO2022257436A1 (zh) | 基于无线通信网络数据仓库构建方法、系统、设备及介质 | |
CN112732921B (zh) | 一种虚假用户评论检测方法及系统 | |
Soleymanpour et al. | CSCNN: cost-sensitive convolutional neural network for encrypted traffic classification | |
CN111078876A (zh) | 一种基于多模型集成的短文本分类方法和系统 | |
CN116260642A (zh) | 一种基于知识蒸馏时空神经网络的轻量化物联网恶意流量识别方法 | |
CN111130942B (zh) | 一种基于消息大小分析的应用流量识别方法 | |
Lin et al. | An efficient approach for encrypted traffic classification using CNN and bidirectional GRU | |
Yan et al. | TL-CNN-IDS: transfer learning-based intrusion detection system using convolutional neural network | |
Ali et al. | Fake accounts detection on social media using stack ensemble system | |
Chen et al. | An efficient network intrusion detection model based on temporal convolutional networks | |
Chen et al. | RIDE: Real-time Intrusion Detection via Explainable Machine Learning Implemented in a Memristor Hardware Architecture | |
CN104468276A (zh) | 基于随机抽样多分类器的网络流量识别方法 | |
Zhang et al. | Extracting optimal explanations for ensemble trees via logical reasoning | |
CN114358177B (zh) | 一种基于多维度特征紧凑决策边界的未知网络流量分类方法及系统 | |
CN116827873A (zh) | 一种基于局部-全局特征注意力的加密应用流量分类方法及系统 | |
CN116451139A (zh) | 一种基于人工智能的直播数据快速分析方法 | |
Casalino et al. | Enhancing the dissfcm algorithm for data stream classification | |
Vikas et al. | User Gender Classification Based on Twitter Profile Using Machine Learning | |
CN116340814A (zh) | 加密流量分类方法、装置、电子设备和计算机可读介质 | |
Nishadi | Text Analysis: Naïve Bayes Algorithm using Python JupyterLab | |
Huang | Research on sentiment classification of tourist destinations based on convolutional neural network | |
Sulayman et al. | Data analytics methods for anomaly detection: Evolution and recommendations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |