一种基于深度判别特征的网络流量分类系统及方法技术方案

技术编号:23344817 阅读:23 留言:0更新日期:2020-02-15 04:21
本发明专利技术涉及一种基于深度判别特征的网络流量分类系统及方法,包括:预处理模块和模型学习模块,预处理模块:将不同应用产生的长度不一的网络流作为输入,将每条网络流表示为固定大小的流矩阵,以满足卷积神经网络(CNN)的输入格式要求;模型学习模块:以预处理模块得到的流矩阵作为输入,在度量学习正则化项和交叉熵损失项共同构成的目标函数的监督下,对深度卷积神经网络进行训练,使得神经网络可以对输入的流矩阵学习得到更具判别性的特征表示,从而使得分类结果更加准确。

A network traffic classification system and method based on depth discrimination feature

【技术实现步骤摘要】
一种基于深度判别特征的网络流量分类系统及方法
本专利技术涉及一种基于深度判别特征的网络流量分类系统及方法,属于计算机网络,网络流量分类

技术介绍
网络流量分类作为增强网络可控性的基础技术之一,在网络监管和网络安全中发挥着至关重要的作用。例如,网络服务提供商通过对网络流量进行分类来分析网络流量分布,进而进行更好的QoS(QualityofService)控制;企业网络通过流量识别技术来控制应用访问;一些国家政府对非法或敏感流量的合法拦截需要首先了解通过其网络传输的内容类型。在网络安全方面,网络流量分类是入侵检测系统的核心部分,其可发现网络中的异常流量,以便于及时采取有效的防御措施。鉴于以上各种需求,实现准确高效的流量分类与识别具有极其重要的意义。当前,网络流量分类方法主要可以被归纳为四个类别:基于端口的方法、基于包负载内容的方法、基于统计学习的方法和基于深度学习的方法。基于端口的方法通过检查网络数据包的传输层端口号,然后根据互联网数字分配机构(IANA)定制的端口号与应用的对应关系来对网络流量进行分类。虽然基于端口的分类方法简单、快速,但是随着端口混淆、网络地址转换(NAT)、端口转发、协议嵌入和随机端口分配等技术的出现,使得其分类性能显著下降。考虑到基于端口的分类方法的不足,相关研究人员提出了基于包负载内容的分类方法。该类方法以深度包检测(DPI)技术为代表,其通过分析数据包应用层载荷内容来对已知的应用签名进行匹配。DPI技术具有识别准确率高的优点,但是与此同时其面临着以下不足:(1)当加密技术被应用于载荷数据时,DPI技术将失去作用;(2)DPI技术无法识别未知特征值,当网络应用的特征值发生变化时,相应的特征值库必须及时更新;(3)由于需要对每个数据包的负载内容进行检查,DPI技术的时间和空间开销巨大;(4)对数据包负载内容进行检查面临着隐私保护的问题。在过去的十多年中,人们对有关机器学习技术在流量分类方面的应用进行了广泛研究。其中,机器学习算法与流统计特征相结合的方法受到了极大的关注。这种方法假定每个应用的流统计特性(例如:最大包长度、最小包长度、包到达时间间隔和流持续时间)是不同的,因此可以通过使用各种机器学习算法训练分类器来对网络流量进行分类与识别。虽然基于流统计特征的方法在协议或者应用族等粗粒度的分类上取得的不错的效果,但是在面向具体网络应用的分类中效果并不理想。这是由于在面向具体的网络应用进行流量分类时,简单的流统计特征不能有效地区分来自不同应用的流量。近年来,随着深度学习技术在计算机视觉、语音和自然语言处理等方面的成功应用,相关研究人员开始将深度学习技术应用于网络流量分类。借助于深度学习技术强大的特征学习和表征能力,其在网络流量分类任务上取得了良好的效果。与传统基于统计的方法相比,这种方法使用深层结构的神经网络(如堆叠式自动编码器或CNN)自动从原始输入数据中学习特征,从而不需要繁琐的特征工程或专家知识的参与。虽然基于深度学习的方法已经在网络流量分类领域取得了很大的成功,但是网络流量分类任务中存在的类内数据多样性和类间数据相似性问题仍然没有被很好地解决。这是由于大部分已有的方法仅仅是将深度网络模型作为特征提取器来使用,而没有考虑设计新的更有效的目标函数。已有的基于深度学习技术的网络流量分类方法往往仅将深度网络模型作为特征提取器来使用,不能有效地解决网络流量分类任务中存在的类内数据多样性和类间数据相似性问题,从而很难达到更加准确地对网络流量进行分类。
技术实现思路
本专利技术技术解决问题:克服现有技术的不足,提供一种基于深度判别特征的网络流量分类系统及方法,能够更加准确地对网络流量进行分类。本专利技术技术解决方案:一种基于深度判别特征的网络流量分类系统,包括:预处理模块和模型学习模块;预处理模块:以不同应用产生的长度不一的网络流作为输入,将每条网络流表示为固定大小的流矩阵,以满足卷积神经网络(CNN)的输入格式要求;将经过预处理的满足CNN输入格式要求的流矩阵称为网络流样本,其中,每个应用产生的网络流对应一个类别,不同应用产生的网络流属于不同的类别;模型学习模块:将已收集的所有应用产生的网络流样本作为训练集,以训练集中的网络流样本作为输入,在度量学习正则化项和交叉熵损失项共同构成的目标函数的监督下,对CNN进行训练,使得CNN对输入的网络流样本学习得到更具判别性的特征表示,从而使得分类结果更加准确。所述预处理模块具体处理流程如下:(1)网络流为具有相同IP五元组<源IP,源端口,目的IP,目的端口,传输层协议>的一组连续的数据包;对于基于tcp连接的网络流来说,前3个数据包是相同的用来建立tcp连接的握手数据包,若网络流长度,即包含的数据包个数小于4,则丢弃,否则跳转至步骤(2);(2)截取每条网络流前n个数据包和每个数据包的前m个字节,将每条网络流表示为特征向量;优选截取网络流的前32个数据包,并且对于每个数据包,截取从传输层头开始的512个字节,若网络流长度小于32或者IP包长度小于512,则用0填充,将网络流表示成大小为32*512的矩阵;(3)将步骤(2)中所得矩阵的每个元素除以255来对该矩阵进行归一化处理;(4)将步骤(3)中所得矩阵大小重新调整为128*128;经过以上预处理过程,每条网络流被表示为了大小为128*128的流矩阵。所述模型学习模块中,目标函数如下:J=min(J1(X,Y,θce)+λJ2(X,θml))(1)其中,J1和J2分别为交叉熵损失项和度量学习正则化项,所述交叉熵损失项指在最小化给定训练样本上的经验风险;λ是一个用来控制J1和J2相对重要性的权衡系数;X={xi|i=1,2,...,N}是训练样本集,Y={yi|i=1,2,...,N}是训练样本集对应的标签集合,N是训练样本集中包含的样本个数;是一个只有一个元素为1,其余元素都为0的标签向量;k是类别个数;θce和θml分别是交叉熵损失项和度量学习正则化项需要学习的参数。所述交叉熵损失项如下:其中,表示标签向量yn的第i个元素,f(·)是一个由CNN建模表示的非线性映射函数,是CNN为样本xn提取到的特征向量,Wj是softmax层权重的第j列,是相应的偏置项。所述模型学习模块中,度量学习正则化项的目标是寻找一个合适的保持输入数据对之间距离结构的相似性度量,采用对比嵌入(contrastiveembedding)函数作为正则化项,度量学习正则化项的输入是样本对,具体如下:对比嵌入以成对样本对(xi,xj)作为输入,其中,是样本对指示器,表示样本对(xi,xj)是否来自同一类别,h(x)=max(0,1-x)是铰链(hinge)损失函数,D(xi,xj)是特征向量f(xi)和f(xj)之间的欧式距离,定义如下:D(xi,xj)=||f(xi)-f(xj)||2(4)其中,||·||2是L2正则操作;本文档来自技高网
...

