基于ResNet 和双向LSTM 融合的物联网入侵检测分类模型构建与优化研究

2020-09-06 13:34陈红松陈京九
关键词:双向准确率流量

陈红松,陈京九

(北京科技大学计算机与通信工程学院,北京 100083)

随着网络的不断发展,人们对互联网的依赖也与日俱增.互联网为人们的生产生活提供方便的同时,也滋生了越来越多的安全问题.尤其是在当前物与物相连的物联网时代,如何快速识别物联网中的入侵,成为网络安全领域亟待解决的问题之一.入侵检测系统(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 进行印度语单词识别,验证了CNNRNN 网络可以在提取图像特征的同时,学习时序相关特征.

通过对现状分析可知,深度学习构建入侵检测系统可以从原始数据中提取更高维度的特征,从而获得更加良好的分类模型.本文提出一种基于ResNet 与双向LSTM 融合的网络入侵检测分类模型,并通过实验进行验证与优化.

1 物联网入侵检测数据预处理

本文提出基于ResNet 和双向LSTM 融合的物联网入侵检测分类模型构建与优化流程如图1 所示.

图1 基于ResNet 和双向LSTM 融合的物联网入侵检测分类模型构建与优化流程图Fig.1 Intrusion detection and classification model construction and optimization pipeline based on combination of ResNet and bidirectional LSTM network

由于流量数据具有时间相关性,为对大规模物联网流量进行批量、快速处理,提出将窗口内多条连续流量记录转换合成为图片并利用基于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 所示.

图2 SamExtract 伪代码Fig.2 SamExtrace code

本文设定窗口大小w=10,抽取阈值α=0.9,抽取后得到的数据集DB与数据集DA对比如表1 所示.

表1 数据集DA,DB 样本数对比Tab.1 Dataset DA,DB sample number comparison

由表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 进行归一化处理.目前常用的归一化方法有均值方差归一化和最大最小归一化,均值方差归一化处理后的数据符合标准正太分布,常用在一些通过距离得出相似度的聚类算法中,计算公式为:

最大最小归一化的手段是一种线性的归一化方法,它的特点是不会对数据分布产生影响,但结果稳定性取决于数据集最大值、最小值的稳定性,常用于图像处理领域,计算公式为:

式中:x 为序列中某一数据当前值;xmin为序列中该数据最小值;xmax为序列中该数据最大值.

通过归一化处理后的数值矩阵再次放缩到[0,255]区间,并将该值作为图像对应像素的灰度值,生成的局部流量图像如图3 所示.

图3 不同归一化方法生成图片对比Fig.3 Image comparison generated by different normalization methods

由图3 可以看出,图3(a)颜色区分更加鲜明,图3(b)颜色区分不太明显,但是图3(b)可以保留更多的信息.其原因是均值方差归一化方法对数据的处理方式是把特征的样本均值变成0,标准差变成1,因此保留了更多特征,而最大最小归一化方法对数据的处理方式是将样本数据根据最大值和最小值调整到一个区间内,这样会丢失更多的信息.因此本文图像映射采用均值方差归一化方法进行处理.

均值方差归一化处理后的正常流量、DDoS 攻击流量和Portscan 攻击流量图像分别如图4、图5、图6所示.

图4 正常流量映射生成的图像Fig.4 Image generated by normal traffic mapping

图5 DDoS 攻击流量映射生成的图像Fig.5 Image generated by DDoS attack traffic mapping

图6 Portscan 攻击流量映射生成的图像Fig.6 Image generated by Portscan attack traffic mapping

由图4、图5、图6 可以看出,3 种不同类别流量映射图像差异较大,可证明该图像映射方法有效.因此本文后续根据该数据集进行建模与评估.

2 基于ResNet 和双向LSTM 融合的物联网入侵检测分类模型构建

本文提出的ResNet+双向LSTM 总体结构图如图7 所示.

图7 ResNet+双向LSTM 总体结构图Fig.7 ResNet+bidirectional LSTM overall structure

图7 中第一个卷积层中文字表示卷积核大小为3×3,卷积核个数为16 个,移动步长为[1,1],分别代表纵向移动1 步以及横向移动1 步,V 代表无填充,S 代表0 填充,第一个箭头下方数字代表当前张量高度为10,宽度为78,通道数为1.其中输入层的结构图如图8 所示.

图8 输入层结构图Fig.8 Input layer structure

2.1 ResNet-Inception 层

图7 中ResNet-Inception 层是Szegedy 等[10]基于He 等[11]ResNet 融合了GoogLeNet 中的inception-v4提出创新型结构.具体结构如图9 所示.

图9 ResNet-Inception 层结构图Fig.9 ResNet-Inception layer structure

由图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 所示.

图10 LSTM 单元内部结构图Fig.10 LSTM unit architecture

图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 网络结构图Fig.11 Bidirectional LSTM network architecture

由图11 可知,每一个输出神经元的输入都包含前向LSTM 层输出与反向LSTM 层输出.输出神经元的计算公式如下:

3 基于ResNet 和双向LSTM 融合的物联网入侵检测分类模型评估与优化

3.1 模型评估

本文采用TensorFlow 开源机器学习框架,将第1 节生成的数据集按照时间维度分割为训练集与测试集,构造并验证基于ResNet 和双向LSTM 融合的物联网入侵检测分类模型的有效性.数据集类别分布如表2 所示.

表2 图像数据集类别分布Tab.2 Image dataset sample category distribution

使用卷积层与最大池化层构造ResNet-Inception 结构,双向LSTM 网络参数为288 个输入节点,中间隐藏层为1 层,隐藏层节点20 个,学习率为0.001.利用图像训练集对网络进行训练,共训练100轮,取最佳效果如表3 所示.

表3 基于ResNet 和双向LSTM 融合模型分类预测实验结果Tab.3 Experimental results of ResNet and bidirectional LSTM model

该网络结构在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 层结构对比Fig.12 Different ResNet-Inception layer comparison

表4 不同ResNet-Inception 结构效果对比Tab.4 Results comparison of different ResNet-Inception architecture

由图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 所示.

图13 不同连接结构对比Fig.13 Different link architecture comparison

本文在3.2.1 节网络结构基础上,保持其他网络参数不变,分别采用不同连接结构对模型进行分类测试,得到对比结果如表5 所示.

表5 不同连接结构效果对比Tab.5 Results comparison of different link architecture

由表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 双向LSTM 层结构优化效果对比Tab.6 Results comparison of bidirectional LSTM layer architecture

由表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 伪代码Fig.14 BestSaver code of best model save algorithm

经过图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 以内,效果好于其他机器学习模型.

表7 分类模型效果对比Tab.7 Results comparison of different classification model

本文所用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 算法、网络结构优化、模型复用等优化方法对物联网环境下大规模入侵检测分类模型构建及优化具有一定参考价值.

猜你喜欢
双向准确率流量
双向度的成长与自我实现
冰墩墩背后的流量密码
降低寄递成本需双向发力
用“双向宫排除法”解四宫数独
张晓明:流量决定胜负!三大流量高地裂变无限可能!
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
寻找书业新流量