APP下载

基于深度学习的网络攻击检测

2018-03-12

关键词:池化层步长卷积

(山西警察学院 网络安全保卫系,山西 太原 030401)

0 引言

近年来,硬件计算的飞速发展和成本的不断降低,促进了深度学习(Deep Learning,DL)的发展,通过应用在AlphaGo和无人驾驶的发展,极大的提升了深度学习的实用性和普及性.目前,深度学习已经广泛应用于自然语言处理[1~2]、计算机视觉[3~4]、语音识别[5~6]、无人驾驶等[7]领域.深度学习属于机器学习的子领域,在深度学习之前,就出现了还能多采用机器学习来对于网络安全领域问题进行求解的方法,如贝叶斯、支持向量机、浅层神经网络和逻辑回归等.目前,已经出现一些工作用于将深度学习与网络安全领域结合的工作.

相对于传统方法,深度学习方法能有效提高检测效率和降低误报率,从而更及时地发现已存在的网络安全威胁.这些工作主要有:刘月峰等[7]提出了一种面向网络入侵检测的深度卷积网络模型,将网络入侵检测的数据转换为卷积网络的输入数据,并利用卷积网络对原始数据进行降维,最后利用BP反向传播方法来调整网络参数.夏玉明等[8]提出了一种基于卷积神经网络的网络攻击检测方法研究,然后将提取的日志特征映射到一组灰度图进行异常检测,将网络攻击特征映射为灰度图,将提取的日志特征映射到一组灰度图进行异常检测,并将日志存入本地服务器并映射到灰度图.

为了进一步提高网络安全的攻击检测能力,提出了一种改进的基于深度学习的网络攻击检测方法,并通过实验证明了本文方法的有效性.

1 经典的卷积网络模型

1.1 卷积网络模型

卷积网络模型是一种由卷积层和池化层构成的多层前馈神经网络.卷积层采用卷积运算来获得局部特征,池化层主要用于对特征进行降维,从而保留对于目标决策重要的特征,而去掉不重要和冗余的特征.

图1所示的模型对应的经典的LaNet-5结构如图2所示.

图1 基本的卷积网络模型

图2 LeNet-5结构

在图2中,C1,C3和C5都是卷积层,卷积层的特征是由上一层的特征图通过卷积核所规定的卷积操作来实现,卷积核在特征图上沿着左边缘和上边缘,依次向下和向左边滑动.卷积核的计算如下所示:

(1)

1.2 池化层

图2中的P2和P4都是池化层,池化层的操作也是通过滑动窗口的方式来将原始特征图片划分为n*n个互不重叠的区域.池化的方法主要可以分为两种:最大化池化和平均池化.这两种方法通过子区域中的像素进行平均或者求最大值,使得原始图像能缩小n*n,池化作用的公式为:

(2)

1.3 全连接层

图2中的F5和F6是全连接层.全连接层通常出现在最后一个池化层或卷积层的后面,每个神经元均与上一层的所有神经元相连,其计算公式为

hw,b(x)=f(WTx+b)

(3)

其中,x是神经元的输入,f(·)是激,活函数hw,b(x)为神经元的输出,W为输入权矩阵,b是偏置向量.

2 基于并行卷积神经网络的网络安全检测

本文设计的改进的卷积网络用于实现网络安全检测,该卷积神经网络通过并行的特征求取,并通过后面连接两个全连接层来对网络安全攻击事件进行分类,从图3中可以看出,本文设计的并行卷积神经网络一共包含2个深度卷积神经网络:CNN1和CNN2.首先,第一步是将原始图像通过尺寸变换后,变换为两种像素类型的图片:64*64和160*96.

图3 并行的卷积神经网络结构

CNN1的输入图像是160*96,该网络由4个卷积层和3个池化层组成.CNN2的输入图像为64*64,该网络有2个卷积层和一个池化层.在CNN1中,第一个卷积层是20个14*6的卷积核,其输出结果是74*46的图片特征.第一个池化层是P2,步长为2,

