宗学军,宋治文,何 戡,连 莲
(沈阳化工大学 信息工程学院,辽宁 沈阳110142)
随着工业控制网络(ICN)的高速发展,ICN安全已经是全球性重要问题之一,工业入侵检测作为一种ICN安全防护技术已成为研究热点。在全球每年的网络安全事故中,其中有上百起攻击都是针对工业控制系统(Industrial Control System,ICS),虽然所占的比重只是网络安全事件的一小部分,但是所造成的影响对国家而言都是巨大的,最为严重的就是经济损失[1]。因此如何有效地从入侵数据中选择特征进行多分类,并提高数据特征提取的准确度,在整个网络信息安全领域具有重要的研究价值。
机器学习在入侵检测中应用很多,例如支持向量机(Support Vector Machine,SVM)[2-3]、K均值聚类算法[4]和贝叶斯网络模型[5]。上述算法在处理特征维度少时拥有较好的检测效果,但却无法满足当今网络安全领域中大量、高维的数据特征分类精度,因此需要开展深度学习的研究。
国内外不少学者将深度学习应用于网络安全领域,文献[6]首先使用不同的降维方法去除了多余的特征,然后将降维后得到的数据传递给卷积神经网络(Convolutional Neural Networks,CNN),但是其忽略了卷积神经网络的自动提取特征的优势。文献[7]利用遗传算法强大的全局寻优能力来获得最优参数从而优化卷积神经网络。文献[8]提出了一种基于两层神经网络的异常流量检测模型。文献[9]提出了一种基于膨胀卷积和门控循环单元组合的入侵检测模型,并在KDD CUP 99数据集和NSL-KDD数据集进行了仿真,取得了较高的准确率。文献[10]对一维卷积神经网络进行了改进,使用CIC-IDS-2017数据集进行了仿真,结果表明该方法具有较高的检测性能,能更好地保留流量数据的局部特征。
传统的卷积神经网络在提取特征时只提取重要的特征,会忽略其他特征,而工业网络中的数据在使用这种方法进行分类时会导致分类准确率大大降低,因此为了解决提取特征不全这一问题,本文使用多尺度一维卷积神经网络(1-dimensional Multiscale Convolution Neural Network,1d-MSCNN)与门控循环单元(Gated Recurrent Unit,GRU)组合模型来对工业网络中的流量数据进行分类。
本文的主要贡献:
(1)提出一种一维多尺度卷积核替代单一尺度卷积核来提取特征,提高数据分类的准确度。
(2)使用GRU模块来获取数据之间的时间关系的特征,以此提高模型训练速度,解决了很多由于深度学习的模型复杂、参数过多而导致的训练难度加大、模型的训练速度变慢的问题。
CNN是深度学习的一种模型[11],能够通过权值共享的方式快速训练模型,并能有效地减少模型中需要训练的参数。常见的卷积神经网络往往采用二维卷积核。而一维卷积神经网络使用的是一维卷积核,下面介绍一维卷积层与池化层:
(1)一维卷积层:一维卷积层中的每个神经元只与前一层输入神经元中的局部直接相关。卷积核的设置对CNN的性能影响比较大,对于第l层(卷积层),其输出为xl,那么对应第j个卷积核的输出为:
式中,f为激活函数,Mj表示输入数据集合,为卷积核,*为卷积,为偏置项。本文使用的激活函数为ReLU函数,能大量节省训练时间。
(2)池化层:池化方法有两种,选择相应的池化方法对卷积层的特征图进行池化,其一般形式为:
式中,f为激活函数,D为采样函数,为权值,为偏置项。
GRU模块是循环神经网络(Recurrent Neural Network,RNN)中的一种,能够对数据特征进行充分学习,通过更新门和重置门保存数据在时间维度上的信息[12],同时也能解决梯度爆炸的问题[13]。
GRU中有两个主门,即更新门和重置门。所有的关系定义如下:
重置门:
更新门:
其中Wr、Wz是权重参数,br、bz是偏差参数。图1显示了GRU的典型架构。
图1 GRU模型图
在处理数据时,若单纯地使用神经网络会发现其对特征的捕捉能力有限,收敛太慢,因此本文加入了改进的一维CNN模型,其中卷积部分提取的特征用于训练分类模型。虽然卷积后特征维度减少但通道数扩张,用reshape函数重新整形为向量后维度还是很高,所以要求后面的FC层仍然很稠密,收敛依旧很慢,而实际上CNN卷积移动过程就已经引入了时序关系,通道数对应RNN的时间步数,加入GRU刚好可以降维。GRU模块可以在时间级别上实现数据特征的提取。为此,本文提出一种1d-MSCNN+GRU的入侵检测模型。
当前工业互联网的攻击种类繁多,并且其网络数据具有海量、高维等特征,因此单一尺度卷积神经网络在提取特征时容易造成部分特征遗漏这一问题。本文设计了一维多尺度卷积层(1-dimensional Multiscale Convolution,1d-MC)来取代单一尺度卷积层,其结构如图2所示。
图2 一维多尺度卷积层
该模块由三个分支组成,每个分支所使用的卷积核尺度都和其他卷积核尺度不同,这样就能从上一层输出中提取到多尺度的特征,然后将每个分支卷积得到的特征向量进行拼接作为下一层的输入。其运算过程如式(5)所示,其中Cl为上层输出激活值,Cl+1为下一层的激活值,和的上标表示所属分支,下标表示卷积核或偏置矩阵的大小。
本文搭建的一维多尺度卷积神经网络与GRU混合模型的结构如图3所示。
图3 1d-MSCNN+GRU组合模型图
1d-MSCNN+GRU模型由一维多尺度卷积部分、GRU部分和输出部分组成。模型的第1层为输入层,将预处理好的数据传递到下一层;第2层和第3层为常规的一维卷积层和池化层,能迅速缩短向量长度,同时增加通道数;模型的第4、5层为多尺度一维卷积层,该层利用网络层堆叠的方式逐步提取数据集不同粒度的特征;模型的第6层为全局平均池化层,该层减少数据通道便于数据输入到后面的GRU模块中;第7层为Dropout层防止模型过拟合;GRU模块在模型的第8层;紧接着是全连接层将各个分类结果输出。模型各层参数如表1所示。
表1 1d-MSCNN+GRU网络结构与参数
本文实验共分为三个阶段:数据预处理阶段、模型训练阶段和测试分类阶段,总体步骤如图4所示。
图4 实验流程图
本次实验采用两个数据集,分别是KDD CUP 99数据集[14]和密西西比州大学的天然气管道数据集[15]。KDD CUP 99数据集是入侵检测中常用的数据集,本文采用其中10%的训练子集进行算法测试。样本类别分布如表2所示。
表2 KDD CUP 99数据集类别
密西西比州大学的天然气管道数据集包括1种正常数据和7种攻击类型,共有26个特征属性。相比于KDD CUP 99数据集,密西西比州采集的数据是工业网络中采集到的数据,其维度更高,攻击类型更多。其数据集标签及描述如表3所示。
表3 密西西比州数据集描述
由于数据集中的字符型特征属性无法直接输入到本文模型中,因此先将KDD CUP 99数据集和密西西比州大学的天然气管道数据集中的每一个字符型特征都转成数字以便于处理;接着为了缩小数值之间的差距,对数据进行标准化处理,将每个数据转换为一维矩阵,使其符合一维多尺度卷积模型的输入格式;最后对数据集进行标准化处理,形成重塑矩阵。
本文实验中采用分类准确率(Accuracy,ACC)、召回率(Recall,R)、精确率(Precision,P)和综合评价指标(F1-Measure,F)判断模型分类,具体算法如下:
本实验的仿真是在Windows 10操作环境下进行的,CPU为Intel Core i7-10700。
为了实现高效计算,本文使用Adam优化算法,因为Adam的默认参数可以解决绝大部分的问题,所以本文使用默认值。其他实验参数设置如下:学习率设置为0.01,此时模型的学习状态最佳;Dropout失活率设置为0.2,防止模型过拟合;迭代次数由以下仿真实验获得。在实验中改变了训练迭代次数,仿真结果如图5所示。
图5 不同迭代次数准确率对比图
由图5看出,当迭代次数选取为50次时,准确率达到了最高。
(1)入侵检测模型实现
将预处理得到的数据输入到1d-MSCNN+GRU模型中,实验结果如表4所示。
表4 基于1d-MSCNN+GRU模型各子类检测结果
为了体现1d-MSCNN+GRU模型训练时间的优越性,本文将1d-MSCNN+GRU模型与传统的CNN模型进行了比较,结果如表5所示,其中可以看出1d-MSCNN+GRU模型的训练时间和测试时间都优于传统的CNN模型。
表5 两种模型所用的时间对比 (s)
(2)不同的机器学习入侵检测模型
本文将1d-MSCNN+GRU模型与单纯CNN模型和GRU模型进行了对比,结果如表6所示。
表6 不同算法的分类结果(%)
由表6可以看出,1d-MSCNN+GRU模型准确率为99.16%,召回率为98.34%,F1值为98.30%,明显高于CNN模型和GRU模型,其中1d-MSCNN+GRU模型的F1值比CNN模型高出3.17%,比GRU模型高出3.74%,由此可以证明该方法的有效性。
另外,本文将1d-MSCNN+GRU模型与经典机器学习算法进行了比较,基于支持向量机的入侵检测算法准确率为90.4%,召回率为87.65%,F1值为91.79%。基于神经网络入侵算法的准确率为94.98%,召回率为95.60%,F1值为96.38%。基于决策树的入侵检测算法准确率为91.64%,召回率为96.32%,F1值为95.87%。图6展示了各个入侵检测方法的对比结果。
图6 各类模型对比图
由图6可知,本文提出的1d-MSCNN+GRU模型准确率明显高于其他传统机器学习,召回率、精确度和F1值也优于其他算法。因而可以看出本文所提出的1d-MSCNN+GRU模型在收敛性方面表现最好。
为了进一步验证本文模型的泛化能力,本文又对密西西比州采集的数据进行实验,使用80%的数据进行训练,用剩余的20%进行测试,再与其他经典机器学习算法进行比较,结果如图7所示。
从图7中可以明显看出本文提出的模型在准确率方面仍然比CNN和SVM算法优越,由此可以看出本文模型的泛化能力强。
图7 不同算法的准确率对比图
本文提出了一种基于一维多尺度卷积神经网络和门控循环单元相结合的入侵检测模型。该方法首先通过一维多尺度卷积神经网络有效地提取数据的高级数据特征,弥补局部特征提取不全的问题,达到充分获取输入数据中重要信息的目的;接着使用门控循环单元保存历史输入信息,使前期的输入信息与当前的输入一起映射到当前的输出,增加了精确度。实验结果表明,在使用KDD CUP 99数据集仿真实验时,与其他机器学习方法相比,本文模型的准确率较高、训练时间较短。而且1d-MSCNN+GRU模型在经过调试后,可以保存为.h5文件,再次调用后,可以直接使用,不需要再次训练优化,而如果无法满足要求,可以继续训练优化。
本文模型1d-MSCNN+GRU仅在当前两个数据集上验证了模型的检测效果,下一步将会把本文模型应用到多种数据集上,并继续优化模型,进一步提高检测效果。