【技术保护点】
1.一种基于深度判别特征的网络流量分类系统,其特征在于,包括:预处理模块和模型学习模块;/n预处理模块:以不同应用产生的长度不一的网络流作为输入,将每条网络流表示为固定大小的流矩阵,以满足卷积神经网络CNN的输入格式要求;将经过预处理的满足CNN输入格式要求的流矩阵称为网络流样本,其中,每个应用产生的网络流对应一个类别,不同应用产生的网络流属于不同的类别;/n模型学习模块:将已收集的所有应用产生的网络流样本作为训练集,以训练集中的网络流样本作为输入,在度量学习正则化项和交叉熵损失项共同构成的目标函数的监督下,对CNN进行训练,使得CNN对输入的网络流样本学习得到更具判别性的特征表示,从而使得分类结果更加准确。/n

【技术特征摘要】
1.一种基于深度判别特征的网络流量分类系统,其特征在于,包括:预处理模块和模型学习模块;
预处理模块:以不同应用产生的长度不一的网络流作为输入,将每条网络流表示为固定大小的流矩阵,以满足卷积神经网络CNN的输入格式要求;将经过预处理的满足CNN输入格式要求的流矩阵称为网络流样本,其中,每个应用产生的网络流对应一个类别,不同应用产生的网络流属于不同的类别;
模型学习模块:将已收集的所有应用产生的网络流样本作为训练集,以训练集中的网络流样本作为输入,在度量学习正则化项和交叉熵损失项共同构成的目标函数的监督下,对CNN进行训练,使得CNN对输入的网络流样本学习得到更具判别性的特征表示,从而使得分类结果更加准确。


