陈红松 陈京九
摘 要:为提高物联网入侵检测模型的综合性能,将残差神经网络(Residual Networks,ResNet)与双向长短时记忆(Long-Short Term Memory,LSTM)网络融合,构建物联网入侵检测分类模型.针对大规模物联网流量快速批量处理问题,在对原始数据进行清洗、转换等预处理基础上,提出将多条流量样本转换为灰度图,并利用基于ResNet和双向LSTM融合的深度学习方法构建物联网入侵检测分类模型.对分类模型的网络结构、可复用性进行综合优化实验,得到最终优化模型,分类准确率达到96.77%,综合优化后的模型构建时间为39.85 s.与其他机器学习算法结果相比,该优化方法在分类准确率和效率两个方面取得了很好的效果,综合性能优于传统的入侵检测分类模型.
关键词:入侵检测;残差网络;双向LSTM网络;图像分类;物联网
中图分类号:TP183 文献标志码:A 文章编号:1674—2974(2020)08—0001—08
Abstract:In order to improve the performance of the Internet of Things (IOT) network intrusion detection model, Residual Networks (ResNet) and bidirectional Long-Short Term Memory (LSTM) networks were combined,and an IOT intrusion detection classification model was constructed. For the rapid and batch processing problem of large-scale IOT traffic, multiple traffic samples were converted into grayscale images. Then,the grayscale images were used to construct IOT intrusion detection and classification model which combined with ResNet and bidirectional LSTM network. The network structure and re-usability of the classification model were optimized experimentally,so the optimization model was obtained finally. The classification accuracy of the optimization model is 96.77%, and the running time after the model reuse optimization is 39.85 s. Compared with other machine learning algorithms, the proposed approach achieves good results in both classification accuracy and efficiency. The performance of the proposed model is better than that of traditional intrusion detection model.
Key words:intrusion detection;Residual Networks(ResNet);bidirectional Long-Short Term Memory(LSTM) networks;image classification;IOT(Internet of Things)
随着网络的不断发展,人们对互联网的依赖也与日俱增.互联网为人们的生产生活提供方便的同時,也滋生了越来越多的安全问题.尤其是在当前物与物相连的物联网时代,如何快速识别物联网中的入侵,成为网络安全领域亟待解决的问题之一.入侵检测系统(Intrusion Detection System,IDS)可对流经网络中的流量进行判别,以检测是否有入侵情况的发生.入侵检测的实质是一个分类问题,即判定当前流量记录正常与否,或判定流量所属攻击类别.
Sharafaldin等[1]研发的CICIDS2017入侵检测数据集是一个公开数据集,该数据集基于真实环境采集得到.数据集包含正常流量和最新的常见攻击流量,目前国内外有公司、研究机构与学校共计196所正在使用该数据集. Gharib等[2]利用B-Profile系统基于HTTP、HTTPS、FTP、SSH和电子邮件协议构建了25个人类交互的抽象行为,用以生成正常背景流量.实施的攻击包括暴力FTP、暴力SSH、DoS、Heartbleed、Web攻击、渗透、僵尸网络和DDoS等.
孔令爽[3]利用将流量数据转换为图像的方法,把数据以灰度图的形式表示出来,使用图像中的纹理表征对入侵方式进行归类.徐温雅[4]提出利用改进的K-means算法对训练集中的样本进行数据筛选与预处理,通过基于SVM与神经网络的混合网络入侵检测模型对数据集进行分类. Vinayakumar等[5]利用CNN-RNN网络构建入侵检测模型对KDD CUP99数据集进行建模测试,准确率达到98.7%,证明CNN在提取图片高维特征时具有一定优势. Zhang等[6]提出融合LeNet5和LSTM的方法构建入侵检测模型对CICIDS2017数据集进行建模测试,准确率达到99.91%.Ustebay等[7]提出深度多层感知机方法构建入侵检测模型,最终达到91%的准确率. Dutta等[8]利用CNN-RNN 网络进行手写词语识别. Jain等[9]利用CNN-RNN进行印度语单词识别,验证了CNN-RNN网络可以在提取图像特征的同时,学习时序相关特征.
通过对现状分析可知,深度学习构建入侵检测系统可以从原始数据中提取更高维度的特征,从而获得更加良好的分类模型.本文提出一种基于ResNet与双向LSTM融合的网络入侵检测分类模型,并通过实验进行验证与优化.
1 物联网入侵检测数据预处理
本文提出基于ResNet和双向LSTM融合的物联网入侵检测分类模型构建与优化流程如图1所示.
由于流量数据具有时间相关性,为对大规模物联网流量进行批量、快速处理,提出将窗口内多条连续流量记录转换合成为图片并利用基于ResNet和双向LSTM融合的计算机视觉处理技术进行分类的方法.本文采用CICIDS2017数据集,对其进行数据清洗、数据抽取和数据映射等操作,将其转换为图像数据集.
1.1 数据清洗
通过对CICIDS2017数据集分析,发现该数据集存在缺失、乱码等问题,无法直接用于物联网入侵检测模型的构建.为构建基于ResNet和双向LSTM融合的物联网入侵检测分类模型,利用数据清洗、数据变换等步骤需对原始数据集进行预处理.
“脏数据”是指不完整、含有噪声、不一致的数据,破坏了原始数据信息中的内部规律,导致数据分析和处理的运行效果不佳.因此需要利用自定义的清洗规则,对“脏数据”进行数据清洗,手工或自动地将“脏数据”转换成满足数据质量要求的数据.
数据清洗面对的主要问题是空缺值、错误数据、孤立点和噪声,解决方案是利用相同的常数填补数据集缺失,将存在的特殊符号及乱码进行清空或替换处理.由于CICIDS2017数据集存在的78个特征中,既有数值数据,又有字符数据,而深度神经网络的输入值应该是一个数值化矩阵,所以需要将数据标准化,数据变换时,对非数值化特征如“infinite”等转化为数值形式.
1.2 数据抽取
本文选用CICIDS2017中的DDoS和Portscan数据集,包含225 255条正常样本、128 027条DDoS攻击样本和158 930条Portscan攻击样本.为增加不同类别样本之间的差异性,提高模型分类效果,本文提出数据抽取算法SamExtract对原始数据集进行预处理.设样本空间T = {T1,T2,…,Tn},当前样本为Tt,样本类别i = {0,1,2}分别代表正常、DDoS攻击和Portscan攻击,SamExtract算法伪代码如图2所示.
本文设定窗口大小w=10,抽取阈值α=0.9,抽取后得到的数据集DB与数据集DA对比如表1所示.
由表1可知抽取后得到的数据集DB中正常样本、DDoS攻击样本和Portscan攻击样本损失率分别为1.63%、0.11%和0.82%.由此可知,根据该方法抽取的数据集DB仅损失了少量特征不明显的样本,保留了原始数据集DA中的大部分样本,可证明该提取规则有效.
1.3 数据映射
经过上述操作后,继续将数据集DB中的数据映射为图像数据集.由于本文设置窗口大小w=10,CICIDS2017数据集中特征数为78个,所以将数据集DB中尺寸为10×78的矩阵W映射为10×78大小的灰度图像.图像中每一个像素对应矩阵中相应位置的数值.
但由于灰度图数值范围为[0,255],而原始矩阵W中数据区间较大,为保留更多特征细节,映射时需要对原始矩阵W进行归一化处理.目前常用的归一化方法有均值方差归一化和最大最小归一化,均值方差归一化处理后的数据符合标准正太分布,常用在一些通过距离得出相似度的聚类算法中,计算公式为:
最大最小归一化的手段是一种线性的归一化方法,它的特点是不会对数据分布产生影响,但结果稳定性取决于数据集最大值、最小值的稳定性,常用于图像处理领域,计算公式为:
通过归一化处理后的数值矩阵再次放缩到[0,255]区间,并将该值作为图像对应像素的灰度值,生成的局部流量图像如图3所示.
由图3可以看出,图3(a)颜色区分更加鲜明,图3(b)颜色区分不太明显,但是图3(b)可以保留更多的信息.其原因是均值方差归一化方法对数据的处理方式是把特征的样本均值变成0,标准差变成1,因此保留了更多特征,而最大最小归一化方法对数据的处理方式是将样本数据根据最大值和最小值调整到一个区间内,这样会丢失更多的信息.因此本文图像映射采用均值方差归一化方法进行处理.
均值方差归一化处理后的正常流量、DDoS攻击流量和Portscan攻击流量图像分别如图4、图5、图6所示.
由图4、图5、图6可以看出,3种不同类别流量映射图像差异较大,可证明该图像映射方法有效.因此本文后续根据该数据集进行建模与评估.
2 基于ResNet和双向LSTM融合的物联网入侵检测分类模型构建
本文提出的ResNet+双向LSTM总体结构图如图7所示.
图7中第一个卷积层中文字表示卷积核大小为3×3,卷积核个数为16个,移动步长为[1,1],分别代表纵向移动1步以及横向移动1步,V代表无填充,S代表0填充,第一个箭头下方数字代表当前张量高度为10,宽度为78,通道数为1.其中输入层的结构图如图8所示.
2.1 ResNet-Inception层
图7中ResNet-Inception层是Szegedy等[10]基于He等[11] ResNet融合了GoogLeNet中的inception-v4提出创新型结构. 具体结构如图9所示.
由图9可以看出,ResNet-Inception結构不仅在深度上进行扩展,还增加了网络的宽度. 在最右侧卷积层前有一个连接层,把3个通道生成的不同类型但大小相同的特征图并排连接起来,形成新的特征响应图. 数据在输出层之前经过了两条路线,一条是常规路线,另一条是捷径,直接实现单位映射的直接连接的路线.两条路线得到的张量在输出层前进行了点加操作,最后将张量继续向网络下层传递.
2.2 双向LSTM层
长短时记忆网络(Long-Short Term Memory,LSTM)[12]是一种特殊的RNN类型,其区别于普通RNN的地方,主要在于它在算法中放置了3扇门,分别叫做输入门(input gates)、遗忘门(forget gates)和输出门(output gates),通过门结构的设计来避免梯度消失问题. 门结构的存在可以让LSTM单元保存和获取长时间周期的上下文信息,LSTM单元内部结构如图10所示.
式中:σ表示sigmoid函数;Wf、Wi、Wc、Wo分别为遗忘门、输入门、tanh函数和输出门的权重矩阵;ht-1为隐藏层前一时刻输出;Ct为当前t时刻LSTM单元的输出;ot为当前t时刻输出门的输出;ht为当前t时刻隐藏层的输出;xt为输入向量;bf、bi、bc、bo分别为遗忘门、输入门、tanh函数和输出门的偏置值.
双向LSTM网络中的每一个训练序列均由前向传播LSTM网络和反向传播LSTM网络组成,这两个LSTM网络同时连接一个输出层,为输出层中的每一个神经元提供完整的上下文信息. 具体双向LSTM网络结构如图11所示.
由图11可知,每一个输出神经元的输入都包含前向LSTM层输出与反向LSTM层输出. 输出神经元的计算公式如下:
3 基于ResNet和双向LSTM融合的物联网入侵检测分类模型评估与优化
3.1 模型评估
本文采用TensorFlow开源机器学习框架,将第1节生成的数据集按照时间维度分割为训练集与测试集,构造并验证基于ResNet和双向LSTM融合的物联网入侵检测分类模型的有效性.数据集类别分布如表2所示.
使用卷积层与最大池化层构造ResNet-Inception结构,双向LSTM网络参数为288个输入节点,中间隐藏层为1层,隐藏层节点20个,学习率为0.001.利用图像训练集对网络进行训练,共训练100轮,取最佳效果如表3所示.
该网络结构在64轮时获得最佳结果,准确率为94.26%,训练耗时1 488.87 s. 其中F度量为综合了准确率与召回率参数的指标,计算公式如下:
式中:P为准确率;R为召回率.
ResNet-Inception结构解决了深层网络的梯度消失问题,长短时记忆单元特有的门结构解决了传统循环神经网络时间维度的梯度消失问题,实现较大范围的上下文信息的保存与传输,提高了LSTM单元对具有长时间间隔相关性特点的序列信息的处理能力.
3.2 模型优化
3.2.1 ResNet-Inception层结构优化
初始ResNet-Inception层结构如图8所示,不同的ResNet-Inception结构对于不同数据集拟合情况不同. 因此本文尝试调整ResNet-Inception结构对模型进行进一步优化. 优化后的v1、v2和v3结构如图12所示.
在保持其他参数不变的情况下,仅更改ResNet-Inception层的结构,训练100轮,得到不同的ResNet-Inception结构效果对比如表4所示.
由图12可知,ResNet-Inception v1结构最为复杂有3个平行分支,v2、v3结构比v1结构少一个平行分支. 由表4可知,采用ResNet-Inception v3结构的分类模型在77轮时获得最佳结果,准确率为94.84%,训练耗时1 840.17 s,效果强于v1和v2结构. 因此下文针对ResNet-Inception v3结构继续进行优化.
3.2.2 ResNet与双向LSTM层间连接结构优化
本文当前ResNet层与双向LSTM层间连接方式是将16个3×6大小的特征图全部展开成为1×288的向量作为双向LSTM层的输入,此时双向LSTM层的输入节点数为288,时间序列长度为1.而文献[6]中将全连接层后的1×1 600的向量重构为10×160的向量获得了较好的效果,因此本文尝试改进ResNet与双向LSTM层间的连接层结构,将16个特征图作为双向LSTM层的不同时间序列,此时双向LSTM层的输入节点数为18,时间序列长度为16. 两种不同连接结构对比图如图13所示.
本文在3.2.1节网络结构基础上,保持其他网络参数不变,分别采用不同连接结构对模型进行分类测试,得到对比结果如表5所示.
由表5可知,在连接层结构为v1时取得最佳效果,且由实验结果可知,在连接层结构为v2时,模型的稳定性受到影响,分类结果在66.70%~93.38%之间波动.因此文本后续实验基于连接结构v1进行优化.
3.2.3 双向LSTM层结构优化
门控循环单元(Gate Recurrent Unit,GRU)[10]是一种对LSTM精简后的变体,将 LSTM中的遗忘门和输入门合并为更新门(update gates),因此GRU的结构只有两个门组成,结构更为简单,计算量也随之降低.本文尝试将LSTM单元更换为GRU与RNN(Recurrent Neural Networks)单元,同时调整双向LSTM层结构以达到更佳分类效果.模型优化效果对比如表6所示.
由表6可知,RNN與GRU单元结构较为简单,构建模型所需训练时间较短,但准确率较LSTM单元有所下降. 因此下文继续基于LSTM单元进行优化.而LSTM层在隐藏层数为2层,隐藏层节点为20个时,在不影响分类器准确率的同时达到了效率的提升.因此本文后续将基于当前结构进行进一步优化.
3.3 模型复用
由于模型训练花费时间较长,且具有随机性,导致模型无法保证每次均能得到最佳结果.因此tensorflow框架针对这一问题设计提供了saver函数,利用tensorflow中的saver函数可以将任意轮次训练中的相关模型参数保存至checkpoints文件中.本文设定初始准确率阈值α为0.8,判断当前迭代轮次模型准确率是否高于当前准确率阈值,若高于当前准确率阈值,则利用saver函数保存当前模型参数并更新准确率阈值为当前模型准确率,反之则进行下一轮训练. 设模型迭代总轮次为w,当前轮次模型为Mi(0 < i < w),本文所用最佳模型保存算法BestSaver伪代码如图14所示.
经过图14的BestSaver算法后得到最佳模型MB,利用restore函数可以将MB恢复,再对图像测试集进行测试,依然可以达到最优效果,为模型的迁移复用提供了便利.利用3.2节最优网络结构参数,对图像数据集进行1 000轮的训练测试,发现第903轮循环时得到了最优的模型结果,准确率达96.77%,模型训练共耗时13 968.88 s.利用BestSaver算法将其模型保存后,利用restore方法读取最佳模型参数并对全部图像测试集进行预测,准确率依然达到96.77%,但模型构建所耗费的时间缩短为39.85 s,大大提高了模型检测效率,为大规模物联网流量入侵检测提供可行方案.
4 物联网入侵检测分类模型对比
本文利用第1节处理后的图像数据集对于目前主流机器学习方法进行了训练测试,分类模型效果对比如表7所示.
由表7可知,在其他机器学习算法中,ResNet神经网络分类模型获得了最高的准确率96.08%,模型构建耗时9 698.51 s,而支持向量机(Support Vector Machine,SVM)算法准确率最低为36.46%,耗时3 758.84 s.其余的算法如LeNet5神经网络、AlexNet神经网络、VGGNet神经网络、GoogLeNet神经网络、朴素贝叶斯(Naive Bayes,NB)、支持向量机(Support Vector Machine,SVM)、随机森林(Random Forest Classifier,RFC)、决策树(Decesion Tree,DT)、梯度提升(Gradient Boosting,GB)、AdaBoost算法,分别获得了67.95%到95.52%之间不等的准确率,模型构建耗费时间跨度也从0.42 s到8 794.45 s.与以上方法对比,本文所提ResNet-双向LSTM算法获得了96.77%的准确率,模型构建时间为13 968.88 s.但利用保存好的模型进行模型重构,模型构建时间可以缩短到40 s以内,效果好于其他机器学习模型.
本文所用Portscan攻击数据仅为2017年7月7日13:55-14:35共40 min采集到的流量数据,而DDoS攻击数据仅为2017年7月7日15:56-16:16共20 min采集到的流量数据,其样本数量已足够训练本文所提模型. 而在实际应用时,由于现实网络环境中攻击流量与正常流量的数据量巨大,且采集时间没有限制,所以样本量将更加庞大. 因此实际应用时的样本量远大于本文训练时所用样本量,足以训练本文所提模型.因此本文所提模型对真实物联网环境下大规模入侵检测分类模型构建及优化具有一定参考价值.
5 结 论
针对大规模物联网流量批量快速处理问题,本文提出SamExtract算法将窗口内多条连续流量记录转换合成为图片,并利用基于ResNet和双向LSTM融合的深度学习方法构建物联网入侵检测分类模型.本文提出的基于ResNet和双向LSTM融合的网络结构,在空间维度上,利用卷积层提取图像有效特征,利用ResNet-Inception层解决深层次网络梯度消失难以训练的问题;在时间维度上,利用双向LSTM网络学习网络流量间的潜在时间特征.通过进一步优化ResNet-Inception层结构、连接层结构、双向LSTM网络和复用分类模型,使优化后的分类模型在提高准确率的同时提高分类器执行效率.采用生成的图像测试集对优化后的分类模型进行测试,模型分类预测的准确率达到了96.77%,模型构建时间为39.85 s,综合性能优于其他分类模型.本文所提SamExtract算法、网络结构优化、模型复用等优化方法对物联网环境下大规模入侵检测分类模型构建及优化具有一定参考价值.
参考文献
[1] SHARAFALDIN I,LASHKARI A H,GHORBANI A A. Toward generating a new intrusion detection dataset and intrusion traffic characterization[C]// International Conference on Information Systems Security and Privacy. Berlin:Springer,2018:108—116.
[2] GHARIB A,SHARAFALDIN I,LASHKARI A H,et al. An evaluation framework for intrusion detection dataset[C]// International Conference on Information Science and Security. Washington D C:IEEE Computer Society,2016:1—6.
[3] 孔令爽. 基于深度學习和迁移学习的入侵检测研究[D].青岛:山东大学信息科学与工程学院,2018:1—10.
KONG L S. Research on intrusion detection based on deep learning and transfer learning [D]. Qingdao:School of Information Science and Engineering,Shandong University,2018:1—10. (In Chinese)
[4] 徐溫雅. 基于机器学习的网络入侵检测研究[D]. 北京:北京交通大学计算机与信息技术学院,2018:2—16.
XU W Y. Research on network intrusion detection based on machine learning [D]. Beijing:School of Computer and Information Technology,Beijing Jiao Tong University,2018:2—16. (In Chinese)
[5] VINAYAKUMAR R,SOMAN K P,POORNACHANDRAN P. Applying convolutional neural network for network intrusion detection[C]// International Conference on Advances in Computing,Communications and Informatics. Washington D C:IEEE Computer Society,2017:1107—1110.
[6] ZHANG Y,CHEN X,JIN L,et al. Network Intrusion detection:based on deep hierarchical network and original flow data [J]. IEEE Access,2019,7(1):37004—37016.
[7] USTEBAY S,TURGUT Z,AYDIN M A. Intrusion detection system with recursive feature elimination by using random forest and deep learning classifier[C]// International Congress on Big Data,Deep Learning and Fighting Cyber Terrorism. Washington D C:IEEE Computer Society,2018:71—76.
[8] DUTTA K,KRISHNAN P,MATHEW M,et al. Improving CNN-RNN hybrid networks for handwriting recognition[C]// International Conference on Frontiers in Handwriting Recognition. Washington D C:IEEE Computer Society,2018:80—85.
[9] JAIN M,MATHEW M,JAWAHAR C V. Unconstrained OCR for Urdu using deep CNN-RNN hybrid networks[C]// IAPR Asian Conference on Pattern Recognition. Washington D C:IEEE Computer Society,2017:747—752.
[10] SZEGEDY C,IOFFE S,VANHOUCKE V. Inception-v4,inception-ResNet and the impact of residual connections on learning [C]// AAAI Conference on Artificial Intelligence. Palo Alto:AAAI Press,2016:4278—4284.
[11] HE K M,ZHANG X Y,REN S Q,et al. Deep residual learning for image recognition [C]// IEEE Conference on Computer Vision and Pattern Recognition. Washington D C:IEEE Computer Society,2016:770—778.
[12] KIM J,KIM J,THU H L T,et al. Long short term memory recurrent neural network classifier for intrusion detection [C]// IEEE International Conference on Platform Technology and Service. Washington D C:IEEE Computer Society,2016:1—5.