本发明属于网络安全领域,具体涉及一种基于集成学习的僵尸网络恶意流量分类方法及系统。
背景技术:
恶意流量特征提取一直是网络安全领域的难点问题。恶意软件可利用伪装、加密、欺骗、零日漏洞等技术实现行为的深度隐藏且它们可以频繁地变种,这些致使互联网中大量的僵尸网络恶意流量未被发现。由于僵尸主机产生的流量与正常主机产生的网络流量在特征上与有很大差异,通过对网络流量分类识别僵尸网络恶意流量也是检测僵尸网络的主要方向。因此对僵尸网络恶意流量分类投入研究有很重要的意义。
目前有很多种网络流量异常检测方法,如基于统计、聚类、分类、信息熵等等。其中,将网络流量归类至特定的类型是其中很重要的一个方向,从而区分正常和僵尸网络恶意流量,并识别僵尸网络恶意流量类型。网络流量异常检测作为一种有效的网络防护手段,能够检测未知攻击行为,并为网络态势感知提供重要支持,按照使用技术的不同,目前一般的网络流量分类方法可以分为四类:基于端口识别的方法,基于深层包检测的方法,基于统计的方法,以及基于行为的方法。迄今为止,国内外学者基于这四类方向已经提出了很多不同类型的检测方法。但是,目前大多数网络流量分类方法都是基于传统的机器学习方式,分类性能非常依赖于流量特征的设计。
技术实现要素:
本发明的目的在于提供一种基于集成学习的僵尸网络恶意流量分类方法及系统,该方法及系统有利于快速、准确地识别恶意流量类别。
为实现上述目的,本发明采用的技术方案是:一种基于集成学习的僵尸网络恶意流量分类方法,包括以下步骤:
步骤a:将已标注类别的恶意流量数据转换为带类别标签的idx图像数据,建立恶意流量训练集r;
步骤b:构造包含三个深度残差卷积神经网络的初级分类器,构造softmax逻辑回归模型作为次级分类器;
步骤c:将训练集r分为r0和r1两部分,使用r0训练初级分类器,提取恶意流量特征向量,并将提取的特征向量添加到r0中,以增强该部分训练集;
步骤d:将增强后的训练集与r1合并,用其训练次级分类器;
步骤e:将待判定类别的恶意流量数据转换为idx图像格式,输入到训练好的次级分类器,输出判定结果。
进一步地,所述步骤a具体包括以下步骤:
步骤a1:从已标注类别的恶意流量数据中清除没有应用层数据的数据报文;
步骤a2:对步骤a1处理后的恶意流量数据进行划分,将属于同一tcp会话的恶意流量数据划分为一组,将恶意流量数据中的网络层、传输层、应用层报文信息保存到一个二进制文件中;
步骤a3:将步骤a2得到的二进制文件截断或补0x00到固定长度m个字节,以保留tcp会话中能够反映流量类别特征的网络层首部、传输层首部、应用层首部信息以及部分应用层数据,去除不能反映流量类别特征的其他应用层数据;以字节为单位,将每个字节转换为灰度值,输出大小为m×m的灰度图像文件,m=m2;
步骤a4:将步骤a3得到的灰度图像文件转换为idx图像文件;
步骤a5:遍历已标注类别的恶意流量数据,得到训练集r;
其中r={(xi,yi)|i=1,2,...,n},n为训练集r中的恶意流量样本数,xi为一个idx图像文件,yi为对应的恶意流量类别标签;yi∈c={1,2,...,k},c表示恶意流量类别标签集合,yi=c,1≤c≤k,表示xi为第c种恶意流量类别。
进一步地,所述恶意流量类别为包括cridex、geodo、htbot、miuref、neris、nsisay、shifu、virut和zeus的僵尸网络恶意流量。
进一步地,所述步骤b中,所述三个深度残差卷积神经网络分别为resnet1、resnet2和resnet3;每个深度残差卷积神经网络包括五个残差单元和两个全连接层;其中,每个残差单元按照输入样本的数据流向依次包括1个卷积层、1个批量正则化层、1个线性激活层和2个卷积层。
进一步地,所述步骤c具体包括以下步骤:
步骤c1:将数据集r随机分为r0和r1两个训练子集,再将r0随机拆分成三个训练子集
步骤c2:分别使用
步骤c2:分别使用
步骤c3:利用步骤c2训练好的三个深度残差卷积神经网络resnet1、resnet2和resnet3分别对r0中的每个idx图像样本进行恶意流量特征向量提取,然后对resnet1、resnet2和resnet3获得的特征向量求平均,输出与各idx图像样本对应的特征向量,并将各特征向量覆盖到对应的idx图像样本的二进制文件末尾,保持文件字节数不变;遍历r0中的每个idx图像样本后,得到特征增强后的训练子集
进一步地,所述步骤c2中,使用训练子集
进一步地,所述步骤d具体包括以下步骤:
步骤d1:合并训练子集r1和步骤c3得到的训练子集
步骤d2:使用r+训练次分类器的softmax逻辑回归模型,用交叉熵作为损失函数计算损失值,通过均方根随机梯度下降优化方法rmsprop计算所有的梯度的平方的平均值,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型,得到训练好的softmax逻辑回归模型。
进一步地,所述步骤e具体包括以下步骤:
步骤e1:按照步骤a1-a4,将待判定类别的僵尸网络恶意流量数据转换为idx图像格式,表示为m×m的二维向量矩阵x,计算矩阵x的协方差矩阵cov;
步骤e2:计算协方差矩阵cov的特征值与特征向量,根据特征值大小对特征向量排序,保留前k个特征向量,对前k个特征向量进行平均,得到特征向量
步骤e3:将
本发明还提供了一种基于集成学习的僵尸网络恶意流量分类系统,包括:
数据收集模块,用于根据tcp连接作为标准划分网络流量,以产生流量的僵尸网络种类作为恶意流量种类,收集恶意流量数据并标注类别;
数据预处理模块,用于将已标注类别的恶意流量数据转换为带类别标签的idx图像数据,构建恶意流量训练集r,并将其分为r0和r1两个训练子集,对其中的r0进行数据增强;
数据增强模块,用于构造包含三个深度残差卷积神经网络的初级分类器和构造softmax逻辑回归模型作为次级分类器,然后使用r0训练初级分类器,提取恶意流量特征向量,并用提取的特征向量增强训练子集r0;
次级分类器训练模块,用于将增强后的训练子集r0和训练子集r1合并,并用合并后的训练集训练次级分类器;以及
恶意流量种类预测模块,用于利用训练好的次级分类器对输入的待判定类别的恶意流量数据进行预测,输出其所属的类别。
相较于现有技术,本发明具有以下有益效果:提供了一种基于集成学习的僵尸网络恶意流量分类方法及系统,首先将流量转换为图像的方式,利用图像识别领域表现优秀的模型和集成思想,使用残差网络作为初级分类器提取流量特征,利用神经网络提取流量的特征,不需要像传统机器学习一样设计能准确反映流量特征的特征集,也无需借助其解析信息和端口信息,从而解决现实中僵尸网络恶意流量大多被加密的问题;之后使用神经网络所提取的流量特征向量增强原训练集,用于训练网络参数较少、分类速度更快的基于softmax逻辑回归的次级分类器,提升次级分类器的恶意流量分类能力,在识别精度和流量分类速度之间达到了较好的平衡。因此,本发明可进一步提升恶意流量识别性能,具有很强的实用性和广阔的应用前景。
附图说明
图1是本发明实施例的方法实现流程图。
图2是本发明实施例中步骤a的实现流程图。
图3是本发明实施例的系统结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细说明。
本发明提供一种基于集成学习的僵尸网络恶意流量分类方法,如图1所示,包括以下步骤:
步骤a:将已标注类别的恶意流量数据转换为带类别标签的idx图像数据,建立恶意流量训练集r。如图2所示,步骤a具体包括以下步骤:
步骤a1:从已标注类别的恶意流量数据中清除没有应用层数据的数据报文。
步骤a2:对步骤a1处理后的恶意流量数据进行划分,将属于同一tcp会话的恶意流量数据划分为一组,将恶意流量数据中的网络层、传输层、应用层报文信息保存到一个二进制文件中。
其中,同一tcp会话的数据报文具有相同的五元组,即源ip地址、目的ip地址、目的端口、源端口和传输层协议。其中,(源ip地址:源端口)和(目的ip地址:目的端口)可以互换,tcp会话包含双向tcp数据流。
步骤a3:将步骤a2得到的二进制文件截断或补0x00到固定长度m个字节,其目的是保留tcp会话中能够反映流量类别特征的网络层首部、传输层首部、应用层首部信息以及部分应用层数据,去除不能反映流量类别特征的其他大部分应用层数据。以字节为单位,将每个字节转换为灰度值,输出大小为m×m的灰度图像文件,其中m=m2。一般可取m为784字节,m=28,图像文件大小为28×28。
步骤a4:将步骤a3得到的灰度图像文件转换为idx图像文件。
其中,idx文件是索引文件格式,包含图片的像素及统计信息,是深度学习模型常用的输入图像数据格式。
步骤a5:遍历已标注类别的恶意流量数据,得到训练集r。
其中,r={(xi,yi)|i=1,2,...,n},n为训练集r中的恶意流量样本数,xi为一个idx图像文件,yi为对应的恶意流量类别标签;yi∈c={1,2,...,k},c表示恶意流量类别标签集合,恶意流量类别包括cridex、geodo、htbot、miuref、neris、nsisay、shifu、virut和zeus等僵尸网络恶意流量,yi=c,1≤c≤k,表示xi为第c种恶意流量类别。
步骤b:构造包含三个深度残差卷积神经网络的初级分类器,构造softmax逻辑回归模型作为次级分类器。
其中,所述三个深度残差卷积神经网络分别为resnet1、resnet2和resnet3;每个深度残差卷积神经网络包括五个残差单元和两个全连接层。
其中,每个残差单元按照输入样本的数据流向依次包括1个卷积层、1个批量正则化层、1个线性激活层和2个卷积层。
第一残差单元的组成按照输入样本的数据流向依次为卷积层1,参数包括通道数为128,卷积核尺寸为3和3,步长为2;批量正则化层1;线性激活层1;卷积层2,参数包括通道数为256,卷积核尺寸为1和1,步长为1;批量正则化层2;线性激活层2。
第二残差单元的组成按照输入样本的数据流向依次为卷积层1,参数包括通道数为256,卷积核尺寸为3和3,步长为2;批量正则化层1;线性激活层1;卷积层2,参数包括通道数为512,卷积核尺寸为1和1,步长为1;批量正则化层2;线性激活层2。
第三残差单元的组成按照输入样本的数据流向依次为卷积层1,参数包括通道数为512,卷积核尺寸为3和3,步长为2;批量正则化层1;线性激活层1;卷积层2,参数包括通道数为1024,卷积核尺寸为1和1,步长为1;批量正则化层2;线性激活层2。
第四残差单元的组成按照输入样本的数据流向依次为卷积层1,参数包括通道数为1024,卷积核尺寸为3和3,步长为2;批量正则化层1;线性激活层1;卷积层2,参数包括通道数为2048,卷积核尺寸为1和1,步长为1;批量正则化层2;线性激活层2。
第五残差单元的组成按照输入样本的数据流向依次为卷积层1,参数包括通道数为2048,卷积核尺寸为3和3,步长为2;批量正则化层1;线性激活层1;卷积层2,参数包括通道数为4096,卷积核尺寸为1和1,步长为1;批量正则化层2;线性激活层2。
步骤c:将训练集r分为r0和r1两部分,使用r0训练初级分类器,提取恶意流量特征向量,并将提取的特征向量添加到r0中,以增强该部分训练集。具体包括以下步骤:
步骤c1:将数据集r随机分为r0和r1两个训练子集,再将r0随机拆分成三个,得到r0的三个训练子集
步骤c2:分别使用
具体地,使用训练子集
步骤c3:利用步骤c2训练好的三个深度残差卷积神经网络resnet1、resnet2和resnet3分别对r0中的每个idx图像样本进行恶意流量特征向量提取,然后对resnet1、resnet2和resnet3获得的特征向量求平均,输出与各idx图像样本对应的特征向量,并将各特征向量覆盖到对应的idx图像样本的二进制文件末尾,保持文件字节数不变;遍历r0中的每个idx图像样本后,得到特征增强后的训练子集
步骤d:将增强后的训练集与r1合并,用其训练次级分类器。具体包括以下步骤:
步骤d1:合并训练子集r1和步骤c3得到的训练子集
步骤d2:使用r+训练次分类器的softmax逻辑回归模型,用交叉熵作为损失函数计算损失值,通过均方根随机梯度下降优化方法rmsprop计算所有的梯度的平方的平均值,利用反向传播迭代更新模型参数,以最小化损失函数来训练模型,得到训练好的softmax逻辑回归模型。
步骤e:将待判定类别的恶意流量数据转换为idx图像格式,输入到训练好的次级分类器,输出判定结果。具体包括以下步骤:
步骤e1:按照步骤a1-a4,将待判定类别的僵尸网络恶意流量数据转换为idx图像格式,表示为m×m的二维向量矩阵x,计算矩阵x的协方差矩阵cov;
步骤e2:计算协方差矩阵cov的特征值与特征向量,根据特征值大小对特征向量排序,保留前k个特征向量,对前k个特征向量进行平均,得到特征向量
步骤e3:将
本发明还提供了采用上述方法的基于集成学习的僵尸网络恶意流量分类系统,如图3所示,包括数据收集模块、数据预处理模块、数据增强模块、次级分类器训练模块和恶意流量种类预测模块。
所述数据收集模块用于根据tcp连接作为标准划分网络流量,以产生流量的僵尸网络种类作为恶意流量种类,收集恶意流量数据并标注类别。
所述数据预处理模块用于将已标注类别的恶意流量数据转换为带类别标签的idx图像数据,构建恶意流量训练集r,并将其分为r0和r1两个训练子集,对其中的r0进行数据增强。
所述数据增强模块用于构造包含三个深度残差卷积神经网络的初级分类器和构造softmax逻辑回归模型作为次级分类器,然后使用r0训练初级分类器,提取恶意流量特征向量,并用提取的特征向量增强训练子集r0。
所述次级分类器训练模块用于将增强后的训练子集r0和训练子集r1合并,并用合并后的训练集训练次级分类器。
所述恶意流量种类预测模块用于利用训练好的次级分类器对输入的待判定类别的恶意流量数据进行预测,输出其所属的类别。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。