CN113746707B - 一种基于分类器及网络结构的加密流量分类方法 - Google Patents
一种基于分类器及网络结构的加密流量分类方法 Download PDFInfo
- Publication number
- CN113746707B CN113746707B CN202111311502.2A CN202111311502A CN113746707B CN 113746707 B CN113746707 B CN 113746707B CN 202111311502 A CN202111311502 A CN 202111311502A CN 113746707 B CN113746707 B CN 113746707B
- Authority
- CN
- China
- Prior art keywords
- cost
- traffic
- classifier
- sensitive
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012549 training Methods 0.000 claims abstract description 45
- 239000011159 matrix material Substances 0.000 claims abstract description 33
- 238000007781 pre-processing Methods 0.000 claims abstract description 16
- 238000005206 flow analysis Methods 0.000 claims abstract description 7
- 238000004458 analytical method Methods 0.000 claims abstract description 6
- 230000002776 aggregation Effects 0.000 claims abstract description 5
- 238000004220 aggregation Methods 0.000 claims abstract description 5
- 238000012360 testing method Methods 0.000 claims description 18
- 230000000694 effects Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims description 4
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 238000005457 optimization Methods 0.000 claims description 4
- 238000011176 pooling Methods 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 8
- 238000013145 classification model Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Mathematical Optimization (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于分类器及网络结构的加密流量分类方法,属于加密流量识别领域。步骤如下:S1、通过所述网络流量收集模块进行网络流量收集;S2、通过所述流量数据预处理模块进行流量数据预处理;S3、通过所述流量解析模块进行流量聚合;S4、再通过所述流量解析模块进行计算代价矩阵;S5、通过所述分类器训练及优化模块进行分类器的训练;S6、通过所述分类器训练及优化模块进行分类器优化。本发明在较短的训练时间内可以获得较高的性能,适用于类别不平衡的数据集和特征提取困难的加密流量分类识别。
Description
技术领域
本发明涉及加密流量识别领域,具体涉及一种基于分类器及网络结构的加密流量分类方法。
背景技术
互联网技术的高速发展,在为人们生活带来便利的同时,也会被一些犯罪分子用于不法传输,这对网络空间的稳定性及安全性产生了极大的影响。使得网络安全问题越来越受到人们的关注,因此,全球加密网络流量不断飙升。虽然流量经过加密后再传输,使得传输数据的安全性得到保障,但也为流量的审计增加了难度。如果没有解密技术,IT团队将无法查看流量内包含的信息。这意味着加密能够像隐藏其他信息一样隐藏恶意流量,从而带来一系列蠕虫、木马和病毒。因此识别加密流量对于维护网络的安全运行具有十分重要的意义。
网络安全的威胁越来越受到人们的关注,针对其的识别受到研究者的青睐。加密流量的识别目前方法主要有4类:基于端口过滤、深度包检查(DPI)、统计方法和行为方法。然而,动态端口的出现使得基于端口的方法不再使用。基于DPI的方法因无法解密加密流量也变得无效。基于统计的方法和基于行为的方法是指,使用统计特征或行为特征的机器学习方法处理加密流量。然而,在利用机器学习进行流量识别时,需要设计一组反映网络流量的特征集,且该特征集直接影响分类性能,这需要耗费大量的成本。深度学习则能够通过训练自动提取和选择数据特征,应用于网络流量分类可有效解决特征集设计的问题,作为一种端到端方法,深度学习能够学习原始数据和目标输出之间的关系,有利于获得全局问题的最优解。然而,大多数基于深度学习的流量分类识别框架只使用单个分类器,这影响了大分类问题上的性能。
目前大部分网络流量分类研究都没有考虑网络流量不平衡的问题,研究基础都是基于各种网络应用流都是均匀分布在网络中,即网络数据流的应用类别是平衡的。然而,在现实的网络关口中进出的网络流量的类别分布很不均匀,比如通过加密协议承载的音、视频流远大于即时通信、纯网页加密流。网络数据越来越呈现出数据量大、维度高且不平衡的态势。因此实现对网络关口中少数类别的网络流量的高精度分类识别具有非常重要的现实意义。
发明内容
本发明针对现有技术中的不足,提供一种基于分类器及网络结构的加密流量分类方法,其在类别不平衡场景下对网络关口中进出的加密流量可以进行有效识别分类。
为实现上述目的,本发明采用以下技术方案:
本发明一种基于分类器及网络结构的加密流量分类方法,所述代价敏感CNN网络包括CNN网络和代价敏感层,所述CNN网络包含普通卷积层、池化层和全连接层,当所述CNN网络发生错误分类时,所述代价敏感层被激活,为少数类的错误分类分配高代价,为多数类的错误分类分配低代价,形成代价敏感CNN网络并构建成代价敏感CNN网络流量分类器;所述代价敏感CNN网络流量分类器呈树状结构,将数据集中的大分类划分为小分类,再为每个划分后的小分类设置一个特定的分类器进行流量的识别;所述代价敏感CNN网络包括网络流量收集模块、流量数据预处理模块、流量解析模块和分类器训练及优化模块;
所述加密流量分类方法包括以下步骤:
S1、通过所述网络流量收集模块进行网络流量收集:在网络关口中设置一个网络流量收集器用于捕获网络关口进出的网络数据流量,将捕获的网络数据流量按照会话的粒度进行分流,得到会话流;
S2、通过所述流量数据预处理模块进行流量数据预处理:将所述会话流按照一定的长度进行截断填充,并进行归一化处理,抽取部分流量数据用于最后的模型测试及调优;
S3、通过所述流量解析模块进行流量聚合:利用余弦相似性算法计算不同流量类型的相似性,将相似的流量类别聚合到一块,将所有流量样本分为若干部分,被聚合到一块的流量被称为子数据集,所述子数据集为训练所述代价敏感CNN网络流量分类器模型中相应节点的分类器,所述代价敏感CNN网络流量分类器通过代价敏感矩阵对少数类的错误分类赋予更高的代价,在每一次对少数类的错误分类都会根据代价敏感矩阵重新计算损失值并对模型的权重进行更新,使得之后模型在少数类进行分类时更加慎重;
S4、再通过所述流量解析模块进行计算代价矩阵:由所述代价敏感CNN网络流量分类器模型通过各类别样本数量和总样本数量计算各类别占比,依据各类别在子数据集中的占比计算获得各个子数据集的代价矩阵,并在代价敏感CNN网络流量分类器的训练过程中将该代价矩阵加入;所述代价矩阵根据各流量类别在数据集中的占比制定,然后应用于代价敏感CNN网络最后一层全连接层的输出,以根据各种代价改变网络的权重;
具体包括以下步骤:
S41、子数据集的流量类别数量为M,则生成一个M*M的代价矩阵r;
S42、将矩阵的对角线元素设置为0;
S5、通过所述分类器训练及优化模块进行分类器的训练:将各部分的流量数据输入到基于树状结构的代价敏感CNN网络流量分类器中,对分类器进行训练;
S6、通过所述分类器训练及优化模块进行分类器优化:利用S2中抽取的测试数据测试分类器性能,并对获得的指标结果分析,选择最优参数,优化分类器。
进一步地,步骤S1包括:定义TCP流:以三次握手建立连接时的SYN标志位为1的SYN包开始、以FIN标志位或以RST标志位为1的FIN或者RST包结束的TCP双向流。
进一步地,步骤S1包括:
定义UDP流为以第一个数据包到达为开始,如果两个数据包到达的时间间隔超过一分钟,则认为第一个数据包的数据流结束,第二个数据包的新数据流开始。
进一步地,步骤S2具体包括以下步骤:
S21、依次读取所捕获的网络流量经过流量预处理后得到的会话流,判断每个会话的长度是否大于784个字节;
S22、若会话长度超过784个字节,则执行截断,如果会话长度小于784个字节,则执行零填充;
S23、对流量数据进行归一化处理;
S24、按照一定比例抽取部分流量数据用于后续分类器的测试以及调优。
进一步地,步骤S3具体包括以下步骤:
S31、所捕获的所有流量的流量类别数量为N,分离所有流量数据的每个流量类别样本;
S32、将N设为根节点,在第一层令当前层s=1,计算N/2是否为整数,若为整数,则其左右子节点的流量类别数量为N/2,否则,左右子节点的类别数量分别为(N-1)/2、(N+1)/2;
S33、从左向右遍历当前层s的节点,假设s层节点d的流量类别数量为M,若M<4,标记该节点并停止划分,否则确定M/2是否为整数后,重复S32的操作;
S34、如果当前树的所有叶节点都被标记,则完成划分,否则重复S33的操作;
S35、利用余弦测量不同流量类别间的相似性,再根据各节点的流量类别数量M,将M个相似的流量类别样本放入同一数据集,作为该节点的训练数据,并为每个节点生成相应数据集,从而获得若干子数据集。
进一步地,步骤S5中对分类器的训练步骤包括如下:
S51、在所述CNN网络中加入代价敏感层,激活所述代价敏感层,形成代价敏感CNN网络流量分类器;
S52、用子数据集训练代价敏感CNN网络流量分类器,并将各代价敏感CNN网络流量分类器按节点顺序,排成树状结构,形成一个基于树状结构的代价敏感CNN网络流量分类器;
S53、用测试数据测试模型分类效果,调节模型参数;
S54、重复步骤S52和步骤S53,直至得到最优的基于树状结构的代价敏感CNN网络流量分类器。
进一步地,所述代价敏感层被激活过程主要分为以下3步:
指定实际和预测的流量类别;
利用代价矩阵r来确定误分类代价;
将指定的代价应用于实际的类别的输出和预测的类别的输出,形成实际的类别和预测的类别的新输出:
然后改变交叉熵函数,并引入新的代价函数;新的代价函数获得通过softmax函数计算得到的分类器的类别输出和其对应的概率向量值值作为输入,并返回每个类的损失值,在修改了实际和预测类别的输出之后,再次利用SoftMax函数使用如下方程计算预测和实际类别的新损失值:
最后将新的损失值应用到网络训练中。
有益效果
本发明使用基于树状结构的代价敏感CNN网络流量分类器,它利用树结构将全部流量类别划分为若干部分,每个部分包含多个类别,再为每个划分后的小分类设置一个代价敏感CNN网络流量分类器。通过多个分类器的协同工作,实现了各分类器在分类性能上的互补,解决了单个分类器的问题。由于多个分类器都是端到端框架,因此可以在不提取特征的情况下自动学习输入数据和输出数据之间的非线性关系。采用代价敏感CNN网络流量分类器,根据每个类别的占比生成代价矩阵,该矩阵用于在训练过程中为每个错误分类分配代价,少数类样本赋予高代价,多数类样本赋予低代价,使得网络对少数类样本更敏感,在训练过程中利用这些代价不仅解决了由于样本类别不平衡造成模型欠拟合或过拟合的问题,还提高了最终分类的准确性。本发明利用流量类别的分布来指定代价,通过对各种错误分类施加代价来训练对少数类更敏感的网络,有效解决了类别不平衡的问题。本发明识别率高,误报率低,适用于在网络流量类不平衡场景下对网络关口中监测的各类别网络流量实现高精度分类。
附图说明
图1为本发明代价敏感CNN网络的加密流量识别模型的示意图;
图2为图1的加密流量分类方法的流程图;
图3为图2的加密流量分类方法的具体展示;
图4为本发明的代价敏感CNN网络模型示意图;
图5为本发明6分类时基于树状结构的代价敏感CNN网络流量分类模型;
图6为本发明与基于树状结构的传统CNN网络流量分类模型分类结果对比图;
图7为本发明与对比实验指标精确率的结果对比图;
图8为本发明与对比实验指标召回率的结果对比图;
图9为本发明与对比实验指标F1-Measure的结果对比图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本发明的代价敏感CNN网络包括CNN网络和代价敏感层,所述CNN网络包含普通卷积层、池化层和全连接层,当所述CNN网络发生错误分类时,所述代价敏感层被激活,其为少数类的错误分类分配高代价,为多数类的错误分类分配低代价,形成代价敏感CNN网络并构建成代价敏感CNN网络流量分类器。所述代价敏感CNN网络流量分类器呈树状结构,将数据集中的大分类划分为小分类,再为每个划分后的小分类设置一个特定的分类器进行流量的识别。所述代价敏感CNN网络包括网络流量收集模块、流量数据预处理模块、流量解析模块和分类器训练及优化模块,如图1所示。
本发明提供了一种基于分类器及网络结构的加密流量分类方法,针对样本数据集的类别不平衡性和特征提取困难及单一分类器的问题,通过代价敏感CNN网络流量分类器,根据每个类别的占比生成代价矩阵,为少数类样本赋予高代价,多数类样本赋予低代价,使得网络对少数类样本更敏感,在训练过程中解决了数据集不平衡的问题,它利用树结构将全部流量类别划分为若干部分,每个部分包含多个类别,再为每个划分后的小分类设置一个代价敏感CNN网络流量分类器,由于多个分类器都是端到端框架,因此可以在不提取特征的情况下自动学习输入数据和输出数据之间的非线性关系,采用多分类器还实现了在分类性能上的互补,最后进行识别评估。
所述代价敏感CNN网络包括网络流量收集模块、流量数据预处理模块、流量解析模块和分类器训练及优化模块。如图2所示,本发明基于分类器及网络结构的加密流量分类方法过程至少包括:网络流量收集、流量数据预处理、流量聚合、代价矩阵计算、分类器训练及优化几个步骤。
具体地,如图3所示,加密流量分类方法包括以下步骤:
S1、通过网络流量收集模块进行网络流量收集:在网络关口中设置一个网络流量收集器用于捕获网络关口进出的网络数据流量,将捕获的网络数据流量按照会话的粒度进行分流,得到会话流。
本实施方案中采用VPN-nonVPN数据集中的流量代替网络关口捕获的流量对模型进行测试,对于原始数据集按照会话粒度进行流量数据的划分,得到会话流。其中对于TCP流,本发明实验判定条件是:定义TCP流为:以三次握手建立连接时的SYN标志位为1的SYN包开始、以FIN标志位或以RST标志位为1的FIN或者RST包结束的TCP双向流。对于UDP流,由于UDP协议设计特点不同于TCP协议有着显式的FIN结束标志,本发明则以第一个数据包到达为开始,如果两个数据包到达的时间间隔超过一分钟,则认为第一个数据包的数据流结束,第二个数据包的新数据流开始。
S2、通过流量数据预处理模块进行流量数据预处理:读取S1中得到的会话流,按照一定的长度对会话流进行截断填充,并进行归一化处理,抽取部分流量数据作为测试集并调优。
流量数据预处理就是读取流量数据集中所有的会话流,截断会话流前784个字节,不够784个字节则填充0。为了防止物理硬件对分类的影响,需要去除数据包的数据链路层字节。由于UDP头部比TCP头部少12字节,为了消除实验误差影响需要在UDP头部填充0。为了得到最佳算法识别效果,需要对提取的数据包字节进行归一化处理。最后,按照一定比例抽取部分流量数据用于后续分类器的测试以及调优。
S3、通过流量解析模块进行流量聚合:利用余弦相似性算法计算不同流量类型的相似性,将相似的流量类别聚合到同一数据集,获得若干子数据集,为后面形成树状分类器做准备。
流量聚合就是通过评估各流量类别之间的相似性,将流量类别划分为树状结构中的节点,再划分预处理后的数据集得到节点中分类器对应的数据集,这些数据集被称为子数据集,用于训练基于树状结构的代价敏感CNN网络流量分类器模型中相应节点的分类器,所述代价敏感CNN网络流量分类器通过代价敏感矩阵对少数类的错误分类赋予更高的代价,在每一次对少数类的错误分类都会根据代价敏感矩阵重新计算损失值并对模型的权重进行更新,使得之后模型在少数类进行分类时更加慎重。为了确保树结构中的每个分类都是一个小分类,采用了一种二叉树,使树中节点的深度不大于2。这样,除了叶节点中的类的最终分类外,其余的都是两个分类。其计算规则如下:
(1)原始实验数据集中流量类别数量为N,分离原始实验数据集中的每个流量类别样本;
(2)将N设为根节点,为第一层(s=1),计算N/2是否为整数,若为整数,则其左右子节点的流量类别数量为N/2,否则,左右子节点的类别数量分别为(N-1)/2、(N+1)/2;
(3)从左向右遍历当前层s的节点,假设s层节点d的流量类别数量为M,若M<4,标记该节点并停止划分,否则确定M/2是否为整数后,重复(2)的操作;
(4)如果当前树的所有叶节点都被标记,则完成划分,否则重复(3)的操作;
(5)利用余弦测量不同流量类别间的相似性,再根据各节点的流量类别数量M,将M个相似的流量类别样本放入同一数据集,为每个节点生成相应数据集,从而获得若干子数据集。
S4、再通过流量解析模块进行计算代价矩阵:由所述代价敏感CNN网络流量分类器模型通过各类别样本数量和总样本数量计算各类别占比,依据各类别在子数据集中的占比计算获得各个子数据集的代价矩阵,并在代价敏感CNN网络流量分类器的训练过程中将该代价矩阵加入。
计算代价矩阵就是根据各流量类别在数据集中的占比制定的,然后应用于代价敏感CNN网络最后一层全连接层的输出,以根据各种代价改变网络的权重。其目的在于将最大代价分配给少数类,而将较低的代价分配给其他类(多数类),使分类器对少数类样本更敏感,解决数据集类别不平衡的问题。若子数据集的流量类别数量为M,则生成一个M*M的代价矩阵r,矩阵的对角线称为效用向量,该向量表示正确的分类,并被设置为零。对于其他分类,所有成本都是非负的,即。其计算如下:
S5、通过分类器训练及优化模块进行分类器的训练:将各子训练集输入到基于树状结构的代价敏感CNN网络流量分类器中,对分类器进行训练。
对分类器的训练步骤如下:首先在传统的CNN网络中加入代价敏感层,形成代价敏感CNN网络流量分类器,然后用各子数据集训练代价敏感CNN网络流量分类器,并将各代价敏感CNN网络流量分类器按节点顺序,排成树状结构,形成一个基于树状结构的代价敏感CNN网络流量分类器。由于采用多分类器,使得分类模型在分类性能上可以互补,并且多个分类器均采用端到端的框架,因此可以在不提取特征的情况下自动学习输入数据和输出数据之间的非线性关系,最后,通过测试集数据流调试模型参数,得到最优的分类器模型并决策评估。其中代价敏感CNN网络如图2。
如图4所示,代价敏感CNN网络在传统网络中引入了代价敏感层,传统CNN网络只由卷积层、池化层和一个全连接层组成。当分类器正确分类时,其网络与传统的CNN网络相同,当分类器发生错误分类时,代价敏感层被激活,其为少数类的错误分类分配高代价,为多数类的错误分类分配低代价。代价敏感层被激活的过程主要分为以下3步:
(3)指定实际和预测的流量类别;
(4)利用代价矩阵来确定误分类代价;
(5)将指定的代价应用于实际和预测类的输出。
然后改变交叉熵函数,并引入新的代价函数。新的代价函数获得通过softmax函数计算得到的分类器的类别输出和其对应的概率向量值值作为输入,并返回每个类的损失值。在修改了实际和预测类别的输出之后,再次利用SoftMax函数使用如下方程计算预测和实际类别的新损失值:
最后将新的损失值应用到网络训练中。总之,利用流量类别的分布来指定代价,通过对各种错误分类施加代价来训练对少数类更敏感的网络,有效解决了类别不平衡的问题。
指标结果分析就是对实验结果得到的指标结果进行分析,并选取合适的参数,优化算法,提高识别率。
S6、通过分类器训练及优化模块进行分类器优化:利用测试集测试分类器性能,并对获得的指标结果分析,选择最优参数,优化分类器。
如图5所示,对于VPN数据集,利用余弦判断类之间的相似性,计算结果显示了其他的类和VPN-Chat之间的相似性。可以看出,VPN-Chat和VPN-Email以及VPN-File Transfer之间的相似性值相对较高,因此,VPN-Chat、VPN-Email和VPN-File Transfer被归类为一个类,即类A,其余的VPN-P2P、VPN-Streaming、VPN-VolP被归类为另一个类,即类B。A类B类中各包含三种VPN类型流量。最终,基于树状结构的代价敏感CNN网络流量分类模型共包含3个代价敏感CNN网络流量分类器,即代价敏感CNN网络流量分类器1、代价敏感CNN网络流量分类器2、代价敏感CNN网络流量分类器3。
如图6所示,由于F1-Measure是由精确率、召回率计算得到,因此,该评价指标具有一定的代表性。采用该指标对本专利模型和基于树状结构的传统CNN网络流量分类模型进行对比评价。可以看出,本专利方法在6种流量类别上的分类效果均明显优于基于树状结构的传统CNN网络流量分类模型,最高提升了2.8%,最少也提升了1.4%。这是由于在训练模型时,类别不平衡的样本会导致算法重视少数类的差别造成过拟合或者因为少数类别样本太少学习能力不足造成欠拟合的现象,实验效果不佳,而本发明采用的代价敏感CNN网络流量分类器,会根据每个类别的占比生成代价矩阵,并将该代价应用于训练过程中,发生错误分类时,为少数类样本赋予高代价,多数类样本赋予低代价,使得网络对少数类样本更敏感,有效解决了类别不平衡的问题,因此获得了良好的实验效果。
如图7-9所示,为了测试并对比本发明方法加密流量分类性能,本发明选择深度学习中较典型的算法模型CNN进行对比实验。由实验结果图可以看出,由于CNN是较为基本的深度学习模型,其训练过程相对简单,实验平均的精确率、召回率和F1-Measure仅有97.1%、96.5%和96.8%。本发明采用树结构将大分类化为两个小分类,再为每个划分后的小分类设置一个代价敏感CNN网络流量分类器,形成三个分类器,使得分类模型在分类性能上互补;由于多个分类器都是端到端的框架,所以可以自动提取特征并进行学习,模型平均的精确率、召回率和F1-Measure达到了98.9%、99.0%和98.9%,本发明模型取得了良好的分类效果。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (7)
1.一种基于分类器及网络结构的加密流量分类方法,其特征在于,
代价敏感CNN网络包括CNN网络和代价敏感层,所述CNN网络包含普通卷积层、池化层和全连接层,当所述CNN网络发生错误分类时,所述代价敏感层被激活,为少数类的错误分类分配高代价,为多数类的错误分类分配低代价,形成代价敏感CNN网络并构建成代价敏感CNN网络流量分类器;所述代价敏感CNN网络流量分类器呈树状结构,将数据集中的大分类划分为小分类,再为每个划分后的小分类设置一个特定的分类器进行流量的识别;所述代价敏感CNN网络包括网络流量收集模块、流量数据预处理模块、流量解析模块和分类器训练及优化模块;
所述加密流量分类方法包括以下步骤:
S1、通过所述网络流量收集模块进行网络流量收集:在网络关口中设置一个网络流量收集器用于捕获网络关口进出的网络数据流量,将捕获的网络数据流量按照会话的粒度进行分流,得到会话流;
S2、通过所述流量数据预处理模块进行流量数据预处理:将所述会话流按照一定的长度进行截断填充,并进行归一化处理,抽取部分流量数据用于最后的模型测试及调优;
S3、通过所述流量解析模块进行流量聚合:利用余弦相似性算法计算不同流量类型的相似性,将相似的流量类别聚合到一块,将所有流量样本分为若干部分,被聚合到一块的流量被称为子数据集,所述子数据集用于训练所述代价敏感CNN网络流量分类器模型中相应节点的分类器,所述代价敏感CNN网络流量分类器通过代价敏感矩阵对少数类的错误分类赋予更高的代价,在每一次对少数类的错误分类都会根据代价敏感矩阵重新计算损失值并对模型的权重进行更新,使得之后模型在少数类进行分类时更加慎重;
S4、再通过所述流量解析模块进行计算代价矩阵:由所述代价敏感CNN网络流量分类器模型通过各类别样本数量和总样本数量计算各类别占比,依据各类别在子数据集中的占比计算获得各个子数据集的代价矩阵,并在代价敏感CNN网络流量分类器的训练过程中将该代价矩阵加入;所述代价矩阵根据各流量类别在数据集中的占比制定,然后应用于代价敏感CNN网络最后一层全连接层的输出,以根据各种代价改变网络的权重;具体包括以下步骤:
S41、子数据集的流量类别数量为M,则生成一个M*M的代价矩阵r;
S42、将矩阵的对角线元素设置为0;
S5、通过所述分类器训练及优化模块进行分类器的训练:将各部分的流量数据输入到基于树状结构的代价敏感CNN网络流量分类器中,对分类器进行训练;
S6、通过所述分类器训练及优化模块进行分类器优化:利用S2中抽取的测试数据测试分类器性能,并对获得的指标结果分析,选择最优参数,优化分类器。
2.根据权利要求1所述的加密流量分类方法,其特征在于,步骤S1包括:定义TCP流:以三次握手建立连接时的SYN标志位为1的SYN包开始、以FIN标志位或以RST标志位为1的FIN包或者RST包结束的TCP双向流。
3.根据权利要求2所述的加密流量分类方法,其特征在于,步骤S1包括:
定义UDP流为以第一个数据包到达为开始,如果两个数据包到达的时间间隔超过一分钟,则认为第一个数据包的数据流结束,第二个数据包的新数据流开始。
4.根据权利要求3所述的加密流量分类方法,其特征在于,步骤S2具体包括以下步骤:
S21、依次读取所捕获的网络流量经过流量预处理后得到的会话流,判断每个会话的长度是否大于784个字节;
S22、若会话长度超过784个字节,则执行截断,如果会话长度小于784个字节,则执行零填充;
S23、对流量数据进行归一化处理;
S24、按照一定比例抽取部分流量数据用于后续分类器的测试以及调优。
5.根据权利要求4所述的加密流量分类方法,其特征在于,步骤S3具体包括以下步骤:
S31、所捕获的所有流量的流量类别数量为N,分离所有流量数据的每个流量类别样本;
S32、将N设为根节点,在第一层令当前层s=1,计算N/2是否为整数,若为整数,则其左右子节点的流量类别数量为N/2,否则,左右子节点的类别数量分别为(N-1)/2、(N+1)/2;
S33、从左向右遍历当前层s的节点,假设s层节点d的流量类别数量为M,若M<4,标记该节点并停止划分,否则确定M/2是否为整数后,重复S32的操作;
S34、如果当前树的所有叶节点都被标记,则完成划分,否则重复S33的操作;
S35、利用余弦相似性测量不同流量类别间的相似性,再根据各节点的流量类别数量M,将M个相似的流量类别样本放入同一数据集,作为该节点的训练数据,并为每个节点生成相应数据集,从而获得若干子数据集。
6.根据权利要求5所述的加密流量分类方法,其特征在于,步骤S5中对分类器的训练步骤包括如下:
S51、在所述CNN网络中加入代价敏感层,激活所述代价敏感层,形成代价敏感CNN网络流量分类器;
S52、用子数据集训练代价敏感CNN网络流量分类器,并将各代价敏感CNN网络流量分类器按节点顺序,排成树状结构,形成一个基于树状结构的代价敏感CNN网络流量分类器;
S53、用测试数据测试模型分类效果,调节模型参数;
S54、重复步骤S52和步骤S53,直至得到最优的基于树状结构的代价敏感CNN网络流量分类器。
7.根据权利要求6所述的加密流量分类方法,其特征在于,所述代价敏感层被激活过程主要分为以下3步:
指定实际和预测的流量类别;
利用代价矩阵r来确定误分类代价;
将指定的代价应用于实际的类别的输出和预测的类别的输出,形成实际的类别和预测的类别的新输出:
然后改变交叉熵函数,并引入新的代价函数;新的代价函数获得通过SoftMax函数计算得到的分类器的类别输出和其对应的概率向量值值作为输入,并返回每个类的损失值,在修改了实际和预测类别的输出之后,再次利用SoftMax函数使用如下方程计算预测类别的新损失值和实际类别的新损失值:
最后将新的损失值应用到网络训练中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111311502.2A CN113746707B (zh) | 2021-11-08 | 2021-11-08 | 一种基于分类器及网络结构的加密流量分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111311502.2A CN113746707B (zh) | 2021-11-08 | 2021-11-08 | 一种基于分类器及网络结构的加密流量分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113746707A CN113746707A (zh) | 2021-12-03 |
CN113746707B true CN113746707B (zh) | 2022-02-15 |
Family
ID=78727691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111311502.2A Active CN113746707B (zh) | 2021-11-08 | 2021-11-08 | 一种基于分类器及网络结构的加密流量分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113746707B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115374859B (zh) * | 2022-08-24 | 2024-07-02 | 东北大学 | 一种针对非平衡、多类别的复杂工业数据的分类方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110516694A (zh) * | 2019-07-05 | 2019-11-29 | 福州大学 | 一种基于代价敏感学习的排水管道缺陷自动检测方法 |
CN111030941A (zh) * | 2019-10-29 | 2020-04-17 | 武汉瑞盈通网络技术有限公司 | 一种基于决策树的https加密流量分类方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289089A1 (en) * | 2004-06-28 | 2005-12-29 | Naoki Abe | Methods for multi-class cost-sensitive learning |
-
2021
- 2021-11-08 CN CN202111311502.2A patent/CN113746707B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110516694A (zh) * | 2019-07-05 | 2019-11-29 | 福州大学 | 一种基于代价敏感学习的排水管道缺陷自动检测方法 |
CN111030941A (zh) * | 2019-10-29 | 2020-04-17 | 武汉瑞盈通网络技术有限公司 | 一种基于决策树的https加密流量分类方法 |
Non-Patent Citations (3)
Title |
---|
基于代价敏感卷积神经网络的非平衡问题混合方法;黄颖琦等;《计算机科学》;20210930;第48卷;第2-4节 * |
复杂交通场景中基于视频的行人检测与跟踪若干关键问题研究;张阳;《中国优秀博硕士学位论文全文数据库(博士) (信息科技辑)》;20131115;第四章 * |
输入一个数字n 如果n为偶数则除以2,若为奇数则加1或者减1,直到n为1,求最少次数 写出一个函数;jfkidear;《CSDN》;20161010;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113746707A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831392B (zh) | 半监督网络流量分类方法 | |
CN111817982A (zh) | 一种面向类别不平衡下的加密流量识别方法 | |
CN108199863B (zh) | 一种基于两阶段序列特征学习的网络流量分类方法及系统 | |
CN109218223B (zh) | 一种基于主动学习的鲁棒性网络流量分类方法及系统 | |
CN108768986A (zh) | 一种加密流量分类方法及服务器、计算机可读存储介质 | |
CN107370752B (zh) | 一种高效的远控木马检测方法 | |
CN102420723A (zh) | 一种面向多类入侵的异常检测方法 | |
CN113364787B (zh) | 一种基于并联神经网络的僵尸网络流量检测方法 | |
CN110796196A (zh) | 一种基于深度判别特征的网络流量分类系统及方法 | |
CN112769752B (zh) | 一种基于机器学习集成模型的网络入侵检测方法 | |
CN106330611A (zh) | 一种基于统计特征分类的匿名协议分类方法 | |
CN112217763A (zh) | 一种基于机器学习的隐蔽tls通信流检测方法 | |
CN112910853A (zh) | 基于混合特征的加密流量分类方法 | |
CN112800424A (zh) | 一种基于随机森林的僵尸网络恶意流量监测方法 | |
CN114915575B (zh) | 一种基于人工智能的网络流量检测装置 | |
CN103973589A (zh) | 网络流量分类方法及装置 | |
CN107404398A (zh) | 一种网络用户行为判别系统 | |
CN114785563A (zh) | 一种软投票策略的加密恶意流量检测方法 | |
CN113746707B (zh) | 一种基于分类器及网络结构的加密流量分类方法 | |
CN117056797A (zh) | 基于非平衡数据的加密流量分类方法、设备及介质 | |
Liu et al. | A cascade forest approach to application classification of mobile traces | |
CN114726802A (zh) | 一种基于不同数据维度的网络流量识别方法及装置 | |
CN113132291B (zh) | 一种边缘侧基于网络流量的异构终端特征生成及识别方法 | |
CN112839051A (zh) | 基于卷积神经网络的加密流量实时分类方法及装置 | |
CN114666273B (zh) | 一种面向应用层未知网络协议的流量分类方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |