康潆允,孟凡宇,冯永新
(沈阳理工大学信息科学与工程学院,沈阳 110159)
物联网[1](IOT)是一个大型的异构网络,被定义为采用多种信息传感设备,在规定的通信协议下将互联网与物理设备相连接以实现信息的交互,进而实现智能化监控和管理的网络系统。
物联网关键技术起源于军事需求,发展于经济建设,伴随着社会进步和科技发展,其应用也逐渐得到扩展。军事物联网[2]是一个以现有军事网络为基础,将其末端延伸到具体武器装备,通过射频识别(RFID)、红外感应器、传感器、定位系统等信息传感设备,按约定的协议把任何物品与军队内部专用网络连接起来,实现军事活动中人、物、环境之间的联接、信息交互和通信,并对人员、武器、装备智能识别、定位、跟踪、监控和管理,从而实现战场环境感知及实时后勤保障的一种智能化网络。考虑到军事应用中战场环境复杂、作战单元众多,以及持续有效的供给等实际需求,军事物联网已被许多军事专家称为“一个未探明储量的金矿”,并正在孕育着军事变革深入发展的新契机。
针对军事物联网中网络流量数据日趋复杂,以及数据特征维度高,非线性特性强等特点,传统机器学习易出现“维度爆炸”等问题,本文围绕基于深度学习的军事物联网网络流量分析展开讨论,提出一种基于无池化层改进型卷积神经网络的军事物联网网络流量异常检测模型——NPCNN,并构造合理数据集进行性能评估,通过仿真实验对军事物联网网络流量异常检测模型进行了验证。实验研究表明,NPCNN 相比传统的卷积神经网络,在军事物联网网络流量异常检测方面具有更高的准确性。
军事物联网的技术架构如图1 所示,通常由感知层、网络层和应用层构成。从技术角度而言,军事物联网的安全目标包括机密性、完整性、可用性、可靠性、不可抵赖性、隐私性和可信性,由于军事物联网的构成及面临的环境复杂,网络各层都面临一些安全问题。
图1 军事物联网的技术架构
其中,军事物联网的网络层主要是对传感器采集的信息进行分析处理,并将结果安全无误地提供给应用层。它是在现有通信网和互联网的基础上建立起来的,因而,互联网中的安全威胁在军事物联网中同样存在,比如:窃听、篡改、中断、伪造、拒绝服务攻击、重发攻击、路由攻击、假冒身份等,这些攻击方式同样会发生在军事物联网的基础通信网络中。而网络流量的分析是军事物联网网络行为分析的一个重要方面,网络流量作为信息的重要载体,其内容刻画和记录了通信双方具体的相关活动,在网络上进行的通信行为,网络流量均能够在一定程度上体现出来,通过分析网络流量,可以很直观地了解网络中进行的各种行为。
入侵检测系统[3](IDS)是常用的网络流量分析技术,其目的是要识别隐藏在正常流量中的恶意流量。文献[4-7]可以弥补传统入侵检测技术的不足,但在算法的可扩展性方面存在局限性。近年来互联网、云计算等技术的发展迅猛,军事物联网面临的网络环境更加复杂,传统的入侵检测在复杂环境下性能将会大大降低,同时,数据的爆炸性増长也成为军事物联网安全维护必须要面对的严峻挑战。传统机器学习方法很难满足入侵检测实时性的要求[8],不能很好地适应物联网环境的需求。因此,发展面向军事物联网的新型网络流量分析技术十分必要。深度学习算法[9]在多媒体处理方面带来突破性的成果,网络空间安全领域的研究者也在尝试将深度学习算法应用于恶意软件检测和入侵检测等领域。本文不同于上述已有工作,结合深度学习算法,构建出一种基于无池化层改进型卷积神经网络(NPCNN,No Pooling CNN)的网络流量异常检测模型。
面向军事物联网的NPCNN 网络流量异常检测模型,采用深度学习技术自动化学习网络流量的特征,将特征提取与模型训练过程结合起来,从全局的角度对网络流量进行分析。该检测模型不依赖于任何有关协议和拓扑的先验知识,也不需要人工选择特征。面向军事物联网的NPCNN 网络流量异常检测模型的整体框架如下页图2 所示。
在原始的网络流量数据中,存在数据类型不统一(包含离散型的数据和连续型的数据),数据特征类型不统一(包含数值型和字符型的特征),属性值范围差异大,且标签也过于繁琐的问题,为了能够方便地使用算法对网络流量进行分类,需要对数据进行预处理[10]。
图2 面向军事物联网的NPCNN 网络流量异常检测模型整体框架
首先进行数据标准化,可采用数值映射或编码映射的方式,将字符型特征转换为离散化的数值型。经数据标准化后,每一条数据选择的各个属性都变为数值型数据,但用此时的数据进行处理,就会出现“大数吃小数的现象”,即计算的结果被某个样本的特征属性完全掩盖,无法看出不同样本的属性特点。因此,需对标准化后的数据进行归一化处理,将数据映射到[0,1]上。
经过标准化和归一化后的数据data 为包含i 个特征的i×j 维数组,求出每列属性的最大值;将每个数据和该数据所在列的最大值的比值,作为该数据的归一化数值,将整个data 数组进行归一化;利用getdim 函数,将数据data 的维度取根号,向上取整为N,将N 作为输出数组的维度;将data 数据采用全“0”填充的方式,映射成N×N 维的数组numpy。数据预处理的伪代码如下:
传统卷积神经网络[11]模型结构如图3 所示,卷积神经网络每个网络有多个神经元,每个神经元只接收前一层的输出,经过该层的计算后,将结果输出给下一层,同一层的神经元互不连接。该算法可以将输入数据经过训练的多层网络得到输出。卷积神经网络包括输入层、卷积层、池化层、输出层等[12]。
图3 传统卷积神经网络模型结构
卷积神经网络中的池化层,能够缩小参数矩阵方法:数据预处理的尺寸,从而减少最后全连接层中参数的数量。而面向军事物联网的NPCNN 网络流量异常检测模型处理的是网络流量,与卷积神经网络常用来处理的图像有所不同。数据集中的数据点对最终的分类结果都有贡献,且相邻数据点之间的关联度不大,如采用池化对数据矩阵进行压缩,会有数据的损失,进而会导致准确率降低以及计算速度的减慢,在NPCNN 中,不采用池化层,直接将卷积后的数据输入到全连接网络中进行计算。因此,NPCNN 的网络结构无池化层,只包括输入层、卷积层、全连接层、输出层。NPCNN 的网络结构如图4 所示。
图4 NPCNN 的网络结构
经过预处理的数据,可以输入NPCNN 的网络中进行训练,NPCNN 的网络对数据的处理过程如下:首先将数据预处理后生成的N×N 维的数组阵输入到输入层中,卷积层采用M(M 是大于等于3的整数)个N×N 的卷积核,卷积步长为1,其输出结果是N×N×M 的矩阵,进而将数据映射成一列N×N×M 的数据,输入到隐藏层为K 个节点的全连接网络中,输出为P(P 为数据中的数据类别数目)维向量。
NPCNN 网络结构中的卷积层和全连接层的激活函数,均采用Relu 函数,该函数是非线性函数,能够增加卷积神经网络的非线性性。
同时为了提高检测模型的泛化能力,并能够更准确地评估模型的分类性能,NPCNN 的网络对数据流采用k-折交叉验证(k-fold cross validation)方法构造训练集。k-折交叉验证指将样本数据集随机划分为k 个相同大小的子集,在每次模型训练迭代过程中,按顺序选取其中的一个子集作为测试集,剩下的k-1 个子集作为训练集。本文取k=3,即将数据集分为3 份,每次取其中2 份进行训练,1 份进行测试。
2.4.1 分类器选择
NPCNN 采用Softmax 分类器来判断输入的数据流为正常流量还是恶意网络流量,它将多个神经元的输出,映射到(0,1)区间内,从而来进行分类,本文将Softmax 作为二分类器,输出结果为2 类。
2.4.2 损失函数
模型训练时,在分类器后需要根据损失函数计算损失,用来评估预测值与实际值的差距,进一步进行反向传播来进行参数调整。NPCNN 采用categorical_crossentropy(交叉熵损失函数)作为损失函数,交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况。它刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。
2.4.3 优化算法
Adam(Adaptive Moment Estimation)算法即自适应时刻估计方法,能计算每个参数的自适应学习率。与其他自适应学习率算法相比,Adam 收敛速度更快,学习效果更为有效,而且可以纠正其他优化技术中存在的问题,如学习率消失、收敛过慢或是高方差的参数更新导致损失函数波动较大等。
面向军事物联网的NPCNN 网络流量异常检测模型采用python 语言实现,其框架为Keras,实验硬件环境为Intel(R)Core(TM)i9-9900 K 3.6 GHz 的CPU 以及NVIDIA RTX2080Ti 的GPU,软件环境为ubuntu16.0.4,CUDA9.2,Tensorflow1.3 版本。为了测试模型的效果,本文采用了含有90 K 数据样本的Modbus 网络流量数据集、含有120 K 数据样本NSL-KDD 数据集、以及含有311K 数据样本的KDDCup99 数据集行验证,并将NPCNN 网络结构同CNN 对比。CNN 和NPCNN 相比,在卷积层和全连接层之间,多了一个2×2 的池化层。将总体准确率即正确分类的样本数占总样本数的比例和运行时间,作为衡量模型性能的标准。
图5 Modbus 数据集的NPCNN 网络结构
Modbus 数据集输入的NPCNN 网络结构如图5所示。首先,将25 维的Modbus 数据集中的符号性特征属性数值化和归一化处理,获得标准数据集,将25 维的数组转成5×5 的矩阵。其次,卷积层采用5 个3×3 的卷积核,卷积步长为1,其输出结果是5×5×5 的矩阵。再次,将数据映射成5×5×5的数据,输入到隐藏层为256 个节点的全连接网络中,本文中训练集的训练轮数为10 次,当训练集训练结束后,使用测试数据集进行测试,采用Softmax分类器对数据中的4 种数据类别进行识别,输出分类结果。
图6 NSL-KDD 数据集的NPCNN 网络结构
NSL-KDD 数据集输入的NPCNN 网络结构如图6 所示。首先,将41 维的NSL-KDD 数据集中的符号性特征属性数值化和归一化处理,获得标准数据集,将41 维的数组采用全“0”填充,映射成49 维数组,从而使之能够转成7×7 的矩阵。其次,卷积层采用5 个3×3 的卷积核,卷积步长为1,其输出结果是7×7×5 的矩阵。再次,将数据映射成一列7×7×5 的数据,输入到隐藏层为256 个节点的全连接网络中,本文中训练集的训练轮数为10 次,当训练集训练结束后,使用测试数据集进行测试,采用Softmax 分类器对NSL-KDD 数据集中的DoS、Probe、R2L、U2R 和Normal 5 种数据类别进行识别,输出分类结果。
KDDCup99 数据集的模型训练过程及NPCNN网络结构,同NSL-KDD 数据集。
采用Modbus 数据集对CNN 和面向军事物联网的NPCNN 网络流量异常检测模型进行10 轮训练,每一轮的总体准确率结果如表1 所示,结果对比如图7 所示。
图7 CNN 和NPCNN 在Modbus 数据集上运行的准确率对比图
表1 CNN 和NPCNN 在Modbus 数据集上运行的准确率
采用NSL-KDD 数据集对CNN 和面向军事物联网的NPCNN 网络流量异常检测模型进行10 轮训练,每一轮的总体准确率结果如表2 所示,结果对比如图8 所示。
表2 CNN 和NPCNN 在NSL-KDD 数据集上运行的准确率
图8 CNN 和NPCNN 在NSL-KDD 数据集上运行的准确率对比图
从表1、表2、图7 和图8 可以看出,在10 轮训练过程中,NPCNN 每次训练都会相对稳定地比上一次训练得到更优的总体准确率,且NPCNN 对军事物联网网络流量检测的总体准确率,能够更快地趋近于最优,说明将NPCNN 用于军事物联网网络流量异常检测,可以得到不错的效果。
同时,本文对面向军事物联网的NPCNN 网络流量异常检测模型,在不同数据量的流量样本上进行了测试,从上文中使用到的包含有120 K 样本的NSL-KDD 数据集中,随机抽取25 K、50 K、75 K 和100 K 数据样本,从包含9 K 样本的Modbus 数据集中,随机抽取2 K、4 K、6 K 和8 K 数据样本。采用不同数据量的NSL-KDD 数据集和Modbus 数据集对CNN 和面向军事物联网的NPCNN 网络流量异常检测模型训练,总体准确率的结果如图9 和图10 所示。
图9 不同数据量NSL-KDD 的总体准确率
图10 不同数据量Modbus 的总体准确率
从图中可以看出,NPCNN 对不同数据量大小的样本都有很好的分类准确率。同时随着数据样本数量的增加,同CNN 相比,NPCNN 在网络流量分析上的优势更加显著。
进一步,本文采用KDDCup99 数据集对CNN和面向军事物联网的NPCNN 网络流量异常检测模型进行10 轮训练,每一轮的总体准确率结果如表3所示,结果对比如图11 所示。
从表3 和图11 中可以看出,在10 轮训练过程中,NPCNN 对CNN 和军事物联网网络流量检测的总体准确率,能够更快地趋近于最优,面向军事物联网的NPCNN 网络流量异常检测模型,能够对不同数据量大小的网络流量样本进行分析,在大样本条件具有很好的可扩展性。
采用Modbus 数据集、NSL-KDD 数据集以及KDDCup99 数据集,对面向军事物联网的NPCNN网络流量异常检测模型进行实验的总体准确率和运行时间结果,如表4 所示。
从表4 中可以看出,由于NPCNN 网络结构没有池化层,没有减少最后全连层中的参数数量,因此,从算法的运行时间上看,CNN 略优于本文提出的NPCNN 算法。但从算法的准确率上看,NPCNN优于CNN,在处理NSL-KDD 数据集时,总体正确率可达到99.55 %,当处理Modbus 数据集时,总体正确率可达到99.97%,当处理KDDCup99 数据集时,总体正确率可达到94.18%。NPCNN 以牺牲极小的运算时间换取了较高的运算准确率,同时在大样本条件下算法也具有很高的运行效率。从而证明本文提出的一种面向军事物联网的NPCNN 网络流量异常检测模型,在军事物联网网络流量分析中具有很好的适用性。
表3 CNN 和NPCNN 在KDDCup99 数据集上运行的准确率
图11 CNN 和NPCNN 在KDDCup99数据集上运行的准确率对比图
表4 总体实验结果
传统机器学习易出现“维度爆炸”等问题,本文将卷积神经网络算法应用到军事物联网网络流量分析领域,NPCNN 进一步优化了神经网络结构,通过实验,验证了本文提出的网络流量异常检测模型,对军事物联网网络流量进行异常检测的可行性,以及对不同数据量的网络流量样本分析的可扩展性。