基于特征自学习的加密流量识别方法及装置与流程

文档序号:12493328阅读:1065来源:国知局
基于特征自学习的加密流量识别方法及装置与流程
本发明涉及网络安全领域,特别是涉及一种基于特征自学习的加密流量识别方法及装置。
背景技术
:随着网络的不断发展和普及,要求网络监管机构能对各种网络流量进行有效地识别、分类和控制,从而极大提高网络管理的有效性和安全性。但是随着网络发展,流量出现的形式千变万化,使得流量识别的复杂度也在提高,其中加密流量在网络中占有相当大的比重,给流量识别带来了新的挑战。现有流量识别技术的缺陷包括:1、无法识别采用动态端口和常用协议端口的流量,一些应用软件为了躲避检测和监管,会采用隐藏或假冒端口号,如改用动态端口或常用协议端口,使得基于端口的识别方法准确率降低。2、上述方法通过对数据包的应用层数据进行特征匹配来识别流量,但是加密的流量其数据包内容不能明文访问,使得无法提取特征,进而无法有效识别。3、逆向破解技术需要人工根据经验进行分析,比较耗费人力,同时无法实现大规模处理。4、现有技术所使用的特征需要根据经验提前进行人工抽取和选择。随着流量复杂度的提高,人工提取和选择特征带来的人力成本过高,尤其当流量数据规模很大时,也有由于主观性带来的所选特征不够准确的问题。因此对加密流量进行识别逐渐成为亟需解决的问题,同时加密流量识别对网络犯罪行为分析、舆情分析、国家信息安全等也具有重要意义。技术实现要素:为了克服上述现有技术的缺陷,本发明要解决的技术问题是提供一种基于特征自学习的加密流量识别方法及装置,用以提高现有技术中加密流量的识别率。为解决上述技术问题,本发明中的一种基于特征自学习的加密流量识别方法,包括:将获取的当前网络流量数据包转换为归一化数值或归一化灰度值;将所述当网网络流量数据包对应的归一化数值保存到文本文件中;或者将所述当网网络流量数据包对应的归一化灰度值生成灰度图像,并保存到图片文件中;将所述文本文件或所述图片文件作为预先训练得到的加密流量分类器的测试输入;通过所述加密流量分类器识别所述当前网络流量数据包的流量类型。为解决上述技术问题,本发明中的一种基于特征自学习的加密流量识别装置,包括:预处理模块,用于将获取的当前网络流量数据包转换为归一化数值或归一化灰度值;存储模块,将所述当网网络流量数据包对应的归一化数值保存到文本文件中;或者将所述当网网络流量数据包对应的归一化灰度值生成灰度图像,并保存到图片文件中;识别模块,用于将所述文本文件或所述图片文件作为预先训练得到的加密流量分类器的测试输入;通过所述加密流量分类器识别所述当前网络流量数据包的流量类型。本发明有益效果如下:本发明中方法及装置可以有效识别加密流量,并具有高精准识别率,同时具有自动抽取特征和选择特征的能力,也可以批量处理流量识别任务。附图说明图1是本发明实施例中一种可选地基于特征自学习的加密流量识别方法的具体流程图;图2是本发明实施例中一种训练和测试预处理实施流程图;图3是本发明实施例中另一种训练和测试预处理实施流程图;图4是本发明实施例中一种可选地加密流量识别方法训练和测试阶段的详细流程图;图5是本发明实施例中算法实施过程的流程图。具体实施方式为了解决现有技术提高现有技术中加密流量的识别率的问题,本发明提供了一种基于特征自学习的加密流量识别方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。本发明实施例中一种基于特征自学习的加密流量识别方法,包括:将获取的当前网络流量数据包转换为归一化数值或归一化灰度值;将所述当网网络流量数据包对应的归一化数值保存到文本文件中;或者将所述当网网络流量数据包对应的归一化灰度值生成灰度图像,并保存到图片文件中;将所述文本文件或所述图片文件作为预先训练得到的加密流量分类器的测试输入;通过所述加密流量分类器识别所述当前网络流量数据包的流量类型。其中,流量类型具体为网络加密流量和网络非加密流量。本发明实施例汇总方法能够有效地识别网络加密流量,对于特征不是很明显的加密流量都有显著效果,对提高实际流量识别准确率有很大的意义;同时,本发明提出的方法不需要任何人工干预就可以完成特征的自动抽取和选择,极大减少了人力成本和人的主观性对所选特征质量的影响,有效提高最终的识别准确率。具体说明本发明实施例,如图1所示,本发明实施例中方法包括:S101,抓取待测加密流量数据,经预处理后作为测试输入;S102,根据训练得到的加密流量分类器确定属于各流量类型的概率;S103,取概率最大的流量类型为最终预测结果。也就是说,本发明实施例中使用抓包工具获取流量数据,经过跟图2中所示测试预处理一样的过程得到测试输入数据,它包括多条待测试流量数据;将测试数据输入已经训练好的算法分类器,分类器会分析并计算出每条待测试数据属于各个类别的概率,并将概率最大的类别作为最终结果。进一步说,所述当前网络流量数据包为十六进制字符串;所述将获取的当前网络流量数据包转换为归一化数值,包括:将所述十六进制字符串中每两位字符为一组,转换为十进制数,然后进行归一化,形成格式统一的数值;所述将获取的当前网络流量数据包转换为归一化灰度值,包括:将所述十六进制字符串中每两位字符为一组,转换为灰度值。其中,格式统一的数值为0~1之间的浮点数。详细说明,如图4所示,本发明实施例中方法分为训练和测试两个阶段。其中训练阶段主要有训练预处理、构建算法模型、生成分类器三个模块;测试阶段主要包括测试预处理和预测处理。(1)训练预处理:通过抓包工具抓取应用样本流量数据包作为原始数据,对原始数据的格式进行统一处理并归一化,并人工标记应用类别,将其保存为文本格式文件,文本文件中每一行表示一个流量包。原始数据各个类别样本数量不均衡,通过人工根据经验筛选样本进行数量均衡,同时降低计算复杂度。具体实现方式一如图2所示,上述原始数据是以文本形式保存的连续的十六进制字符串数据流量包,需要将其每两位为一组转换成十进制数值,转换后的十进制数值范围为0~255,再进行归一化处理为0~1之间的浮点数,归一化是为了使数值都介于一定范围之内,同时也可简化计算。具体实现方式二如图3所示,使用抓包工具获取网络流量数据包,每个包是一串连续的十六进制字符串。将这个字符串每两位十六进制字符为一组,转换为一个0~255的灰度值,生成对应灰度图像,并保存到.jpg文件中。(2)构建算法模型:本发明采用卷积神经网络(CNN)构建算法模型,它可以通过学习一种深层的非线性网络结构来弥补浅层特征学习方法的不足,展现了强大的特征学习能力。CNN的特征抽取和特征选择与其他分类算法相比其过程是透明的且无需人工参与。而CNN模型的稀疏连接和权值共享两个特点可以减少神经网络的训练参数,使神经网络结构变得更简单,同时降低了指数级的计算量,适应性变得更强。训练过程中卷积层和采样层交叉进行,整个过程依次包括有输入层、卷积层、采样层、卷积层、采样层、输出层共六层网络。在开始训练前,所有的权重都用一些不同的小随机数进行初始化。其中核函数的大小在训练过程中不断进行调整,当损失函数最小时达到最优。(3)生成加密流量分类器:通过构建算法模型过程中的多次迭代,最终获得了最佳连接权重值,这样就学习到一个最优分类器。(4)测试预处理:和训练预处理的处理过程是一样的,唯一不同的是训练预处理需要保存数据的标签,而测试预处理本来就不知道类别,也就无类别标签可保存。(5)预测处理:根据训练构建的分类器为测试样本预测类别,并保存测试结果。也就是说,所述将获取的当前网络流量数据包转换为归一化数值或归一化灰度值之前,还包括:获取至少两种流量类型的网络流量数据包样本;采用卷积神经网络模型训练所述网络流量数据包样本,学习所述模型的训练参数,生成加密流量分类器。其中,训练过程中的具体实现流程如图4所示。具体说,CNN算法共有六层,除输入层外,每层都包含可训练参数(连接权重)。进一步说,所述卷积神经网络模型包括输入层、第一卷积层、第一采样层、第二卷积层、第二采样层和输出层;所述输入层为M*M的二维矩阵;M是由上述十六进制每两位一组划分后的总组数的开方,比如288位十六进制划分后就是144组,即M=12(M*M=144))。至于选取多少字节的十六进制,是经过反复试验测试,选取使模型结果最优的字节数,说明此长度的字节数既没有信息丢失也没有冗余。所述第一卷积层有m个第一特征图,每个所述第一特征图中每个神经元与所述输入层中a*a的邻域相连;所述第一特征图的大小为(M-a+1)*(M-a+1);所述第一采样层有m个N*N的第二特征图,每个所述第二特征图中每个单元与所述第一特征图的b*b邻域连接;所述第二特征图大小是所述第一特征图的1/(b*b);所述第二卷积层通过n个c*c的卷积核去所述第一卷积层,得到n个(N-c+1)*(N-c+1)大小的第三特征图;所述第二采样层有n个P*P大小的第四特征图构成;每个所述第四特征图中每个神经元与所述第二卷积层的d*d邻域相连;所述输出层是一个全连接卷积层,所述输出层具有跟流量类型数相等的多个单元,每个单元与所述第二采样层的n个特征图连接;其中,a、m、b、n、c、P和d均为训练参数。详细说,输入层是一个M*M大小的二维矩阵。C1层为一个卷积层,由m个特征图FeatureMap构成。特征图中每个神经元与输入中a*a的邻域相连。特征图大小为(M-a+1)*(M-a+1)。S2层是一个下采样层,下采样即对图像进行子抽样,可以减少数据处理量同时保留有用信息。S2有m个N*N的特征图,特征图中每个单元与C1中相对应特征图的b*b邻域连接。S2中每个特征图大小是C1中的1/(b*b).C3层又是一个卷积层,它通过n个c*c的卷积核去卷积层S2,然后得到n个(N-c+1)*(N-c+1)大小的特征图Featuremap。S4是一个下采样层,有n个P*P大小的特征图构成。特征图中每个神经元与C3中相应特征图的d*d邻域相连,跟C1和S2之间的连接一样。输出层是一个全连接卷积层,即S4层到输出层是全连接层,卷积核大小和上一层核大小一样,最终生成跟类别数相等的多个单元,每个类别一个单元。每个单元与上一层的n个特征图连接。训练过程中除了输出层外每层的参数都是根据反复实验、测试所得,根据经验在一定范围进行调优,选取使结果最优的参数。其中,各参数范围如下:M:8~32;m:6~8;a:2~4;b:2~4;N=(M-a+!)*(M-a+1)/(b*b);n:6~8;c:2~4;d::2~4;P=(N-c+1)*(N-c+1)/(d*d)。本发明提出的基于特征自学习的加密流量识别方法,能够有效地识别网络加密流量,对于特征不是很明显的加密流量都有显著效果,对提高实际流量识别准确率有很大的意义;同时,本发明提出的方法不需要任何人工干预就可以完成特征的自动抽取和选择,极大减少了人力成本和人的主观性对所选特征质量的影响,也可以一定程度上提高最终的识别准确率。为了验证本发明提出方法的有效性,以实验中对自由门和非自由门(包括暴风、风行、酷狗、迅雷、皮皮影音等)的加密流量进行了捕获分析为例,以识别是否是自由门为目标,即最终目标是解决一个二分类问题。实验中的训练集和测试集数据规模如下表:表(1)数据规模数据集规模训练集210848(free占比50%)测试集52712(free占比50%)从表中可见,训练集和测试集中自由门和非自由门样本的数量分别占比50%,这样可以保证不同类别下样本量的均衡性,使最终结果更符合客观规律,更准确。基于上述训练集和测试集,采用3.2中所述的流程进行训练和测试,实验结果如下表:表(2)实验结果数据上表中第一行是算法输入所取字节数,用于构建CNN算法模型,实验证明当流量数据取前288字节时效果最好,准确率为72.63%,耗时约3.5分钟。第一列是各个指标参数,本发明算法进行了四次迭代,表中列出了当取不同字节时每次迭代后模型精度的变化情况,可见随着迭代次数增加,精度也在提高。Precise行是测试的准确率结果,Elapsedtime是所耗费时间。本发明实验数据虽然是针对自由门和迅雷等加密流的,但经分析和推断,其结果的有效性也同样适用于翻墙路由器、无界一点通和火凤凰等的加密流量识别,同时在特征比较明显的普通协议识别上效果更明显。本发明进一步提出一种基于特征自学习的加密流量识别装置。本发明实施例中一种基于特征自学习的加密流量识别装置,包括:预处理模块,用于将获取的当前网络流量数据包转换为归一化数值或归一化灰度值;存储模块,将所述当网网络流量数据包对应的归一化数值保存到文本文件中;或者将所述当网网络流量数据包对应的归一化灰度值生成灰度图像,并保存到图片文件中;识别模块,用于将所述文本文件或所述图片文件作为预先训练得到的加密流量分类器的测试输入;通过所述加密流量分类器识别所述当前网络流量数据包的流量类型。进一步说,所述当前网络流量数据包为十六进制字符串;所述将获取的当前网络流量数据包转换为归一化数值,包括:将所述十六进制字符串中每两位字符为一组,转换为十进制数,然后进行归一化,形成格式统一的数值;所述将获取的当前网络流量数据包转换为归一化灰度值,包括:将所述十六进制字符串中每两位字符为一组,转换为灰度值。具体说,格式统一的数值为0~1之间的浮点数。进一步说,所述装置还包括:训练模块,用于用于获取至少两种流量类型的网络流量数据包样本;采用卷积神经网络算法训练获取并经预处理后的网络流量数据包样本,学习所述相关参数,训练生成加密流量分类器。具体说,所述卷积神经网络模型包括输入层、第一卷积层、第一采样层、第二卷积层、第二采样层和输出层;所述输入层为M*M的二维矩阵;所述第一卷积层有m个第一特征图,每个所述第一特征图中每个神经元与所述输入层中a*a的邻域相连;所述第一特征图的大小为(M-a+1)*(M-a+1);所述第一采样层有m个N*N的第二特征图,每个所述第二特征图中每个单元与所述第一特征图的b*b邻域连接;所述第二特征图大小是所述第一特征图的1/(b*b);所述第二卷积层通过n个c*c的卷积核去所述第一卷积层,得到n个(N-c+1)*(N-c+1)大小的第三特征图;所述第二采样层有n个P*P大小的第四特征图构成;每个所述第四特征图中每个神经元与所述第二卷积层的d*d邻域相连;所述输出层是一个全连接卷积层,所述输出层具有跟流量类型数相等的多个单元,每个单元与所述第二采样层的n个特征图连接;其中,M、a、m、b、n、c、P、d均为训练参数。训练过程中除了输出层外每层的参数都是根据反复实验、测试所得,根据经验在一定范围进行调优,选取使结果最优的参数。其中:各参数范围如下:M:8~32;m:6~8;a:2~4;b:2~4;N=(M-a+!)*(M-a+1)/(b*b);n:6~8;c:2~4;d::2~4;P=(N-c+1)*(N-c+1)/(d*d)。进一步说,本发明实施例中装置还可以包括计算模块:训练阶段主要用于算法参数的调整,如构建网络过程中连接权重的更新等;测试阶段主要是使用训练好的分类器为每条待测数据计算类别概率。本发明实施例中装置能够有效地识别网络加密流量,对于特征不是很明显的加密流量都有显著效果,对提高实际流量识别准确率有很大的意义;同时,本发明提出的方法不需要任何人工干预就可以完成特征的自动抽取和选择,极大减少了人力成本和人的主观性对所选特征质量的影响,有效提高最终的识别准确率。虽然本申请描述了本发明的特定示例,但本领域技术人员可以在不脱离本发明概念的基础上设计出来本发明的变型。本领域技术人员在本发明技术构思的启发下,在不脱离本
发明内容的基础上,还可以对本发明做出各种改进,这仍落在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1