基于主成分分析和卷积神经网络的入侵检测方法研究

2019-09-10 15:36李兆峰
现代信息科技 2019年10期
关键词:入侵检测卷积神经网络主成分分析

摘  要:针对传统的机器学习方法无法有效地处理网络入侵时海量、高维、冗余数据的现象,提出了基于主成分分析(PCA)和卷积神经网络(CNN)的入侵检测算法。首先,通过PCA对提取出的高维原始入侵数据进行降维并消除冗余信息,减少了输入数据的维数,然后通过设计的卷积神经网络对正常和异常数据进行分类。在KDD 99数据集上的实验结果表明,文中提出的PCA-CNN模型与CNN以及其他的机器学习方法相比,可有效地提高检测的准确率并降低误报率。

关键词:入侵检测;深度学习;主成分分析;卷积神经网络

中图分类号:TP309      文献标识码:A 文章编号:2096-4706(2019)10-0148-04

Abstract:Due to the traditional machine learning methods can not effectively deal with massive,high-dimensional and redundant data in network intrusion,an intrusion detection algorithm based on principal component analysis(PCA) and convolutional neural network(CNN) is proposed. Firstly,the high-dimensional original intrusion data extracted by PCA is reduced and the redundant information is eliminated,the dimension of the input data is reduced,and then the normal and abnormal data are classified by the designed convolutional neural network. The experimental results on KDD 99 dataset show that the PCA-CNN model proposed in this paper can effectively improve the detection accuracy and reduce the false alarm rate compared with CNN and other machine learning methods.

Keywords:intrusion detection;deep learning;principal component analysis;convolutional neural network

0  引  言

近年来,互联网技术迅速发展,但随着网络规模的扩大,网络安全问题变得至关重要,而其中入侵检测系统(IDS)作为保护网络安全的一个重要手段开始受到广泛的关注。入侵检测系统用于监测计算机网络,通过分析从网络中捕获的数据来检测威胁[1],这些威胁是破坏性的,例如拒绝服务(DoS)通过引入大量无用的流量来拒绝和阻止网络上的合法用户请求[2]。

当下机器学习受到了越来越多的关注,机器学习可以通过经验以及对大量数据的学习来提高算法的性能,利用机器学习的方法来对网络入侵行为进行分析已经成为入侵检测领域内研究热点之一。文献[3]采用了贝叶斯网络分类器对网络流量进行分类,并在NSL-KDD数据集上取得很好的效果;文献[4]使用了遗传算法预处理提取特征并应用支持向量机来对攻击进行分类;文献[5]提出了一种k近邻算法和遗传算法的混合方法来对网络入侵进行检测;文献[6]使用了一种基于决策树的网络入侵检测系统,结果表明决策树可以对未知攻击进行分类;文献[7]提出了一种可动态调整簇数的k均值聚类算法,性能优于传统的k均值聚类算法。上述这些算法在一些条件下都能达到较好的准确度,但在大数据量和高维的情况下需要人为地进行数据挑选,不然容易造成训练时间过长、效果变差,但是减少数据量可能会造成数据之间隐含的相关性被破坏,漏掉有用的信息。深度学习可以通过它的深层结构对数据学习,并且在海量、高维的数据分析方面有着显著的效果。

卷积神经网络就是深度学习中的一种高效识别方法。本文首先对数据使用PCA降维预处理,然后根据卷积神经网络可以准确提取特征的局部相关性等特点对处理后的数据进行分类,最后利用KDD 99数据集对该模型进行仿真实验。本文的方法跟CNN算法、SVM算法相比,有效地提高了准确率并且降低了误报率,并与SOM算法和DBN算法性能基本处于同一水平。

1  基于PCA-CNN的入侵检测模型

本文提出了一种基于PCA-CNN的入侵检测模型,流程图如图1所示。首先对训练数据和测试数据进行预处理,将网络连接数据中带有的符号转换为数字,并且对每条数据事先进行类别标注,对其进行PCA降维后在设计好的CNN网络中进行训练,多次训练后根据在测试集上的结果间的对比得到性能最优的入侵检测模型。

1.1  PCA特征降维

由于网络入侵检测数据通常具有较高的维度,并且数据中包含的冗余成分较高,为了提高后续分类算法的效率,减少冗余和过拟合的可能性,本文采用主成分分析(PCA)的方法。PCA的基本原理如下:消除原始數据变量存在的相关性,重新组成一组互不相关的变量,主成分由线性组合得到,每个主成分包含信息量可以用方差来度量,即方差越大包含的信息则越多。其主要步骤如下:

