CN117633627A - 一种基于证据不确定性评估的深度学习未知网络流量分类方法及*** - Google Patents
一种基于证据不确定性评估的深度学习未知网络流量分类方法及*** Download PDFInfo
- Publication number
- CN117633627A CN117633627A CN202311683616.9A CN202311683616A CN117633627A CN 117633627 A CN117633627 A CN 117633627A CN 202311683616 A CN202311683616 A CN 202311683616A CN 117633627 A CN117633627 A CN 117633627A
- Authority
- CN
- China
- Prior art keywords
- stream
- flow
- evidence
- sequence
- uncertainty
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013135 deep learning Methods 0.000 title claims abstract description 27
- 238000011156 evaluation Methods 0.000 title claims abstract description 16
- 238000000605 extraction Methods 0.000 claims abstract description 71
- 238000012549 training Methods 0.000 claims abstract description 51
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 24
- 238000007781 pre-processing Methods 0.000 claims abstract description 19
- 238000013528 artificial neural network Methods 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 17
- 238000010276 construction Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 9
- 230000009466 transformation Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000004927 fusion Effects 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 230000002779 inactivation Effects 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 claims description 2
- 238000013527 convolutional neural network Methods 0.000 claims description 2
- 239000000284 extract Substances 0.000 claims description 2
- 238000009825 accumulation Methods 0.000 claims 1
- 238000006073 displacement reaction Methods 0.000 claims 1
- 238000002372 labelling Methods 0.000 claims 1
- 238000012360 testing method Methods 0.000 description 13
- 238000002474 experimental method Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010972 statistical evaluation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于证据不确定性评估的深度学习未知网络流量分类方法及***,包括模型训练阶段和流分类阶段。模型训练阶段包括:按照五元组标识将已标记的网络流量数据包组装为双向流集合,提取集合中每条流的每个数据包的负载长度信息和负载字节信息,从而构建流序列信息集合。流分类阶段包括:将未标记的原始网络流量数据包按模型训练阶段中相同方法进行数据预处理,构建未标记的待分类流序列信息集合;基于模型训练阶段中得到的流证据提取模型,对待分类流进行流证据提取并计算每条流的不确定性值;将待分类流的不确定性值与已知类流的不确定性阈值进行比较,不确定性小于或等于阈值的流将被判定为已知类,并输出其对应的具体应用类别标签。
Description
技术领域
本专利涉及根据网络应用基础属性信息基于证据神经网络的深度学习算法对流进行不确定性评估对未知的网络流量进行准确分类,具体涉及基于不确定性评估的深度学习未知网络流量分类方法及***。
背景技术
网络流量的准确分类是提供差异***质量、入侵检测、流量管理及计费管理的基础。然而,随着网络技术的快速发展,产业信息化的建设和互联网的普及,全球网络用户规模不断扩大,网络流量分类技术面临的挑战也逐渐凸显。为了更好的满足互联网用户的新需求,应用类型数量不断增长,导致网络流量的数量和种类急剧增长。目前,基于深度学习的网络流量分类器大多基于一个假设:待分类的网络流量均来自已标记的已知类应用,且用于构建分类器的训练集中包含该类应用流量。但在真实网络环境中,面对不断涌现的新应用,无法实现对所有应用类别流量进行前采样和标记。大量未知流量的存在给网络管理带来了极大的挑战。因此,研究如何使流量分类器既能对已知类流量进行应用级准确分类的同时,又能够识别出真实网络环境中的未知类流量具有重要的现实意义。
上述提到的真实网络环境中的流量分类应用场景,可以类比于目标检测的应用场景。在目标检测的实际应用场景中需要采取开集识别方式。具体来说,不仅要正确识别已知的人类动作,也需要判断未知的人类动作。近些年,研究人员一直致力于理解和量化神经网络预测中的不确定性并提出了一种证据深度学习方法,此方法在开集目标检测中取得了良好的效果。证据深度学习将开集识别问题转化为不确定性估计,通过传统的深度神经网络学习各类样本的证据信息,并根据证据信息量化不同类样本的预测结果的不确定性。学习到的证据可以量化不同人类行为的预测不确定性,从而使未知行为产生高度不确定性。本发明尝试使用基于证据深度学习的深度学习模型对真实网络环境中流量进行不确定性评估从而实现对未知的网络流量进行准确分类。
本发明设计并实现了以一种基于证据不确定性评估的深度学习未知网络流量分类方法及***。本发明基于网络流量的基础属性信息构建证据提取模型,并量化网络流量分类概率的不确定性值。进而,通过流分类器对已知应用流量与未知流量进行有效分离,与此同时实现对已知类应用的应用级精确分类。
现有的文献大多基于传统的深度学习模型构建流分类器以解决未知网络流量分类,其中较为经典的方法为基于Softmax置信度分数的未知流量分类器。然而,在实际应用中该方法存在以下局限性:
基于Softmax置信度分数的未知流量分类器会因模型过度自信,输出异常的高置信度分数,导致未知类流量样本被错误地划分至已知类别中。在统计学意义下,当未知类样本作为测试数据输入基于Softmax置信度分数的流量分类器时,模型输出的置信度分数通常较低;相反,当已知类样本作为测试数据输入分类器时,模型输出的置信度分数通常较高。在理想条件下,基于Softmax置信度分数的分类器根据神经网络输出的置信度分数设定合理阈值可以实现已知类流量与未知类流量的分离。但在神经网络训练的实际过程中,为了获得更小的损失,即使大多数已知类流量样本被分类至正确的类别,Optimizer仍会不断增加Logit向量的大小,从而使模型输出的Softmax置信度分数不断增大,最终导致模型过度自信。因此在测试时,对于已知类和未知类流量,分类器均输出较大的置信度分数,导致未知类流量被错误地划分至已知类中。
发明内容
本发明的目的在于设计并实现一种基于证据不确定性评估的深度学习未知网络流量分类方法及***。该方法及***构建证据提取模型对流进行不确定性评估,实现对真实环境中已知类与未知类流量进行有效识别和准确分类。
为实现上述目的,本发明采用的技术方案如下:
一种基于证据不确定性评估的深度学习未知网络流量分类方法,包括模型训练阶段和流分类阶段,具体过程如下:
步骤所述模型训练阶段包括如下步骤如下:
1)以已标记的应用网络流量数据包的集合作为输入,对集合中的数据包进行预处理,提取每条流的每个数据包的负载长度信息和负载字节信息,从而得到由负载长度序列和负载字节序列组成的流序列信息集合。
2)以步骤1)得到的流序列信息集合作为输入数据,形成训练数据集,采用有监督学习的方式提取流证据,构建流证据提取模型并获得流证据集合。
3)以步骤2)得到的流证据集合作为输入根据证据理论和主观逻辑原理计算流的不确定性值,并根据集合中所有样本的不确定性值的分布确定已知类流的不确定性阈值。
所述流分类阶段包括如下步骤:
4)以未标记的原始网络流量数据包的集合作为输入,进行与模型训练阶段中步骤1)相同的方法,将原始网路流量数据包的集合处理为TCP双向流集合,并对TCP双向流集合进行流序列信息提取操作,得到由负载长度序列和负载字节序列组成的未标记的流序列信息集合。
5)以未标记的流序列信息集合作为输入,先根据模型训练阶段中步骤2)得到的流证据提取模型,对未标记的待分类流进行流证据提取,然后根据模型训练阶段中步骤3)
计算每条流的不确定性值,得到每条流的初始预测标签及其不确定性值。
6)将步骤5)得到的每条流的不确定性值作为输入对待分类流进行分类。将每条流的不确定性值与在模型训练阶段中步骤3)得到的已知类流的不确定性阈值进行比较,判断待分类流是已知应用类别的流还是未知应用类别的流,并赋予其不同标签。
一种基于证据不确定性评估的深度学习未知网络流量分类***,其特征在于,包括用于构建流证据提取模型的模型训练阶段和用于已知类与未知类分类的流分类阶段,其中:
模型训练阶段包含数据预处理和证据提取模型训练两个顺序模块。首先以给定已标记的已知类别的流量作为输入,由数据预处理模块对输入原始网络流量数据包集合进行TCP双向流构建以及流序列信息提取,得到定长的流序列集合。然后,将流序列集合输入至流证据提取模型训练模块,流证据提取模型学习并收集每条流的证据,根据每条流的证据计算其不确定性值,并选取不确定性值为已知类流的不确定性阈值。本模块的输出为证据提取模型及已知类流的不确定性阈值/>
流分类阶段包含数据预处理、流证据提取及流分类三个顺序模块。首先,以未标记的混杂流量作为输入,由数据预处理模块对输入原始网络流量数据包集合进行TCP双向流构建以及流序列信息提取,得到待分类流序列集合。流证据提取模块以待分类流序列集合为输入,使用流证据提取模型训练模块所生成的流证据提取模型,提取待分类样本的流证据并输出其初始预测标签。然后,根据待分类样本的流证据计算其不确定性值。流分类模块以上一模块输出的流的不确定性值和初始预测标签为输入,通过比较待分类流的不确定性值和已知类流的不确定性阈值的大小,对待分类样本的类别进行判别。具体地说,若待分类流的不确定性值大于/>则该流为未知类应用流量并将其打上未知类别的标签;若待分类流的不确定性值小于或等于/>则该流为已知类应用流量,其标签为初始预测标签。分类阶段的输出结果为未标记的混杂流量所对应的应用标签。
本发明的关键技术点在于:
1.提出了一种新的开集流量分类方法,基于证据理论和深度学习方法构建证据神经网络对流进行不确定性评估,从而实现已知、未知流样本分离。
2.在模型训练阶段引入基于证据理论的损失函数,有效提升了模型不确定评估的可靠性。
3.使用负载长度和负载字节表征一条流的时序信息和负载信息,有效提升了流证据描述准确性。
利用本专利的方法可以实现对开集环境中混杂网络流量的准确分类,与已公开的相关技术相比,具有如下优点:
1.该发明设计了一种基于证据理论和主观逻辑构建证据神经网络,通过提取流证据量化流的不确定性,有效提升了已知类流量与未知类流量的分类准确性。
2.该发明使用了一种基于证据理论的损失函数有效缓解了基于Softmax置信度分数的分类器因过度自信导致的未知类流量样本被错误地划分至已知类别中的问题。
附图说明
图1是基于证据不确定性评估的深度学习未知网络流量分类方法及***模型训练流程图。
图2是流分类阶段流程图。
图3是一种基于证据不确定性评估的深度学习未知网络流量分类***架构图。
图4是二十四种应用在验证集上的实验结果图。
图5是P=16二十四种应用在测试集上的实验结果图。
图6是P=32二十四种应用在测试集上的实验结果图。
图7是P=64二十四种应用在测试集上的实验结果图。
图8是二十四种应用在测试集上的混淆矩阵图。
具体实施方式
本发明的工作流程包括模型训练阶段和流分类阶段。在模型训练阶段,以已标记的网络流量作为输入,训练神经网络中的可学习参数,从而构建流证据提取模型。并基于流证据提取模型提取的流证据、计算流的不确定性值,确定已知类流的不确定性阈值。在流分类阶段,以真实网络环境中未标记的流量作为输入,通过模型训练阶段生成的流证据提取模型提取未标记的网络流量的流证据并计算流不确定性值。通过比较待分类流的不确定性值与不确定性阈值的大小,将未标记的网络流量划分为已知类网络流量或者未知类网络流量,并对划分为已知类的网络流量进行应用级别分类。
模型训练阶段中,本发明的关键技术部分在于流证据提取模型的构建,流证据提取模型构建流程如图1所示。该阶段的输入为已标记的网络流量数据包的集合,输出为可用于流分类阶段的流证据提取模型及已知类流的不确定性阈值
本发明的流证据提取模型基于深度神经网络模型的训练方法构建,其具体实施步骤如下:1.数据预处理步骤以已标记的应用网络流量数据包的集合作为输入,对集合中的数据包进行预处理,提取每条流的每个数据包的负载长度信息和负载字节信息,从而得到负载长度序列和负载字节序列集合。具体实施步骤如下:
首先,将已标记的原始网络流量数据包的集合处理为TCP双向流集合。以给定已标记的原始网络流量数据包作为输入,按照五元组标识将其组装为TCP双向流集合 (yi∈[1,N]为流flowi的标签,N为已知类应用类别总数,M为总流数)。其中,五元组是指数据包的源IP地址(ip.src)、目的IP地址(ip.dst)、源端口(port.src)、目的端口(port.dst)、第四层通信协议(protocol)。
然后,对TCP双向流集合Draw进行流序列信息提取操作,从而得到流序列信息集合 其中Li为流flowi的负载长度序列,Pi为流flowi的负载字节序列。为便于理解,后续步骤中,将以单条流flowi为例,介绍本专利中流序列信息提取操作,其具体步骤如下:
1.1首先,进行负载长度序列信息提取,对TCP双向流集合中每一条流截取其前L个数据包。随后,依次提取L个数据包的负载长度信息。由于每一条流均由一有序数据包序列构成,因此对于任意一条流flowi我们将其数据包序列定义为其中/>表示流flowi的第j个数据包,/>表示流flowi的第j个数据包的方向(/>+1表示该包由服务器端发送至客户端,-1表示该包由客户端发至服务器端),m表示流flowi共包含m个数据包。以流flowi为例,截取flowi的前L个数据包记为/>接着,提取每个数据包的负载长度信息/>然后,将/>与方向/>相乘得到带方向的负载长度信息/>最后,将每个数据包的带方向的负载长度信息按照其出现在flow‘i中的顺序依次排列,从而得到负载长度序列/>
1.2然后,进行负载字节序列信息提取,对TCP双向流集合中每一条流截取其前L个数据包。随后,依次提取L个数据包的负载字节信息。以流flowi为例,首先,提取每个数据包的负载字节信息然后,将每个数据包的负载字节信息按照其出现在flow‘i中的顺序依次排列,从而得到负载字节序列/>其中/>表示流flowi的第j个数据包的负载字节信息。具体来说,对于流flowi的第j个数据包,此步骤截取了包负载的前P个字节,从而得到了负载字节信息/>其中/>表示第j个数据包负载的第e个字节。
2.对神经网络参数进行设置,其中包括学***衡因子,独热编码参数,时序神经网络隐藏层大小,编码层大小,卷积神经网络卷积核数量及卷积核大小。对于神经网络中所有可训练参数,本发明使用随机初始化的方法为其赋予初始值。
3.以经过数据预处理的流序列信息集合作为输入数据,分别对负载长度序列和负载字节序列进行证据提取,得到负载长度序列证据和负载字节序列证据,接着对二者进行流证据融合操作。为便于理解,后续步骤中,将以单条流flowi的负载长度序列Li和负载字节序列Pi为例介绍本专利中证据提取操作,其具体实施步骤如下:
3.1负载长度序列证据提取以负载长度序列作为输入,基于时序特征神经网络提取负载长度序列证据。具体操作如下:
3.1.1首先,对负载长度序列信息进行独热编码处理,得到独热编码张量Vi,并对其进行维度变换。具体地说,为负载长度序列Li中第j个数据包的带方向的负载长度信息,假设其十进制数值为/>将/>转换为仅由0,1组成的2C维(C为最大传输单元)的向量v(i,j)={0,0,...,1,...,0},其中第/>维数据为1,其余维数据均为0。经过独热处理后数据维度为(L×2C),增加一个维度得到独热编码张量Vi,维度为(1×L×2C)。
本专利使用2D卷积层完成对独热编码张量Vi的维度变换,使用的卷积核数量为C1,卷积核大小为(1×2C),步长为1;经卷积操作后得到初始卷积结果维度为(C1×L×1),将初始卷积结果的最后一个维度进行维度压缩,得到初始卷积结果X1,维度为(C1×L)。卷积核数量可根据需求调节,本发明中卷积核数量C1=128。
在维度变换后,通过数据归一化和非线性激活函数对卷积结果进行处理,并交换结果的第一维与第二维,得到维度(L×C1)的张量X′1。本发明中使用处理方法为批量标准化(Batch Normalization)和线性整流函数(ReLU)计算。
3.1.2以经过独热编码处理及维度变换的张量X′1作为输入,使用时序神经网络进行负载长度证据提取操作,本发明中选用了隐藏层数为lh,隐藏层单元数为h1的双向长短期记忆网络(Bi-directional Long Short-Term Memory)进行负载长度证据提取操作。经过时序神经网络得到的输出数据维度为(4×h1),将第一维度的数据进行拼接得到初始负载长度序列证据X2,其维度为(4h1)。接着,将X2输入全连接层,其输出维度为F,从而得到负载长度序列证据输出维度可根据需求调节,本发明中F=128。
3.2负载字节序列证据提取以负载字节序列作为输入,基于空间特征神经网络提取负载字节序列证据。具体操作如下:
3.2.1首先,对负载字节序列信息按字节对其每位数据进行独热编码处理,得到独热编码张量Qi,并对其进行维度变换。根据流量负载数据特性可知负载字节序列Pi中每个字节的十进制取值范围为[0,255]。具体地说,以Pi中的第j个数据包的第e个字节为例,假设字节/>的十进制数值为/>将/>转换为仅由0,1组成的256维的向量q(i,j)={0,0,...1,...,0},其中第/>维数据为1,其余维数据均为0。经过独热处理后输出数据维度为(LP×256),增加一个维度得到独热编码张量Qi,维度为(1×LP×256)。
本专利使用2D卷积层完成对独热编码张量Qi的维度变换,使用的卷积核数量为H1,卷积核大小为(1×C′),步长为1;经卷积操作后得到初始卷积结果维度为(H1×LP×1),将初始卷积结果的最后一个维度进行维度压缩,得到初始卷积结果R1,维度为(H1×LP)。卷积核数量可根据需求调节,本发明中H1=32,C′=256。
3.2.2以经过独热编码处理及维度变换的张量R1作为输入,使用卷积神经网络进行负载字节证据提取操作。本发明中,使用了多分支并行的1D卷积神经网络,各分支卷积核数量为H1,卷积核大小分别为k1,k2,k3,步长均为S,填充大小分别为p1,p2,p3,得到三个维度均为(H1×LP)的张量,将三个张量在第一个维度上进行拼接和累加操作,从而得到维度为(H1×LP)的卷积结果R2。卷积核数量、大小、步长及填充大小均可根据需求调节,本发明中卷积核大小分别为k1=1,k2=3,k3=5,填充大小分别为p1=0,p2=1,p3=2。
接着,将R1与R2在对应维度相加得到维度为(H2×LP)的张量R3,并对其进行线性整流函数(ReLU)计算。最后,然后将结果依次输入随机失活层和两个全连接层,本发明中随机失活概率为0.5,两个全连接层的输出维度分别为F2=128和F=256,从而得到负载字节序列证据
3.3对负载长度序列证据和负载字节序列证据进行流证据融合操作。首先将负载长度序列证据和负载字节序列证据/>在第一个维度进行拼接,并在第一个维度上求平均值,得到维度为F的张量/>然后,将/>输入至全连接层,其输出维度为N,得到张量E‘i。接着,对E‘i进行激活函数计算,得到维度为N的流证据Ei。本发明选用Softplus激活函数,N为已知类应用类别数量。
4.计算流的不确定性。在分类问题中,分类概率服从Dirichlet分布。因此,本发明首先基于证据理论(Dempster-Shafer Theory)和主观逻辑(Subjective Logic)根据流证据计算流的不确定性值。具体操作如下:
4.1首先,根据流证据构建其Dirichlet分布,本发明中将能够对分类任务给出分类结果的网络被视为Dirichlet分布。然后,根据如下公式计算每条流的Dirichlet分布参数,从而得到流flowi的Dirichlet分布参数集合αi=<αi1,αi2,...,αiK>。最后,对集合αi中的每个Dirichlet分布参数进行累加求和,从而得到Dirichlet分布Dir(p|α)的总强度。
αik=Eik+1,
其中,K为已知类应用类别总数,En为流证据,Si是由参数化的Dirichlet分布Dir(p|α)的总强度。
4.2首先,根据流证据构建其Dirichlet分布,本发明中将能够对分类任务给出分类结果的网络被视为Dirichlet分布根据流flowi的Dirichlet分布Dir(p|α)的总强度Si,基于以下公式计算流flowi的不确定性值ui。然后,根据所有流样本的不确定性值的分布确定已知类流的不确定性阈值在本发明中选取了分布密度最大值对应的不确定性值为已知类流的不确定性阈值/>
5.判断深度神经网络是否到达停止条件。判断此时训练状况是否满足终止条件T,若满足终止条件,则停止神经网络训练过程,将包含训练后神经网络参数值的流证据提取模型以及流不确定性作为训练阶段最终的结果输出;若不满足条件,则根据网络计算的损失函数值,使用反向传播更新神经网络参数,并重复步骤3-4。结束条件T设置,可包括但不局限于下述条件:达到最大迭代周期、达到期望损失函数值、达到期望统计评价指标等。
此外,为了避免由于Softmax交叉熵损失函数造成的模型过度自信的问题,本发明使用了基于证据理论的损失函数具体定义如下:
其中,αi为Dirichlet参数(αi=Ei+1),pi是样本i的分类概率,ψ(·)为双伽马函数,为调整后的Dirichlet参数/>Γ(·)为伽马函数,λt为平衡参数(λt>0)。
流分类阶段的工作流程如图2所示。本阶段基于模型训练阶段构建的流证据提取模型对真实网络环境中未标记的原始流量进行证据提取操作并计算其不确定性值。然后,通过比较未标记流的不确定性值与已知类流的不确定性阈值从而将待分类的流划分为已知类或未知类。并输出已知类流数据样本集与未知类流数据样本集。流分类阶段具体过程如下:
1.未标记的原始网络流量数据包的集合作为输入,同数据预处理模块中步骤1,将原始网路流量数据包的集合处理为TCP双向流集合,并对TCP双向流集合进行流序列信息提取操作,得到负载长度序列集和负载字节序列集。
2.将负载长度序列集和负载字节序列集输入流证据提取模型进行证据提取并计算每条流的不确定性值,计算过程与模型训练阶段中步骤4相同。此外,流证据提取模型将输出每条流的初始预测标签l∈[1,N]。
3.将步骤3中得到的流的不确定性值与已知类流的不确定性阈值进行比较,若流的不确定性值大于/>则该流将被判定为未知类流,并输出其标签值l′(l′=N+1);反之,该流将被判定为已知类流并输出其标签值l′(l′∈[1,N])。以流flowi为例,其不确定性值为ui,初始预测标签为li。若/>l′i=N+1;若/>l′i=li。
结合上述的一种基于证据不确定性评估的深度学习未知网络流量分类方法,本专利同时公开了一种基于证据不确定性评估的深度学习未知网络流量分类***。本***由模型训练阶段和流分类阶段构成,***图架构如图3所示。其中模型训练阶段包含两个模块,分别是数据预处理模块和证据提取模型训练模块;流分类阶段包含三个模块,分别是数据预处理模块,流证据提取模块以及流分类模块。
模型训练阶段包含数据预处理和证据提取模型训练两个顺序模块。首先以给定已标记的已知类别的流量作为输入,由(1.1)数据预处理模块对输入原始网络流量数据包集合进行TCP双向流构建以及流序列信息提取,得到定长的流序列集合。然后,将流序列集合输入至(1.2)流证据提取模型训练模块,流证据提取模型学习并收集每条流的证据,根据每条流的证据计算其不确定性值,并选取不确定性值为已知类流的不确定性阈值。本模块的输出为证据提取模型及已知类流的不确定性阈值/>
流分类阶段包含数据预处理、流证据提取及流分类三个顺序模块。首先,以未标记的混杂流量作为输入,由(1.1)数据预处理模块对输入原始网络流量数据包集合进行TCP双向流构建以及流序列信息提取,得到待分类流序列集合。(2.2)流证据提取模块以待分类流序列集合为输入,使用(1.2)流证据提取模型训练模块所生成的流证据提取模型,提取待分类样本的流证据并输出其初始预测标签。然后,根据待分类样本的流证据计算其不确定性值。(2.3)流分类模块以上一模块输出的流的不确定性值和初始预测标签为输入,通过比较待分类流的不确定性值和已知类流的不确定性阈值的大小,对待分类样本的类别进行判别。具体地说,若待分类流的不确定性值大于/>则该流为未知类应用流量并将其打上未知类别的标签;若待分类流的不确定性值小于或等于/>则该流为已知类应用流量,其标签为具体应用类别标签。分类阶段的输出结果为未标记的混杂流量所对应的具体应用类别标签和未知类标签。
在验证实验中,本发明对Airbnb、Alipay、Amap、Baidumap、Booking、Ctrip、Ele、Github、Instagram、Jingdong、Linkedin、Meituan、Neteasecloudmusic、Pandora、Pinduoduo、Reddit、Taobao、Toutiao、TripAdvisor、Twitter、Vipshop、Weibo、Yirendai、Zhihu二十四种不同应用类型的网络流量开展实例验证。实验中所使用的具体网络流量信息如表1所示。其中,对于每个应用类别随机地选择了3000个样本。因此,总共有72,000条流量样本构成了实验数据集。此外,在实验数据集上开展了5折交叉验证,其中训练集,验证集和测试集的比例为3:1:1。
表格1:实验验证中所使用的应用名称及各个类别的网络流量信息
应用名称 | 流个数 | 应用名称 | 流个数 |
Airbnb | 4981 | Neteasecloudmusic | 10494 |
Alipay | 4602 | Pandora | 5386 |
Amap | 7903 | Pinduoduo* | 7310 |
Baidumap | 3086 | 8740 | |
Booking | 11604 | Taobao | 7470 |
Ctrip | 5441 | Toutiao | 14121 |
Ele* | 8609 | TripAdvisor | 3984 |
Github* | 4431 | Twitter* | 4463 |
4386 | Vipshop | 16468 | |
Jingdong* | 9544 | Weibo* | 4043 |
5048 | Yirendai | 4791 | |
Meituan | 14659 | Zhihu | 6664 |
注:表格2中带*的网络流量类别为本实验中未知类网络流量。
实验展示了三种超参数形成的不同分类器的分类效果,超参数包括:(1)流序列提取步骤中数据包个数L;(2)流序列提取步骤中负载字节长度P。在不同超参数设置的情况下分别进行实验,并将本发明与现有的基于深度学习的网络流量分类方法进行对比。在以下针对本发明的评估实验中,具体的参数选择范围是P∈{16,32,64},L∈{8,16,32}。此外在本实验中涉及的其他参数取值为:独热编码维度C=1500。
为了评估其分类性能,定义如下指标来评估分类器的分类性能:
(1)已知类应用流量的分类准确性PR,其具体的定义如下:
(2)已知类应用流量的误检率FDR,其具体定义如下:
(3)未知类应用流量的正确检测率TDR,其具体定义如下:
(4)多类别分类准确性ACC,定义如下:
其中,N为应用类别总数,{1,2,...,n}为已知类应用对应的标签,{n+1,n+2,...,N}为未知应用对应的标签。KPi表示由已知类应用i产生的流被正确分类至i类的流数,KNi表示由已知类应用i产生的流被错误地分为其他已知应用类别流量的流数,KUi表示由已知类应用i产生的流被错误地分类至未知类应用流量的流数,UPi表示由未知类应用i产生的流被正确地分类为未知类应用流量的流数,UNi表示由未知类应用i产生的流被错误地分类为已知类应用流量的数量。
图4绘制了当参数P和L为不同取值时,二十四种网络流量在实验数据集的测试集上的ACC数值的变化情况。对于不同的参数设置,ACC数值在97.07%-98.57%的范围内变化。验证数据集上的最佳参数值为P=64,L=32,相应的ACC数值为98.57%。图4可以清楚地注意到,P值的对分类的准确率有着较大的影响,通常随着P的增大,ACC呈上升趋势。此外,还可以注意到,当P值较大时,L对本发明的ACC值通常影响不大,ACC值趋于稳定。
此外,测试数据集上所有9个分类器的实验评估结果如图5-图7所示。对于P和L的所有可能取值,测试集上分类ACC数值在75.68%-95.19%的范围内变化。在验证数据集上表现最佳的P=64,L=32的分类器,其在测试数据集上的分类ACC平均数值为93.25%,PR平均数值为93.54%,FDR平均数值为6.24%,TDR平均数值为92.37%。此外,测试数据集上在最优分类器的实验评估结果如图8所示。其中蓝色区域表示分类器对已知类应用流量的分类能力,橙色部分表示已知类应用流量被错分至未知类的情况,黄色部分表示未知类流量被错分至已知类的情况。
表格2:现有的基于深度学习的网络流量分类方法对比实验结果
从表格2中可以明显地观察到,本发明在实验数据集上的平均分类准确率是93.25%±2.64%,优于现有的基于深度学习的分类方法和***(Deep Learning andZero-Day Traffic Classification:Lessons Learned From a Commercial-GradeDataset)的分类准确率。此外,在Airbnb、Alipay、Amap、Baidumap、Booking、Ctrip、Ele、Github、Instagram、Linkedin、Meituan、Neteasecloudmusic、Pandora、Reddit、Taobao、Toutiao、TripAdvisor、Twitter、Zhihu二十四种类型的网络流量中的十九种上,都展现出了更好的分类准确率。
Claims (6)
1.一种基于证据不确定性评估的深度学习未知网络流量分类方法,其特征在于,包括模型训练阶段和流分类阶段;
所述模型训练阶段包括如下步骤:
1)以已标记的原始网络流量数据包的集合作为输入,对集合中的原始网络流量数据包进行数据预处理,构建双向流集合并提取每条流的每个原始网络流量数据包的负载长度信息和负载字节信息,从而得到由负载长度序列和负载字节序列组成的流序列信息集合;
2)以步骤1)得到的流序列信息集合作为输入数据,形成训练数据集,采用有监督学习的方式提取流证据,构建流证据提取模型并获得流证据集合;
3)以步骤2)得到的流证据集合作为输入,根据证据理论和主观逻辑原理计算流的不确定性值,并根据集合中所有样本的不确定性值的分布确定已知类流的不确定性阈值;
所述流分类阶段包括如下步骤:
4)以未标记的原始网络流量数据包的集合作为输入,进行与模型训练阶段中步骤1)相同的方法,将原始网路流量数据包的集合处理为双向流集合,并对双向流集合进行流序列信息提取操作,得到由负载长度序列和负载字节序列组成的未标记的流序列信息集合;
5)以未标记的流序列信息集合作为输入,先根据模型训练阶段中步骤2)得到的流证据提取模型,对未标记的待分类流进行流证据提取,然后根据模型训练阶段中步骤3)计算每条流的不确定性值,得到每条流的初始预测标签及其不确定性值;
6)将步骤5)得到的每条流的不确定性值作为输入,对待分类流进行分类;将每条流的不确定性值与在模型训练阶段中步骤3)得到的已知类流的不确定性阈值进行比较,判断待分类流是已知应用类别的流还是未知应用类别的流,并赋予其不同标签。
2.如权利要求1所述的基于证据不确定性评估的深度学习未知网络流量分类方法,其特征在于,步骤1)数据预处理的具体操作方法是:
1-1)首先,将已标记的原始网络流量数据包的集合按照五元组标识处理为双向流集合;其中,五元组是指数据包的源IP地址、目的IP地址、源端口、目的端口、第四层通信协议;然后,对于双向流集合中的每一条流,按照其所包含数据包中片位移字段将数据包按照其出现在流中的时间顺序排列,从而得到按序排列的双向流集合;
1-2)对步骤1-1)中得到的双向流集进行负载长度序列信息提取;首先,截取步骤1-1)中得到的按序排列的双向流集合中每一条流的前几个数据包,提取每个数据包的负载长度信息;然后,根据流方向对方向信息进行赋值,若流由服务器端发送至客户端,其方向信息值为1;若流由客户端发送至服务器端,其方向信息值为-1;接着,将负载长度信息与其方向信息值相乘得到带方向的负载长度信息;最后,将每个数据包的带方向的负载长度信息按照其出现在流中的顺序依次排列,从而得到负载长度序列;
1-3)对步骤1-1)中得到的按序排列的双向流集进行负载字节序列信息提取;截取步骤1-1)中得到的双向流集合中每一条流的前几个数据包,依次提取每个数据包的负载字节信息,将每个数据包的负载字节信息按照其出现在流中的顺序依次排列,从而得到负载字节序列。
3.如权利要求1所述的方法,其特征在于,步骤2)构建流证据提取模型的方法是:
以步骤1)中得到的流序列信息集合作为输入数据,采用有监督学习的方式,基于深度神经网络分别对负载长度序列和负载字节序列进行证据提取,得到负载长度序列证据和负载字节序列证据,接着对二者进行流证据融合操作,从而构建流证据提取模型;具体方法如下:2-1)以步骤1-2)中得到的负载长度序列信息作为输入,基于时序神经网络进行负载长度序列证据提取,从而得到负载长度序列证据;具体操作如下:
2-1-1)以步骤1-2)中得到的负载长度序列信息作为输入,对其进行独热编码处理,得到独热编码张量;然后,通过卷积操作对独热编码张量进行维度变换;接着,依次使用数据归一化方法和非线性激活函数对维度变换结果进行处理,并交换其结果的第一维与第二维,从而得到长度序列初始结果;
2-1-2)以步骤2-1-1)中得到的长度序列初始结果为输入,使用时序神经网络对其进行负载长度证据提取操作,将神经网络输出结果的第一维度的数据进行拼接,得到初始负载长度序列证据;然后,将初始负载长度序列证据输入至全连接层,从而得到负载长度序列证据;
2-2)以步骤1-3)中得到的负载字节序列信息作为输入,基于卷积神经网络进行负载字节序列证据提取,从而得到负载字节序列证据;具体操作如下:
2-2-1)以步骤1-3)中得到的负载字节序列信息作为输入,按字节对其每位数据进行独热编码处理,得到独热编码张量;然后,通过卷积操作对独热编码张量进行维度变换,并对卷积结果的最后一个维度进行维度压缩,从而得到字节序列初步卷积结果;
2-2-2)以步骤2-2-1)中得到的字节序列初步卷积结果为输入,使用多分支并行的卷积神经网络进行负载字节证据提取操作,将各分支的卷积结果在第一个维度上进行拼接和累加操作得到分支卷积结果;接着,将字节序列初步卷积结果与分支卷积结果在对应维度相加,对相加后的结果进行线性整流函数计算,得到初始负载字节序列证据;最后,将初始负载字节序列证据依次输入随机失活层和两个全连接层,从而得到负载字节序列证据;
2-3)对步骤2-1-2)中的得到的负载长度序列证据和步骤2-2-2)中得到的负载字节序列证据进行流证据融合操作,将负载长度序列证据和负载字节序列证据在第一个维度进行拼接,并在拼接结果的第一个维度上求平均值,得到初步融合结果;然后,将初步融合结果输入至全连接层,并对全连接层输出结果进行激活函数计算,最终得到流证据,其维度等于已知类流量类别总数。
4.如权利要求1所述的方法,其特征在于,步骤3)计算流的不确定性值的方法是:
3-1)根据步骤2-3)中得到的流证据构建Dirichlet分布;在此方法中将能够对分类任务给出分类结果的基于深度学习的神经网络视为Dirichlet分布;
3-2)根据步骤3-1)的Dirichlet分布和2-3)中得到的流证据,计算Dirichlet分布参数值;对于每一个流样本,共有已知类流量类别数个Dirichlet分布参数值;为了更清楚的说明Dirichlet分布参数与流证据间关系,使用i表示第i条流,αij表示流i的第j个Dirichlet分布参数,j表示第j类已知类流量;流i被分类至第j个类别的证据值加1为流i的第j个Dirichlet分布参数值即αij;因此,对于步骤2-3)中得到的流证据,对其每一维的值进行减1的操作,从而得到服从3-1)中Dirichlet分布的Dirichlet分布参数集合,其中包含已知类流量类别总数个参数值;
3-3)根据步骤3-2)中得到的Dirichlet分布参数值计算Dirichlet分布总强度;对步骤3-2)中得到的各样本的Dirichlet分布参数集合中每一个值进行累加求和,从而得到每条流的Dirichlet分布总强度;
3-4)根据步骤3-3)中得到的每条流的Dirichlet分布总强度计算每条流的不确定性值;根据证据理论和主观逻辑可知,已知类流量类别总数与不确定性之积为Dirichlet分布总强度;使用已知类流量类别总数除以每条流的Dirichlet分布总强度,从而得到每条流的不确定性值;
3-5)根据步骤3-4)中得到的所有流样本的不确定性值画出其密度分布直方图,选取密度峰值对应的不确定性值为已知类流的不确定性阈值;
3-6)判断深度神经网络是否到达停止条件,若满足终止条件,则停止神经网络训练过程,将包含训练后神经网络参数值的流证据提取模型以及已知类流的不确定性阈值作为训练阶段最终的结果输出;若不满足条件,则根据网络计算的损失函数值,使用反向传播更新神经网络参数,并重复步骤2)-3)。
5.如权利要求1所述的方法,其特征在于,步骤6)对待分类流的分类方法是:
6-1)以步骤3-2)输出的已知类流的不确定性阈值和步骤4)输出的待分类流的不确定性值作为输入,比较已知类流的不确定性阈值与待分类流的不确定性值的大小;不确定性小于或等于阈值的流将被判定为已知类;不确定性大于阈值的流将被判定为未知类的流;
6-2)基于步骤6-1)中得到的分类结果,为待分类流打标签;若待分类流被判定为已知类流,则其标签为步骤4)中得到的具体应用类别标签;若待分类流被判定为未知类,则将其标签标记为未知类别应用标签。
6.一种基于证据不确定性评估的深度学习未知网络流量分类***,其特征在于,包括用于构建流证据提取模型的模型训练阶段和用于已知类与未知类流分类的流分类阶段,其中:
模型训练阶段包含数据预处理和证据提取模型训练两个顺序模块;首先以给定已标记的已知类别的流量作为输入,由数据预处理模块对输入的原始网络流量数据包集合进行双向流构建以及流序列信息提取,从而得到定长的流序列集合;然后,将流序列集合输入至流证据提取模型训练模块,流证据提取模型学习并收集每条流的证据,根据每条流的证据计算其不确定性值,并选取不确定性值为已知类流的不确定性阈值;本模块的输出为流证据提取模型及已知类流的不确定性阈值;
流分类阶段包含数据预处理、流证据提取及流分类三个顺序模块;首先,以未标记的混杂流量作为输入,由数据预处理模块对输入原始网络流量数据包集合进行双向流构建以及流序列信息提取,得到待分类流序列集合;流证据提取模块以待分类流序列集合为输入,使用流证据提取模型训练模块所生成的流证据提取模型,提取待分类样本的流证据并输出其初始预测标签;然后,根据待分类样本的流证据计算其不确定性值;流分类模块以上一模块输出的流的不确定性值和初始预测标签为输入,通过比较待分类流的不确定性值和已知类流的不确定性阈值的大小,对待分类样本的类别进行判别;若待分类流的不确定性值大于/>则该分类流为未知类应用流量并将其打上未知类标签;若待分类流的不确定性值小于或等于/>则该分类流为已知类应用流量,其标签为具体应用类别标签;分类阶段的输出结果为未标记的混杂流量所对应的具体应用类别标签和未知类标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311683616.9A CN117633627A (zh) | 2023-12-10 | 2023-12-10 | 一种基于证据不确定性评估的深度学习未知网络流量分类方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311683616.9A CN117633627A (zh) | 2023-12-10 | 2023-12-10 | 一种基于证据不确定性评估的深度学习未知网络流量分类方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117633627A true CN117633627A (zh) | 2024-03-01 |
Family
ID=90021590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311683616.9A Pending CN117633627A (zh) | 2023-12-10 | 2023-12-10 | 一种基于证据不确定性评估的深度学习未知网络流量分类方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117633627A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117974634A (zh) * | 2024-03-28 | 2024-05-03 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
-
2023
- 2023-12-10 CN CN202311683616.9A patent/CN117633627A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117974634A (zh) * | 2024-03-28 | 2024-05-03 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
CN117974634B (zh) * | 2024-03-28 | 2024-06-04 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | CNN and RNN based payload classification methods for attack detection | |
CN107527068B (zh) | 基于cnn和域自适应学习的车型识别方法 | |
WO2019144521A1 (zh) | 信息物理交通***中基于深度学习的恶意攻击检测方法 | |
CN109218223B (zh) | 一种基于主动学习的鲁棒性网络流量分类方法及*** | |
CN107292097B (zh) | 基于特征组的中医主症选择方法 | |
CN113806746B (zh) | 基于改进cnn网络的恶意代码检测方法 | |
CN115348074B (zh) | 深度时空混合的云数据中心网络流量实时检测方法 | |
CN110225001B (zh) | 一种基于主题模型的动态自更新网络流量分类方法 | |
CN104601565A (zh) | 一种智能优化规则的网络入侵检测分类方法 | |
CN113723440B (zh) | 一种云平台上加密tls应用流量分类方法及*** | |
CN113269647B (zh) | 基于图的交易异常关联用户检测方法 | |
CN117633627A (zh) | 一种基于证据不确定性评估的深度学习未知网络流量分类方法及*** | |
CN112529638A (zh) | 基于用户分类和深度学习的服务需求动态预测方法及*** | |
Chu et al. | Co-training based on semi-supervised ensemble classification approach for multi-label data stream | |
CN116827873A (zh) | 一种基于局部-全局特征注意力的加密应用流量分类方法及*** | |
CN113935398B (zh) | 一种物联网环境下基于小样本学习的网络流量分类方法及*** | |
Ali et al. | Fake accounts detection on social media using stack ensemble system | |
CN111224998A (zh) | 一种基于极限学习机的僵尸网络识别方法 | |
CN113887642A (zh) | 一种基于开放世界的网络流量分类方法及*** | |
CN114358177A (zh) | 一种基于多维度特征紧凑决策边界的未知网络流量分类方法及*** | |
Xiong et al. | Anomaly network traffic detection based on deep transfer learning | |
CN113256507B (zh) | 一种针对二进制流量数据生成图像的注意力增强方法 | |
CN115879030A (zh) | 一种针对配电网的网络攻击分类方法和*** | |
CN115622810A (zh) | 一种基于机器学习算法的业务应用识别***及方法 | |
Gong et al. | Research on mobile traffic data augmentation methods based on SA-ACGAN-GN |
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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Lai Yingxu Inventor after: Yue Siqi Inventor after: Wang Yipeng Inventor before: Lai Yingxu Inventor before: Yue Siqi Inventor before: Wang Yipeng |