该层是由20个2*2的模板组成,步长为2,其输出特征图片的维数为37*23;第三层是卷积层,其卷积核大小为100个8*4的模板,步长为1,输出图片维数为30*20;第四层是池化层,其卷积核为100个2*2的模板,步长为1,输出图像的特征为30*20;第五层是卷积层,其卷积核为200个大小为2*2的卷积核,步长为1,输出图像的特征为12*8;第六层是池化层,卷积核为200个大小为2*2的模板,步长为2,输出为6*4的图像特征;第七层是300个大小为6*4的卷积核,步长为1,输出为1*300的图像特征;第八层的神经元的输出为1*50个神经元.

CNN2的结构如下:第一层是卷积层,其卷积核的大小50个12*12的卷积核,步长为4,输出特征图像的大小为64*64;第二层是池化层,其卷积核大小为50个2*2的卷积层,步长为2,其输出为7*7的特征图像;第三层是卷积层,其卷积核大小为100个7*7的模板,输出为1*100;第四层是全连接层,其输出神经元个数为1*50.

在CNN2和CNN1后的全连接层的主要作用就是将全面连接的输出映射到一个全连接层,该全连接层的输出为20.

在全连接层后跟Softmax分类器作为分类器,分类的数目则是根据网络攻击类别来确定,在输入元素为x时,输出类别为y=i的概率可以表示为:

(4)

3 模型训练

采用美国麻省理工大学的林肯实验室的网络安全攻击数据库KDD Cup99作为仿真数据集,该数据集一共包含500万条记录.KDD Cup99中的每个训练数据都包含了41个固定特征属性和1个类标记.特征属性中仅有9个离散型属性,其它均为连续型属性,前9个属性表示网络连接基本特征;10~22表示的是网络连接内容特征,23~31是基于时间的流量溶剂特征,最后的11个特征是主机网络流量统计特征.其类别特征是正常或者异常类型的标记.训练过程如图4所示:

图4 本文模型的训练过程

从图4中可以发现,对于原始数据集,首先通过属性映射、数据归一化和数据转换等过程,转换为目标数据集,然后将该数据集划分为训练数据集和测试数据集,然后通过反向来调整网络对网络训练,最后采用测试集获得网络的攻击类别.

4 仿真实验

4.1 实验介绍

为了对对本文方法进行验证,采用KDD Cup99进行训练并最终进行测试.本文模型在采用python语言实现,其框架为tensorflow.为了验证本文方法有效性,将其与本文方法与文献[7]和文献[8]方法相比,攻击的类型一共有5种,即正常、Dos,Probe,R2L和U2R.下面将从准确率和误报率两个角度来衡量模型的性能:

准确率的计算如下:

(5)

误报率的计算如下:

(6)

4.2 仿真结果

训练集和测试集如表1和表2所示.

表1 训练集类别和对应的比例

表2 测试集类别和对应的比例

三种方法得到的攻击检测结果如图表3所示:

表3 三种方法的比较结果

从表3可以明显看出,通过与文献[7]和文献[8]方法相比发现,本文方法具有更高的正确率,且其误报率上也明显高于另外两种方法,这也说明了采用并行机制后,使得网络攻击检测能力大大提高.

5 总结

为了实现网络攻击检测,提出了一种基于并行深度神经网络的网络攻击检测系统.该系统设计了两组深度卷积网络同时提取有效特征,该深度卷积网络主要是由于多个卷积层和池化层组合而成,然后通过将网络攻击类别映射为输出层神经元个数,实现对网络的攻击类型进行分类.将本文所提方法与文献[8]以及文献[9]所提的卷积神经网络进行比较,其结果表明了所提方法较对比算法在检测准确率和误报率上均具有较大的优越性.

猜你喜欢

池化层步长卷积
中心差商公式变步长算法的计算终止条件
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络模型研究分析*
基于卷积神经网络的纸币分类与点钞
基于随机森林回归的智能手机用步长估计模型
基于深度学习卷积神经网络的人体行为识别研究
卷积神经网络的分析与设计
从滤波器理解卷积
基于全卷积神经网络的SAR图像目标分类*