1.2  卷积神经网络模型

在卷积神经网络中,主要是由输入层、几个卷积层和下采样层、全连接层和输出层组成。本文设计成一个卷积层后跟着一个下采样层,根据需要卷积层和下采样层的个数,以此类推。靠近输出层的几层是全连接层,卷积神经网络模型结构如图2所示。

1.2.1  卷积层

卷积层把特征向量通过激活函数来与卷积核进行卷积操作,所以增加的卷积层越多,特征表达能力越强。卷积层的形式为:

为卷积层第l层第j个输入特征的特征向量,其中l为当前层,b为当前层的加性偏置量,k为卷积核,Mj为第j个卷积核对应的卷积窗口,为卷积操作,激活函数常采用Sigmoid、tanh和ReLU,由于后续的对比实验中ReLU的效果较好,所以我们采用ReLu作为激活函数。

1.2.2  下采样层

下采样层可以进行特征选择,下采样层从卷积层的特征图的局部区域计算特征值,并且选择一般是无重叠的,这样就降低了特征的维度,并一定程度上保持了特征尺度的不变特性。虽然降低了特征的维数,但是如图1所示,特征图个数一致,并不发生变化。下采样层表示为:

其中down()为次抽样函数,β为乘性参数,b为加性偏置量。

1.2.3  全连接层

全连接层一般在输出层之前,主要作用就是连接上层特征,并且将其作为输入值送给分类器,输出的结果就是分类的结果。

1.3  卷积神经网络的训练

训练就是为了预测的结果要尽可能地接近真实的结果,经过前向传播可以得到这个预测结果,而反向传播是通过比较这个预测结果和真实结果之间误差来调整模型的参数。本文采用训练方法如下。

1.3.1  前向传播

将输入层中的输入数据输入到预先设计的卷积神经网络中,依序经过卷积神经网络,计算出的输出值就是预测值。

1.3.2  反向传播

通过前面得到的预测值和真实值之间的误差,按照损失函数最小的方式调整网络权重。损失函数(loss function)用于“如何比较预测值和真实值的差异”,损失函数的输出值越高代表差异性越大,所以神经网络训练的目标就是为了尽可能地减小loss值。本文中使用的loss函数为多类的对数损失(categorical cross-entropy)。

本文中使用的优化器是Keras模型中的Adam随机梯度下降算法[8],初始学习率设为0.01,并且设置为3次迭代后loss不下降就将学习率乘0.3。

1.4  入侵检测测试

本文设计的PCA-CNN模型包含3个卷积层,2个全连接层和1个卷积层到全连接层的过渡层Flatten层,另外在每个卷积层和全连接层后加了1个Dropout层,作用是对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,以防止过拟合。采取将卷积核数量逐渐倍数递升的方法将原始特征映射到高维空间中,加强特征学习能力。

采用准确率Ac,检测率DR,误报率FA来作为模型的评价指标,它们的计算方式如下:

其中TN表示正常样本被分类为正常的数目,TP表示攻击样本被分类为攻击的数目,FP表示正常样本被分类为攻击的数目,FN表示为攻击样本被分类为正常的数目。

2  实验过程及结果

2.1  实验数据集

实验的数据来自公开的入侵检测数据集KDD 99,该数据来自MIT的林肯实验室模拟的美国空军局域网的网络环境,并且每条数据均已人工标注好类别。里面包含五大类数据,分别是正常、DoS、R2L、Probe和U2R。其中后四类均是攻击数据。由于原数据较大,本文中使用10% KDD 99作为训练数据,Corrected作为测试数据。具体数据分布见表1。

2.2  实验环境

本文使用了基于TensorFlow[9]的深度学习框架Keras,并使用Python语言编写,配置GPU加速。

2.3  数据预处理结果

2.3.1  符号特征转成数字

由于KDD 99数据集并不都是由数值型特征组成,其中每一条正常或异常的数据都有41维特征,有3维是符号特征,这时就要将它们转换为数字特征。例如协议类型,共有三種TCP、UDP和ICMP,将它们对应转换为0、1和2。所以网络服务类型可以按照个数转换为0到69,状态特征按照个数转换为0到10,最后将第42维上的类别按照五种类型分别转换成0、1、2、3和4。最后每条数据共有41维特征和1维类别,合计42维。

2.3.2  PCA降维处理

