CN116015708A - 基于深度学习预测不确定性的恶意流量开集识别方法及装置 - Google Patents
基于深度学习预测不确定性的恶意流量开集识别方法及装置 Download PDFInfo
- Publication number
- CN116015708A CN116015708A CN202211442723.8A CN202211442723A CN116015708A CN 116015708 A CN116015708 A CN 116015708A CN 202211442723 A CN202211442723 A CN 202211442723A CN 116015708 A CN116015708 A CN 116015708A
- Authority
- CN
- China
- Prior art keywords
- evidence
- model
- uncertainty
- vector
- malicious
- 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 67
- 238000013135 deep learning Methods 0.000 title claims abstract description 30
- 239000013598 vector Substances 0.000 claims abstract description 62
- 238000012549 training Methods 0.000 claims abstract description 39
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 34
- 238000007781 pre-processing Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 37
- 238000009826 distribution Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 13
- 238000011176 pooling Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 4
- 241000197727 Euscorpius alpha Species 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 24
- 238000002474 experimental method Methods 0.000 description 17
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 7
- 101000869717 Homo sapiens Probable mitochondrial glutathione transporter SLC25A40 Proteins 0.000 description 4
- 102100032418 Probable mitochondrial glutathione transporter SLC25A40 Human genes 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013145 classification model Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013210 evaluation model Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于深度学习预测不确定性的恶意流量开集识别方法及装置。该方法包括:步骤1:构建并训练深度证据恶意流量开集识别模型;所述深度证据恶意流量开集识别模型包括证据生成模块和结果推导模块;其中,所述证据生成模块采用卷积神经网络,用于将输入的特征矢量转化为证据矢量;所述结果推导模块采用证据深度学习来量化输入的证据矢量的分类不确定性;步骤2:对待检测的原始流量文件进行数据预处理得到特征矢量;步骤3:将所述特征矢量输入至训练好的深度证据恶意流量开集识别模型,得到识别结果。
Description
技术领域
本发明涉及恶意流量识别技术领域,尤其涉及一种基于深度学习预测不确定的恶意流量开集识别方法及装置。
背景技术
随着互联网、云计算、大数据和物联网技术的迅速发展和全面应用,网络已经遍及到人们日常生产和生活中。相应的,针对网络的攻击活动越来越频繁,网络面临着众多的攻击和威胁。网络攻击产生的恶意流量是目前主要的网络安全威胁之一,也是网络安全监测的关键对象。
恶意流量识别旨在将包含恶意行为的流量分类到若干个预先定义的流量类别(闭集)。现有的恶意流量识别方法以监督学习或非监督学习的方式来识别攻击行为。监督学习在已知类的流量样本上训练数据驱动的分类器,取得了令人满意的结果,但忽略了训练集中已有类别之外的样本。一旦一个陌生样本被提交给分类器,它可能会被错误地分类为预定义的类,从而导致很高的误报率。无监督学习例如聚类,则通过收集特征空间中来自同一类的未标记样本达到流量分类的目标,因此无监督学习天然具有处理未知类的能力。然而,它在处理高维流量数据时精度不高,实际工程中使用受限。由于新的多态恶意软件、零日攻击不断出现,恶意软件攻击的可变性不断增加,许多恶意攻击仍然未被发现,其产生的未知流量给网络管理带来了潜在的威胁,成为恶意流量识别系统性能提升的主要障碍。
实际应用中,恶意流量识别本质上是一个开集识别问题,它要求分类器准确识别已知恶意流量,同时当未知流量出现时,模型能够分辨。开集识别的核心是区分K个闭集类之外的开集数据的能力,难点在于如何在缺乏未知类样本的情况下对未知类建模,比封闭集识别更具挑战性,对于安全相关应用的意义更加重大。现有的旨在解决开集恶意流量识别问题的工作相当有限,其主要是基于阈值的未知类检测方案,依赖于如何训练好一个分类器,并在此基础上进行未知类检测。有研究提出最大softmax概率值可作为未知类检测的指标,确定阈值为已知类样本最大softmax值的下界,但softmax函数的归一化性质常常会使输出值虚高,最终导致大量未知类样本被错误划分为已知类。Open-CNN方法[1]则采用潜在空间中测试样本与已知类样本的距离,将距离上界作为阈值,但分类器从训练集中学习到的距离函数无法正确度量测试集,在识别未知类时无法充分发挥作用,导致未知类识别成效不彰。
发明内容
针对传统闭集流量分类模型以高置信度错误分类未知类的问题,本发明将深度学习模型不确定性评估应用到恶意流量开集识别问题中,提供一种基于深度学习预测不确定性的恶意流量开集识别方法及装置,解决了传统闭集方法不能有效识别未知攻击的问题。
一方面,本发明提供一种基于深度学习预测不确定性的恶意流量开集识别方法,包括:
步骤1:构建并训练深度证据恶意流量开集识别模型;所述深度证据恶意流量开集识别模型包括证据生成模块和结果推导模块;其中,所述证据生成模块采用卷积神经网络,用于将输入的特征矢量转化为证据矢量;所述结果推导模块采用证据深度学习来量化输入的证据矢量的分类不确定性;
步骤2:对待检测的原始流量文件进行数据预处理得到特征矢量;
步骤3:将所述特征矢量输入至训练好的深度证据恶意流量开集识别模型,得到识别结果。
进一步地,数据预处理包括会话划分、数据包处理和特征矢量化;
所述会话划分是指根据五元组信息将原始流量文件划分为会话流;
所述数据包处理包括去除以太网层、进行IP匿名和填充包头部;
所述特征矢量化是指将所有会话流处理为具有相同维度的特征矢量。
进一步地,所述特征矢量化的过程具体包括:设定符合模型要求的特征矢量维度为n1×n2,n1为每个会话流允许包括的数据包数量,n2为每个数据包允许包含的字节长度,然后针对会话流集合中的任意一个会话流s执行下述操作:若其包含的数据包数量不小于n1,则提取s的前n1个数据包;反之,则使用0将其填充至n1个数据包;针对会话流s中的任意一个数据包pk执行下述操作:若其长度大于n2,则截取pk的前n2个字节;反之,则使用0将pk长度填充至n2。
进一步地,所述证据生成模块由浅层至深层依次包括两个卷积层、一个池化层和两个全连接层;输入的特征矢量依次通过卷积层、池化层和全连接层,进而被转化为证据矢量。
进一步地,所述结果推导模块的处理过程具体包括:
给定一个用于K类分类的样本x(i),根据其对应的证据矢量基于主观逻辑理论将所述证据矢量e(i)转换为狄利克雷分布的浓度参数α(i),即α(i)=e(i)+1,并记作且进而推导出相应的狄利克雷分布Dir(p(i)|α(i));进而按照公式(2)计算得到所述证据矢量e(i)的信念质量bk和不确定性u(i);以及按照公式(3)计算得到样本x(i)属于第k个类别的期望概率
进一步地,在训练所述深度证据恶意流量开集识别模型的过程中,采用公式(6)所示的损失函数来指导模型向正确的方向训练:
进一步地,在训练所述深度证据恶意流量开集识别模型的过程中,还包括:采用最大化准确性和不确定性AvU函数来校准模型,具体包括:按照公式(8)建立最大类概率和不确定性之间的对数约束关系LAvU以最大化AvU函数:
对应地,采用公式(9)所示的损失函数来指导模型向正确的方向训练:
其中,N表示训练集中样本总数。
另一方面,本发明提供一种基于深度学习预测不确定性的恶意流量开集识别装置,包括:
模型构建模块,用于构建并训练深度证据恶意流量识别模型;所述深度证据恶意流量识别模型包括证据生成模块和结果推导模块;其中,所述证据生成模块采用卷积神经网络,用于将输入的特征矢量转化为证据矢量;所述结果推导模块采用证据深度学习来量化输入的证据矢量的分类不确定性;
数据预处理模块,用于对待检测的原始流量文件进行数据预处理得到特征矢量;
识别模块,用于将所述特征矢量输入至训练好的深度证据恶意流量识别模型,得到识别结果。
本发明的有益效果:
本发明首先使用原始流量数据作为特征进行恶意流量识别,能够保留原始数据包的所有特征信息,避免人工特征提取导致信息丢失;之后搭建了深度证据恶意流量识别模型(DEMTR),同时量化多分类概率和预测不确定性,并将预测不确定性用于区分已知样本和未知样本。在真实流量数据集上验证了所提方法的有效性和鲁棒性,实验结果表明所提方法对开集场景适应良好,同时在传统的封闭集识别设置中仍然保持了较高的性能。
附图说明
图1为本发明实施例提供的基于深度学习预测不确定性的恶意流量开集识别方法的流程示意图;
图2为本发明实施例提供的DEMTR模型结构图;
图3为本发明实施例提供的狄利克雷分布的示例(以三分类为例子,假设样本标签是第一类);
图4为本发明实施例提供的不确定性分布直方图;
图5为本发明实施例提供的F1分数与开放度之间的关系。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有基于机器学习的恶意流量识别技术能够有效检测异常流量,但它们几乎都聚焦于闭集环境中的异常流量检测,即训练数据和测试数据来自相同的标签空间。而现实的网络环境是开放的,恶意软件不断更新和迭代,现有技术条件下无法穷尽所有的攻击类别以训练一个完备的识别模型。当一种未知的攻击出现时,若已存在的检测系统不能正确识别它,将会严重损害网络安全。针对该问题,本发明建立了一个既能识别已知恶意流量,又能有效处理未知流量的网络模型。通过将深度学习的预测不确定性应用到未知类识别任务中,使用证据神经网络对多分类概率和预测不确定性进行建模,搭建了深度证据恶意流量开集识别模型(DeepEvidenceMalwareTrafficRecognition,DEMTR),用于开集场景下的恶意流量识别。深度证据恶意流量开集识别模型通过训练学习到可区分的特征用于恶意流量识别,并对预测结果的不确定性进行建模以拒绝未知样本。具有高不确定性的流量被视为未知的流量,而低不确定性流量则根据学习到的分类概率进行分类,以达到开集识别的目的。
实施例1
如图1所示,本发明实施例提供一种基于深度学习预测不确定性的恶意流量开集识别方法,包括训练阶段和测试阶段;
训练阶段:
S101:构建深度证据恶意流量开集识别模型;
具体地,所述深度证据恶意流量开集识别模型包括证据生成模块和结果推导模块;其中,所述证据生成模块采用卷积神经网络,用于将输入的特征矢量转化为证据矢量;所述结果推导模块采用证据深度学习来量化输入的证据矢量的分类不确定性;
作为一种可实施方式,证据生成模块的结构如图2所示,由浅层至深层依次包括两个卷积层、一个池化层和两个全连接层;输入的特征矢量依次通过卷积层、池化层和全连接层,进而被转化为证据矢量。其中,卷积层的主要作用是对输入的特征矢量进行特征提取,将全局的特征信息保存在多个局部特征矩阵中。而池化层则进行数据降维和特征压缩,接着两个全连接层的主要作用是将前层计算得到的特征空间映射到样本标记空间,将特征整合为若干个值,减少特征位置对于分类结果的影响。特别地,本实施例中,池化层采用最大值池化,即:选取某一局部的最大值作为该局部数据的代表。
特别地,给定一个用于K类分类的样本x(i),其对应的证据e(i)表示为:
e(i)=g(f(x(i);θ))(1)
其中,f(·)是由卷积神经网络学习到的参数为θ的函数,g(·)是保持证据e(i)非负性的证据函数。具体来说,证据函数可以由激活函数实现(即RELU、Sigmoid等),以确保网络输出非负的证据向量e(i)。
需要说明的是,证据作为从数据中收集的支持量的度量,有利于样本被分类为某一特定类别。本实施例使用一维卷积神经网络生成证据矢量,因为一维卷积神经网络可以从输入中捕获证据诱导分类意见,并且卷积神经网络(ConvolutionalNeuralNetwork,CNN)由于具有参数共享和稀疏连接特性并擅长提取数据局部特征,相比其他深度学习模型更适合处理特征维度较高的数据,如图像、文本和本文的加密流量。此外,不同于2D-CNN,1D-CNN不需要将输入转换为二维形式,能够最大限度地保留数据原始信息,有利于加密流量的分类和识别。
作为一种可实施方式,如图2所示,结果推导模块处理过程具体包括:
给定一个用于K类分类的样本x(i),根据其对应的证据矢量基于主观逻辑理论将所述证据矢量e(i)转换为狄利克雷分布的浓度参数α(i),即α(i)=e(i)+1,并记作且进而推导出相应的狄利克雷分布Dir(p(i)|α(i));进而按照公式(2)计算得到所述证据矢量e(i)的信念质量bk (i)bk和不确定性u(i);以及按照公式(3)计算得到样本x(i)属于第k个类别的期望概率
从公式(2)中可以发现,某一类别获得的证据量越大,其信念质量越高,而不确定性与观测到的总证据量成反比,总证据量越小,不确定性越大。标准神经网络分类器的输出是某一个样本所属的可能类别的概率分配,但是在证据上参数化的狄利克雷分布表示每一个这样的概率分配的密度,因此它对二阶概率和不确定性进行建模。因此样本x(i)属于第k个类别的期望概率为相应的狄利克雷分布的均值,计算公式如公式(3)所示。
例如,以三分类任务为例进一步阐释上述公式(2)和(3),假定证据e=<30,0,0<,可得狄利克雷浓度参数α=<31,1,1>,计算得到其类别概率为p=<0.94,0.03,0.03>,对应的不确定性u为0.09,表明观测到了足够的证据以获得确信的预测。相反,假使证据e=<0.01,0.01,0.01>,可得狄利克雷浓度参数α=<1.01,1.01,1.01>,其不确定性u接近1,证据高度不足导致可疑的分类结果。当证据e=<1,1,1>时,仍然具有较高的不确定性u,但相较于第二种情况,其不确定性是减小的。
需要说明的是,主观逻辑理论[2]通过式子α(i)=e(i)+1将学习到的证据e(i)转换为狄利克雷分布的浓度参数,进而构建狄利克雷分布,将狄利克雷分布看作是类别分布的共轭先验,使深度神经网络在输出预测结果的同时给出不确定性。狄利克雷分布的浓度参数需要被确定,其与预测结果的不确定性紧密联系。因此,本实施例的结果推导模块采用证据深度学习来量化分类不确定性,其能够同时建模分类概率和总体不确定性。此外,主观逻辑理论将多分类问题看作一个信念质量分配问题,假定总体信念质量是一定的,对于K分类问题,信念质量被划分为K+1份,分别对应类别的信念质量和当前预测结果的置信度,这K+1个值是非负的并且和为1,即应满足公式(4):
其中,u≥0和bk≥0分别表示总体不确定性和第k个类别的信念质量。
S102:构建训练集,采用训练集训练所述深度证据恶意流量开集识别模型,采用训练好的深度证据恶意流量开集识别模型作为恶意流量分类器或识别器;
具体地,本发明将原始的网络流量数据包经数据预处理后得到特征矢量,将特征矢量输入至所述深度证据恶意流量开集识别模型进行训练。具体定义如下:给定训练数据集其中xi是由一条会话流组成的实例样本,yi是xi的标签,N表示训练集中的会话流总数。
训练的目的在于:由于在测试阶段,测试集Dte是一个开放集,其包含了未在训练集中出现的攻击类型,因此训练深度证据恶意流量开集识别模型旨在学习一个模型M:x→y,x∈Dte,y∈Yos={1,2,...,k,unknown},其中被标记为unknown的实例样本x表示未在训练阶段中出现的新类样本。
作为一种可实施方式,数据预处理包括三个关键步骤,具体描述如下:
(1)会话划分:根据五元组信息(即源IP地址、源端口、目的IP地址、目的端口、网络协议)将原始流量文件划分为会话流。
步骤1.3:将s加入到S中;
步骤1.4:重复步骤1.2至步骤1.3,直至Pi中所有数据包皆被选中。
(2)数据包处理包括去除以太网层、进行IP匿名和填充UDP头部;
具体地,在TCP/IP结构中每个流量数据包由以太网层、网络层、传输层和应用层组成。针对会话流集合中的任意一个会话流s中的每个数据包pk均执行数据包处理过程,具体包括:
步骤2.1:首先去除以太网层,这是因为:以太网层中的3个字段分别是源MAC地址、目的MAC地址和协议版本,这些字段在流量分类任务中增益较小,因此本实施例不使用以太网层的数据。
步骤2.2:接着进行IP匿名(例如将网络层首部中的源IP地址和目的IP地址字段全部设置为0.0.0.0),这是为了避免模型将网络层的IP地址信息视为攻击识别的关键特征。
步骤2.3:最后填充包头部。这是因为:传输层用到的不同协议类型的包头长度是不一致的,出于特征结构统一性的考虑,需要将不同协议类型的包头长度调整为统一长度。例如,传输层的常用协议为TCP和UDP,TCP协议包头长度一般为20个字节,UDP协议包头长度一般为8字节,出于特征结构统一性的考虑,对于传输层协议为UDP的数据包,在该数据包的UDP头部结尾填充12个字节的0x00,使其长度也为20字节。
(3)特征矢量化:因为每个会话流包含的数据包数目不相同并且每个数据包包含字节长度有差异,该步骤的目的就是为了保证输入到模型的数据具有相同维度。
作为一种可实施方式,设定符合模型要求的特征矢量维度为n1×n2,n1为每个会话流允许包括的数据包数量,n2为每个数据包允许包含的字节长度,特征矢量化具体包括:针对会话流集合中的任意一个会话流s,若其包含的数据包数量不小于n1,则提取s的前n1个数据包;反之,则使用0将其填充至n1个数据包;针对会话流s中的任意一个数据包pk,若其长度大于n2,则截取pk的前n2个字节;反之,则使用0将pk长度填充至n2;如此,最终得到的会话流s的会话流特征维度为n1×n2。需要说明的是,为了达到最佳攻击识别性能,根据需要来确定数据包数目n1和字节长度n2的具体取值。
在实际应用中,可以采用下述流程来实具体实现特征矢量化:预先设定符合模型要求的每个会话流允许包括的数据包数量n1,每个数据包允许包含的字节长度n2,并初始化一个集合y作为中间量和一个集合Y作为特征矢量集合,基于此,针对任意一个会话流s,特征矢量化具体包括以下过程:
步骤3.1:从会话流s中取出一个数据包pk,若其长度大于n2,则截取pk的前n2个字节;反之,将pk长度填充至n2;
步骤3.2:将字节长度为n2的pk加入至y;
步骤3.3:重复步骤3.1至步骤3.2,直至y中的数据包数量不小于n1,跳转执行步骤3.4;若直至处理完会话流s中的所有数据包,y中的数据包数量仍小于n1,则使用0填充至n1,然后跳转执行步骤3.4;
步骤3.4:将y加入至Y。
与常用的人工流量数据包特征提取方法相比,本发明采用的数据预处理方法不需要过滤或设计需要提取的流量特征,能够保留每个数据包的所有特征信息。
整个数据预处理的算法可参见下述的算法1。
关于如何训练模型为每个样本获得分类证据,然后用来计算相应的分类概率和总体不确定性。当发现样本的某一特征与K类中的某一类别联系起来时,增加相应的证据,基于此来更新狄利克雷分布。例如,流量样本中的特定模式可能有助于将其分类为特定的类。进一步地,以远控恶意软件njRAT为例,njRAT产生的流量通常具有上行流量大于下行流量、PSH标志包和SYN标志包占比增加等特征,如果观测到流量具有这些特性,则增加njRAT类对应的狄利克雷浓度参数。
需要说明的是,在训练所述深度证据恶意流量开集识别模型的过程中,可传统的神经网络分类器所采用的公式(5)所示的损失函数来指导模型向正确的方向训练:
优选地,为了进一步校准所述深度证据恶意流量开集识别模型,本发明实施例调整上述的交叉熵损失使模型为每个样本的正确类别产生更多的证据,得到调整后的损失函数如公式(6)所示,采用该损失函数来指导模型向正确的方向训练:
优选地,使用Lmce训练的DEMTR模型能够给出样本的分类概率和预测不确定性,但其不确定性未被校准,直接用于未知识别可能是不可靠的。一个校准良好的模型在准确预测时应该是确定的,而当它可能不准确时,则应该给出较高的不确定性。研究表明神经网络的错误校准可能与负对数似然函数的过拟合有关[3]。由于(6)中的DEMTR目标函数相当于最小化负对数似然函数,因此经过训练的模型可能过拟合导致在恶意流量开集识别任务中泛化能力差。DEMTR模型最小化交叉熵损失等价于最小化负对数似然,因此其同样需要进一步被校准。为了进一步校准DEMTR模型,本发明实施例采用最大化准确性和不确定性(Accuracyvs.Uncertainty,AvU)函数这一方式。
其中nAC,nAU,nIC,nIU分别表示以下四类情况的样本数量,即准确且确定(AC)、准确且不确定(AU)、不准确且确定(IC)、不准确且不确定(IU)。图3展示了契合这四种情况的DEMTR模型输出的示例。为了校准预测不确定性,我们鼓励模型学习一个倾斜的和尖锐的狄利克雷分布以得到准确的预测(如图3(a)),并为不正确的预测给出一个无偏的和平坦的狄利克雷分布单纯形(如图3(d))。为达到这个目的,本发明实施例提出通过最大化AC和IU情况的期望来规范模型训练过程,具体为:按照公式(8)建立最大类概率和不确定性之间的对数约束关系LAvU以最大化AvU函数:
其中,是输入样本x(i)的最大类概率;根据公式(8)所示,当模型预测是准确的,类概率应该趋近于1,而不准确时趋近于0。相似地,当模型预测是确信的,不确定性u(i)应该趋近于0,反之趋近于1。仅当所有的准确预测都是确定的且不准确的预测都是不确定的,LAvU才等于0。
对应地,采用公式(9)所示的损失函数来指导模型向正确的方向训练:
其中,N表示训练集中样本总数。
测试阶段:
S103:对待检测的原始流量文件进行数据预处理得到特征矢量;
S104:将所述特征矢量输入至训练好的深度证据恶意流量开集识别模型,得到识别结果。
现有的深度学习模型通常在神经网络之后使用softmax函数进行分类并将softmax输出的最大值用于最终预测,但是使用softmax输出作为预测结果的置信度会得到偏高的置信度值,并且softmax输出对于错误的预测结果往往过于“自信”。为了克服最大softmax概率值虚高和距离度量泛化能力弱的缺陷,让模型能够在开集恶意流量识别任务中更好地发现未知类数据,本发明将原问题转化为一个不确定性估计问题。DEMTR同时解决了多类分类和不确定性估计问题,利用深度神经网络预测类概率的狄利克雷分布,将模型预测过程看作证据收集的过程,收集到的证据为量化模型预测不确定性提供了信息,在推理的过程中,未知的样本将产生高不确定性,进而使模型具有识别未知的能力。在真实数据集上将该模型与现有方法对比,所提方法在准确率和F1分数等多个指标上均有提高,具有一定的有效性和鲁棒性。
实施例2
对应上述的方法,本发明实施例提供一种基于深度学习预测不确定性的恶意流量开集识别装置,包括:模型构建模块、数据预处理模块和识别模块;
模型构建模块用于构建并训练深度证据恶意流量识别模型;所述深度证据恶意流量识别模型包括证据生成模块和结果推导模块;其中,所述证据生成模块采用卷积神经网络,用于将输入的特征矢量转化为证据矢量;所述结果推导模块采用证据深度学习来量化输入的证据矢量的分类不确定性。数据预处理模块用于对待检测的原始流量文件进行数据预处理得到特征矢量;识别模块用于将所述特征矢量输入至训练好的深度证据恶意流量识别模型,得到识别结果。
需要说明的是,本发明实施例是为了实现上述方法的,其功能具体可参考上述方法实施例,此处不在赘述。
为了验证本发明方法及装置的有效性和鲁棒性,相关实验如下。
(一)实验数据与实验环境
实验数据:使用MCFP数据集[4]作为实验数据。MCFP数据集由从真实的网络环境中捕获的原始流量数据组成,并且以pcap文件的形式存储数据。MCFP数据集覆盖多种类型的恶意软件,并且数据量巨大。本实验从中随机选择了20种攻击流量,其中10种组成了已知类数据集,剩余的流量组成未知类数据集。实验中使用的已知攻击和未知攻击的详细信息见表1。除此之外,已知类数据集按照8:1:1的比例被划分为训练集、验证集和已知类测试集。未知类数据集则全部用于测试。
实验环境:实验设备为一台安装了Ubuntu20.04操作系统、Intel XeonGold5218CPU和GTX3080 GPU的台式机。Pycharm2021被用作IDE,Python3.8作为编程语言,使用Pytorch 1.10.2作为深度学习平台,并辅以GPU加速。数据读取、会话划分和预处理操作涉及到python的Scapy库和DPKT库,数据格式转换和矩阵运算使用NumPy库
表1实验中所使用的已知攻击和未知攻击的详细信息
(二)评价指标
鉴于所提DEMTR模型本质上是一个K+1类分类模型,本实验使用准确率和F1分数(F1-Score)作为开集设置下评估模型有效性的指标。这些指标的定义如下:
准确率(Accuracy):它定义了被模型正确分类的网络流量样本数占测试集流量样本总数的比例。
F1分数(F1-Score):它被定义为精确率和召回率的调和平均数,是一个更有效的评估指标。它兼顾了精确率和召回率,能够反映模型的综合性能。
其中,假定C表示测试集中的某一类别,TP(真阳性)是正确归类为C类的样本数量,TN(真阴性)是正确归类为非C类的样本数量,FP(假阳性)是错误归类为C类的样本数量,FN(假阴性)是错误归类为非C类的样本数量(三)实验结果与分析
本实验分为三个阶段:阶段一旨在确定数据预处理中涉及超参数(n1,n2)的具体数值;阶段二和阶段三在阶段一工作的基础上,使用MCFP数据集将所提DEMTR模型分别与不确定性估计相关工作、恶意流量开集识别相关工作进行对比。
(1)特征提取超参数组合对比实验
数据预处理步骤涉及一组超参数(n1,n2),对应于攻击流量的空间特征,其乘积表示所提取的会话流空间特征的长度。为了满足2D-CNN模型的输入限制,一些相关工作将该值确定为784(28*28)或者1521(39*39)这样的二次幂形式,构造长度对称的二维特征矩阵。本文使用1D-CNN处理空间特征,所以不需要考虑此因素。超参数n1代表每个会话流中被截取的数据包数目,对数据集中流量会话进行统计分析后,我们发现超过95%的会话数据包个数多于5,同时超过95%的会话数据包个数少于30。因此对比实验中n1的取值区间为[5,30],取值间隔为5,一共有{5,10,15,20,25,30}共六种不同的取值选项。超参数n2表示每个数据包被截取的字节长度,其受限于以太网协议规定的最大传输单元,即数据包长度不能超过1500字节。同时加密流量的网络层和传输层的协议头部对攻击类型识别有较大用处,因此保留协议头部。为了尽可能地覆盖流量协议头部和部分具体数据传输环节的传输层载荷,对比实验中超参数n2的取值范围为[100,1500],取值间隔为200,一共有8种可能取值,分别为{100,300,500,700,900,1100,1300,1500}。n1和n2的取值组合共有48种,遍历其取值组合能够捕获n1和n2之间的依赖关系,以获得更优越的识别性能。
表2超参数组合对比实验结果
对于恶意软件流量识别数据集,表2列出了在不同(n1,n2)组合的情况下DEMTR模型的F1分数。从总体的趋势来看,随着会话流中被选取的数据包数和数据包中被截取的字节长度的增加,F1分数随之增加。直观地说,输入模型的字节和数据包越多,结果就越好,但训练的时间也会越长。实验结果表明模型的F1得分与(n1,n2)的取值并不是简单的线性正相关,盲目增加提取特征的维度可能会造成有效特征被干扰,从而削弱整个模型对恶意流量识别的效果。在表2列举的所有情况中,模型取得最佳F1得分时对应的n1、n2分别为30、1500,次佳时对应的n1、n2分别为20、500,考虑到特征提取工作量和模型训练的时间和资源需求,我们选定(n1,n2)的取值为(20,500)。超参数对比实验中,为了节省运行资源并缩短运行时间,仅从每个类中随机选择了800个样本。尽管训练样本数目较少导致训练得到的模型是欠拟合的,但仍能够体现超参数对模型识别性能的影响并给出最优超参数组合。
(2)不确定性估计对比实验
为了说明DEMTR模型得出的预测不确定性具有区分已知类和未知类的能力,本实验将其与两个代表性的不确定性估计方法BNN SVI[5]和MC Dropout[6]进行对比。BNN SVI通过近似神经网络权值上的后验分布来表示网络参数的后验不确定性,MC Dropout则使用dropout作为正则项来计算预测的不确定性。未知类检测性能可以通过图4的直方图进行评估。显然,BNN SVI和MC Dropout为已知类样本和未知类样本生成的不确定性的取值区间高度重合,而本发明方法为已知类实例赋予较小的不确定性而为未知类实例赋予较大的不确定性,能够更好地通过不确定性取值区分已知类和未知类。
(3)开集识别相关工作对比实验
将本发明方法DEMTR与最先进的恶意流量识别模型进行对比以验证其有效性,对比模型包括:(i)CNN,常见的基于softmax函数的一维卷积神经网络,直接使用softmax输出作为置信度过滤低置信度样本以适应开集场景,(ii)CNN_LSTM[7],最先进的基于深度学习的入侵检测模型,(iii)Open-CNN[1],将统计极值理论与卷积神经网络应用到未知网络攻击检测中的模型。
训练过程中,本发明模型使用LDEMTR损失函数替代传统的交叉熵损失,共进行20次迭代训练,batch大小被设置为256。所提模型使用Adam优化器,初始学习率为0.0001,每7个迭代衰减一次。我们将95%的训练数据被识别为已知类作为CNN模型和所提DEMTR模型阈值选定的准则。Open-CNN和CNN_LSTM的实现皆基于相应文献。所有模型在训练集上被训练,并进行了单类未知攻击测试和多类未知攻击测试。
(3-1)单类未知攻击测试
为了评估所提出的DEMTR模型在检测单一类型的未知攻击方面的性能,每轮实验中向已知类测试集中加入一种类型的未知攻击,计算准确率和F1分数这两个指标来反映未知类识别性能。表3列出了所提DEMTR模型与三种对比模型在单一类型的未知攻击下的实验结果
表3本发明DEMTR模型与基线模型在检测单一类型未知攻击方面的性能比较
从表3中可以看到,对于每一类未知攻击,所提DEMTR模型都具有最佳的准确率和F1分数。与最先进的恶意流量识别方法CNN_LSTM相比,所提DEMTR模型的未知类检测性能有较大提升,准确率最高提升幅度甚至高达70%;但准确率容易受到类别不平衡的影响,F1分数更能反映总体识别性能,DEMTR模型的F1分数最高提升21%,证明了它在未知攻击识别任务中的有效性。将具有开集操作的三个模型即CNN模型、Open-CNN模型和DEMTR模型进行对比,DEMTR模型识别性能最佳,Open-CNN模型次之,CNN模型最差,因此证明了DEMTR模型的优越性。CNN模型的准确率和F1分数最低表明直接使用预测概率作为判断未知类的条件是不合理的,其原因是基于SoftMax函数的神经网络对于错误分类也给出了较高的置信度,对预测过于自信。Open-CNN能够识别未知类,因为它使用了OpenMax层并输出了未知类的预测概率。另外,值得一提的是,对比方法CNN_LSTM是闭集分类模型,其将测试阶段出现的所有未知类实例错误分类为已知类,这就是其效果远差于所提DEMTR模型的原因。
(3-2)多类未知攻击测试
为了探究不同类别数量的未知攻击对所提算法的影响,绘制了F1分数与开放度曲线以展示随着开放度增加,F1分数的变化程度。开放度是开集识别问题中的一个重要概念,它表示这个问题有多“开放”。在本实验中,用N和K分别表示已知类别和未知类别的数量,则开放度可以更准确地表示为:
实验中,利用已知类训练集训练识别分类器,然后向已知类测试集中逐步加入未知类进行测试。未知类测试集包含10类,因此K值从0依次递增至10,较大的K意味着较大的开放度。对于每个开放点,随机从未知类测试集中选择K个新类并计算F1分数,重复10次随机选择后求平均值得到最终的F1分数,F1分数与开放度曲线如图5所示。
图5清晰地表明所提DEMTR模型取得了最佳性能。从图5可以看到,当开放度为0即尚未加入未知类时,CNN模型和CNN_LSTM模型的F1分数超过95%,这表明当测试数据中不包含未知类时,传统的基于深度学习的恶意流量识别模型能够达到很好的性能。然而,一旦向测试集中加入未知类,CNN和LSTM的识别性能迅速下降。随着开放度的增加,未知类在测试集中的占比逐渐增大,四种模型的F1分数曲线均呈下降趋势,但所提方法的下降幅度最小并且与其它对比方法的差距不断加大,证明其识别未知类的鲁棒性。需要注意的是,Open-CNN的封闭集精度明显低于其他对比方法,这是因为Open-CNN直接修改了激活层矢量并输出未知类预测概率,这可能会对已知类实例的准确预测造成负面影响。
本发明中所提及到的相关现有技术文献包括:
[1]Zhang Y,Niu J,Guo D,et al.Unknown network attack detection basedon open set recognition[J].Procedia Computer Science,2020,174:387-392.
[2]Jsang A.Subjective Logic:A formalism for reasoning underuncertainty[M].Springer,2018.
[3]Mukhoti J,Kulharia V,Sanyal A,et al.Calibrating Deep NeuralNetworks using Focal Loss[C].arXiv,2020.
[4]Malware Capture Facility Project[EB/OL].https://www.stratosphereips.org/datasets-malware.
[5]Blundell C,Cornebise J,Kavukcuoglu K,et al.Weight Uncertainty inNeural Networks[J].Computer Science,2015.
[6]Gal Y,Ghahramani Z.Dropout as a Bayesian Approximation:Representing Model Uncertainty in Deep Learning[C].International Conferenceon Machine Learning,2016.
[7]Zhang Y,Chen X,Jin L,et al.Network intrusion detection:Based ondeep hierarchical network and original flow data[J].IEEE Access,2019,7:37004-37016.
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.基于深度学习预测不确定性的恶意流量开集识别方法,其特征在于,包括:
步骤1:构建并训练深度证据恶意流量开集识别模型;所述深度证据恶意流量开集识别模型包括证据生成模块和结果推导模块;其中,所述证据生成模块采用卷积神经网络,用于将输入的特征矢量转化为证据矢量;所述结果推导模块采用证据深度学习来量化输入的证据矢量的分类不确定性;
步骤2:对待检测的原始流量文件进行数据预处理得到特征矢量;
步骤3:将所述特征矢量输入至训练好的深度证据恶意流量开集识别模型,得到识别结果。
2.根据权利要求1所述的基于深度学习预测不确定性的恶意流量开集识别方法,其特征在于,数据预处理包括会话划分、数据包处理和特征矢量化;
所述会话划分是指根据五元组信息将原始流量文件划分为会话流;
所述数据包处理包括去除以太网层、进行IP匿名和填充包头部;
所述特征矢量化是指将所有会话流处理为具有相同维度的特征矢量。
3.根据权利要求2所述的基于深度学习预测不确定性的恶意流量开集识别方法,其特征在于,所述特征矢量化的过程具体包括:设定符合模型要求的特征矢量维度为n1×n2,n1为每个会话流允许包括的数据包数量,n2为每个数据包允许包含的字节长度,然后针对会话流集合中的任意一个会话流s执行下述操作:若其包含的数据包数量不小于n1,则提取s的前n1个数据包;反之,则使用0将其填充至n1个数据包;针对会话流s中的任意一个数据包pk执行下述操作:若其长度大于n2,则截取pk的前n2个字节;反之,则使用0将pk长度填充至n2。
4.根据权利要求1所述的基于深度学习预测不确定性的恶意流量开集识别方法,其特征在于,所述证据生成模块由浅层至深层依次包括两个卷积层、一个池化层和两个全连接层;输入的特征矢量依次通过卷积层、池化层和全连接层,进而被转化为证据矢量。
8.基于深度学习预测不确定性的恶意流量开集识别装置,其特征在于,包括:
模型构建模块,用于构建并训练深度证据恶意流量识别模型;所述深度证据恶意流量识别模型包括证据生成模块和结果推导模块;其中,所述证据生成模块采用卷积神经网络,用于将输入的特征矢量转化为证据矢量;所述结果推导模块采用证据深度学习来量化输入的证据矢量的分类不确定性;
数据预处理模块,用于对待检测的原始流量文件进行数据预处理得到特征矢量;
识别模块,用于将所述特征矢量输入至训练好的深度证据恶意流量识别模型,得到识别结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211442723.8A CN116015708A (zh) | 2022-11-17 | 2022-11-17 | 基于深度学习预测不确定性的恶意流量开集识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211442723.8A CN116015708A (zh) | 2022-11-17 | 2022-11-17 | 基于深度学习预测不确定性的恶意流量开集识别方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116015708A true CN116015708A (zh) | 2023-04-25 |
Family
ID=86034249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211442723.8A Pending CN116015708A (zh) | 2022-11-17 | 2022-11-17 | 基于深度学习预测不确定性的恶意流量开集识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116015708A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117034124A (zh) * | 2023-10-07 | 2023-11-10 | 中孚信息股份有限公司 | 基于小样本学习的恶意流量分类方法、系统、设备及介质 |
CN117974634A (zh) * | 2024-03-28 | 2024-05-03 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
CN117974634B (zh) * | 2024-03-28 | 2024-06-04 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
-
2022
- 2022-11-17 CN CN202211442723.8A patent/CN116015708A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117034124A (zh) * | 2023-10-07 | 2023-11-10 | 中孚信息股份有限公司 | 基于小样本学习的恶意流量分类方法、系统、设备及介质 |
CN117034124B (zh) * | 2023-10-07 | 2024-02-23 | 中孚信息股份有限公司 | 基于小样本学习的恶意流量分类方法、系统、设备及介质 |
CN117974634A (zh) * | 2024-03-28 | 2024-05-03 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
CN117974634B (zh) * | 2024-03-28 | 2024-06-04 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Alrawashdeh et al. | Toward an online anomaly intrusion detection system based on deep learning | |
JP6498107B2 (ja) | 分類装置、方法、及びプログラム | |
US20170063893A1 (en) | Learning detector of malicious network traffic from weak labels | |
CN110691100A (zh) | 基于深度学习的分层网络攻击识别与未知攻击检测方法 | |
EP3767536A1 (en) | Latent code for unsupervised domain adaptation | |
CN111314331A (zh) | 一种基于条件变分自编码器的未知网络攻击检测方法 | |
CN113378990B (zh) | 基于深度学习的流量数据异常检测方法 | |
CN110808971A (zh) | 一种基于深度嵌入的未知恶意流量主动检测系统及方法 | |
Dawoud et al. | Deep learning for network anomalies detection | |
US11658989B1 (en) | Method and device for identifying unknown traffic data based dynamic network environment | |
CN112560596B (zh) | 一种雷达干扰类别识别方法及系统 | |
US20220129758A1 (en) | Clustering autoencoder | |
US20220129712A1 (en) | Deep neural network hardener | |
CN115348074A (zh) | 深度时空混合的云数据中心网络流量实时检测方法 | |
CN116015708A (zh) | 基于深度学习预测不确定性的恶意流量开集识别方法及装置 | |
CN115801374A (zh) | 网络入侵数据分类方法、装置、电子设备及存储介质 | |
CN115277189A (zh) | 基于生成式对抗网络的无监督式入侵流量检测识别方法 | |
Shuai et al. | Multi-source feature fusion and entropy feature lightweight neural network for constrained multi-state heterogeneous iris recognition | |
CN114218998A (zh) | 一种基于隐马尔可夫模型的电力系统异常行为分析方法 | |
CN114124437B (zh) | 基于原型卷积网络的加密流量识别方法 | |
CN111031042A (zh) | 一种基于改进d-s证据理论的网络异常检测方法 | |
CN114358177B (zh) | 一种基于多维度特征紧凑决策边界的未知网络流量分类方法及系统 | |
Samadzadeh et al. | Evaluating Security Anomalies by Classifying Traffic Using a Multi-Layered Model | |
Fahad et al. | Applying one-class classification techniques to IP flow records for intrusion detection | |
Vartouni et al. | Auto-threshold deep SVDD for anomaly-based web application firewall |
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 |