2.根据权利要求1所述的基于深度判别特征的网络流量分类系统,其特征在于:所述预处理模块具体处理流程如下:
(1)网络流为具有相同IP五元组<源IP,源端口,目的IP,目的端口,传输层协议>的一组连续的数据包;对于基于tcp连接的网络流来说,前3个数据包是相同的用来建立tcp连接的握手数据包,若网络流长度,即包含的数据包个数小于4,则丢弃,否则跳转至步骤(2);
(2)截取每条网络流前n个数据包和每个数据包的前m个字节,将每条网络流表示为特征向量;优选截取网络流的前32个数据包,并且对于每个数据包,截取从传输层头开始的512个字节,若网络流长度小于32或者IP包长度小于512,则用0填充,将网络流表示成大小为32*512的矩阵;
(3)将步骤(2)中所得矩阵的每个元素除以255来对该矩阵进行归一化处理;
(4)将步骤(3)中所得矩阵大小重新调整为128*128;
经过以上预处理过程,每条网络流被表示为了大小为128*128的流矩阵。


3.根据权利要求1所述的基于深度判别特征的网络流量分类系统,其特征在于:所述模型学习模块中,目标函数如下:
J=min(J1(X,Y,θce)+λJ2(X,θml))(1)
其中,J1和J2分别为交叉熵损失项和度量学习正则化项,所述交叉熵损失项指在最小化给定训练样本上的经验风险;λ是一个用来控制J1和J2相对重要性的权衡系数;X={xi|i=1,2,...,N}是训练样本集,Y={yi|i=1,2,...,N}是训练样本集对应的标签集合,N是训练样本集中包含的样本个数;是一个只有一个元素为1,其余元素都为0的标签向量;k是类别个数;θce和θml分别是交叉熵损失项和度量学习正则化项需要学习的参数。


4.根据权利要求2所述的基于深度判别特征的网络流量分类系统,其特征在于:所述交叉熵损失项如下:



其中,表示标签向量yn的第i个元素,f(·)是一个由CNN建模表示的非线性映射函数,是CNN为样本xn提取到的特征向量,Wj是softmax层权重的第j列,是相应的偏置项。


5.根据权利要求2所述的基于深度判别特征的网络流量分类系统,其特征在于:所述模型学习模块中,度量学习正则化项的目标是寻找一个合适的保持输入数据对之间距离结构的相似性度量,采用对比嵌入(contrastiveembedding)函...

【专利技术属性】
技术研发人员:于爱民赵力欣蔡利君马建刚孟丹徐震
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1