使用上文中的PCA降维方法对10% KDD 99训练集进行降维,得到的累计贡献率如图3所示。本文取累计贡献率为99%,所以取新矩阵前25维特征作为训练数据集,然后将训练数据集降维得到的变换矩阵对测试集Corrected降维。

2.4  实验结果分析

本文设计的PCA-CNN模型以及CNN模型的评价指标及卷积核长度见表2,其中卷积核个数均一致,分别为8、16、32。由于维数的不同,CNN模型在前两个卷积层后面增加了一个池化层。激活函数默认都是用ReLU。

由以上PCA-CNN模型和CNN模型利用测试集的结果对比可知,经过PCA处理后的模型在准确率和检测率上对比CNN模型有较小的提升,并且在入侵检测中的重要指标误报率上有着较明显的降低,相比于CNN模型的误报率相对降低了73.2%。相比于传统的机器学习算法SVM,本文提出的算法在各方面均有较大的提升,相对于效果比较好的自组织映射(Self-organizing Maps,SOM)人工神经网络算法,本文采用的PCA-CNN算法在准确率和检测率上要略低一些,但是误报率要比其更低。相比于深度学习里的DBN算法不同的模型,本文算法基本上处在同一水平,虽然准确率和检测率有所不及,但是本文算法结构较DBN简单,运算量和复杂度较低。

3  结  论

针对网络入侵检测中存在的连接数据量大、冗余信息多、训练时间长等问题,本文利用对数据先清洗后分类的思想,通过PCA对大数据量进行特征降维,降低计算量,减去了39%的特征并消除了数据的冗余,结合对提取特征局部相关性有优势的CNN分类模型。实验结果表明,将主成分分析和卷积神经网络结合是有效的。但是这是基于公开数据集上的实验,而现如今的网络环境更为复杂,攻击类型也更多,后续的工作除了优化该模型对多类别处理的准确率之外,还需要将其运用到现实网络中,通过反馈来继续改进该方法。

参考文献:

[1] Kumarjonnalagadda S,Ravi P R I. A Literature Survey and Comprehensive Study of Intrusion Detection [J]. International Journal of Computer Applications,2014,81(16):40-47.

[2] Robert Mitchell,Ing-Ray Chen. A survey of intrusion detection techniques for cyber-physical systems [J]. ACM Computing Surveys(CSUR),2014,46(4):1-29.

[3] Onik A R,Haq N F,Mustahin W. Cross-breed type Bayesian network based intrusion detection system(CBNIDS) [C]//International Conference on Computer & Information Technology. IEEE,2016.

[4] Senthilnayaki B ,Venkatalakshmi K ,Kannan A . Intrusion detection using optimal genetic feature selection and SVM based classifier [C]//International Conference on Signal Processing. IEEE,2015.

[5] Canbay Y,Sagiroglu S. A Hybrid Method for Intrusion Detection. [C]//IEEE International Conference on Machine Learning & Applications. IEEE,2016.

[6] Sahu S,Mehtre B M. Network intrusion detection system using J48 Decision Tree. [J]. 2010.

[7] Tao L J ,Hong L Y ,Yan H . The improvement and application of a K-means clustering algorithm [C]//2016 IEEE International Conference on Cloud Computing and Big Data Analysis(ICCCBDA). IEEE,2016.

[8] Kingma D P,Ba J. Adam:A Method for Stochastic Optimization [J]. Computer Science,2014.

[9] Abadi,Martín,Barham P,Chen J,et al. TensorFlow:A system for large-scale machine learning [J]. 2016.

[10] Gao N,Gao L,Gao Q,et al. An Intrusion Detection Model Based on Deep Belief Networks [C]//2014 Second International Conference on Advanced Cloud and Big Data(CBD). IEEE Computer Society,2014.

[11] Ibrahim,L.M.,Basheer,D.T. and Mahmod,M.S.(2013)A Comparison Study for Intrusion Database(Kdd99,Nsl-Kdd)Based on Self Organization Map(SOM)Artificial Neural Network. [J]. Journal of Engineering Science and Technology,2013,8(1):107-119.

作者簡介:李兆峰(1994-),男,汉族,江西人,硕士,研究方向:信息安全。

猜你喜欢
入侵检测卷积神经网络主成分分析
基于深度卷积神经网络的物体识别算法
基于入侵检测的数据流挖掘和识别技术应用
艺术类院校高效存储系统的设计
主成分分析法在大学英语写作评价中的应用
江苏省客源市场影响因素研究
SPSS在环境地球化学中的应用
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
基于关联规则的计算机入侵检测方法
基于卷积神经网络的树叶识别的算法的研究