APP下载

基于卷积神经网络的工控网络异常流量检测

2019-08-01张艳升李喜旺李丹杨华

计算机应用 2019年5期
关键词:卷积神经网络深度学习

张艳升 李喜旺 李丹 杨华

摘 要:针对工控系统中传统的异常流量检测模型在识别异常上准确率不高的问题,提出一种基于卷积神经网络(CNN)的异常流量检测模型。该模型以卷积神经网络算法为核心,主要由1个卷积层、1个全连接层、1个dropout层以及1个输出层构成。首先,将实际采集的网络流量特征数值规约到与灰度图像素值相对应的范围内,生成网络流量灰度图;然后,将生成好的网络流量灰度图输入到设计好的卷积神经网络结构中进行训练和模型调优;最后,将训练好的模型用于工控网络异常流量检测。实验结果表明,所提模型识别精度达到97.88%,且与已有的精度最高反向传播(BP)神经网络测精度提高了5个百分点。这充分说明该模型能够有效检测出异常流量,作出安全预警,方便技术人员做出安全应对措施,极大地提高工控网络的安全性能。

关键词:卷积神经网络;异常流量监测;工控网络;特征提优;深度学习

中图分类号:TP301.6

文献标志码:A

Abstract: Aiming at the inaccuracy of traditional abnormal flow detection model in the industrial control system, an abnormal flow detection model based on Convolutional Neural Network (CNN) was proposed. The proposed model was based on CNN algorithm and consisted of a convolutional layer, a full connection layer, a dropout layer and an output layer. Firstly, the actual collected network flow characteristic values were scaled to a range corresponding to the grayscale pixel values, and the network flow grayscale map was generated. Secondly, the generated network traffic grayscale image was put into the designed convolutional neural network structure for training and model tuning. Finally, the trained model was used to the abnormal flow detection of the industrial control network. The experimental results show that the proposed model has a recognition accuracy of 97.88%, which is 5 percentage points higher than that of Back Propagation (BP) neural network with the existing highest accuracy. These fully demonstrate that the model can effectively detect abnormal flow, make safety warnings, and facilitate technicians to make security countermeasures, greatly improving the safety performance of industrial control network.

英文關键词Key words: Convolutional Neural Network (CNN); abnormal flow monitoring; industrial control network; feature optimization; deep learning

0 引言

随着两化融合的不断深入,越来越多的信息技术应用到了工业领域。工业控制系统已广泛应用于电力、水利、石油化工、汽车、航空和食品制药等工业领域, 其中大多数的基础设施实现自动化作业时依赖工业控制系统, 可见,工业控制系统已经成为国家关键基础设施的不可或缺的组成部分,因此工业控制系统和国家的战略安全密不可分。一般情况下,由通用的软件和网络设施组成工业控制系统,并集成到企业网和互联网等开放的网络环境中。传统工业控制系统是基于物理隔离的,它主要关注系统的功能安全,缺乏对网络信息安全的考虑,并且没有专门的安全防御措施, 例如2010年震撼全球的“震网”病毒事件,专门攻击工业控制系统设施,造成伊朗核电站推迟发电。工业系统网络化的快速发展,相应导致了系统的安全风险不断增加,面临的网络安全问题也更加突出,再加上工业网络通常采用传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol, TCP/IP)技术进行通信,利用传统的 IP安全漏洞攻击工业控制网络,使得工控系统的安全隐患愈加严重。

传统的工业控制网络安全的监测,一方面是通过工程师对网络设备进行排查,另一方面是管理员通过参数信息库对比参数进行分析并定位。目前国内外的各种网络质量监测技术发展相对成熟,使用较多的技术包括:1)在一定周期内,通过对实际网络系统的各种参数及指标进行观测,进而作出分析与评价;2)根据实际的网络系统建立数学模型,通过对其表达式的求解进行网络性能的模型分析;3)通过计算机程序模拟网络的实际使用情况,对得到的结果进行性能分析。

在大数据人工智能的环境下,算法和硬件系统的革新为网络异常的检测提供了全新的解决思路,许多的学者进行了尝试并取得了一定的成果。其中包括使用最小二乘支持向量机[1]、K均值(Kmeans)[2]算法、动态半监督的Kmeans结合单类支持向量机[2]以及通过二分法优化Kmeans簇[3]等多种算法对网络异常检测进行了研究分析。

分析上述研究方法发现虽然有些算法模型[3]取得了接近90%准确率,但是特征提取的好坏对传统机器学习算法的效果有很大的影响,且这样的准确率还远远达不到工业使用的要求。近年来,在计算机视觉等多分类任务领域中使用深度学习的方法取得了一系列的成果,本文方法将深度学习的方法应用到工业控制网络异常流量检测中。

本文以工业控制网络中的典型代表电力网络系统作为研究对象,系统采用IEC608705104规约(Telecontrol Equipment and SystemsPart 5104, IEC104)控制协议作为网络通信标准,IEC104规约是基于TCP/IP网络作为运动信息的网络传输规约标准。通过对辽宁省电网某子网交换机进行IEC104协议规约解析,采集网络流量数据,利用数据流时间窗口滑动的方式对采集的数据包进行应用层深度包检测,然后对检测到的数据包进行内容解析并统计网络流量特征。本文在采集并统计好流量特征后,采用在计算机视觉领域取得了不错的成果的卷积神经网络(Convolutional Neural Network, CNN)进行异常检测,典型的卷积神经网络有AlexNet[4]、更快速的基于区域的卷积神经网络(Faster Regions with Convolutional Neural Network, Faster RCNN)[5]等。实际环境下网络流量数据量大,通过将采集的网络流量特征数值规约到0~255,与灰度图像素值取值范围刚好对应,每条数据特征样本生成灰度图,将特征灰度图输入到根据实际场景设计实现的卷积神经网络中训练。采用卷积神经网络去训练不用像反向传播(Back Propagation, BP)神经网络那样每层之间采用全连接操作,导致训练的权值参数太多、计算困难、训练慢、反向传播梯度损失多等。卷积神经网络利用其局部感知与权值共享操作, 可以有效减少参数数目,降低了模型的复杂性,收敛速度快,避免了反向传播梯度消失快等。使用卷积神经网络训练模型,在面对工控网络流量大以及网络流量特征复杂时,不用人为地去挑选特征,直接让模型对特征进行提取,节约了人力成本,更符合工控环境,并最终取得了正确率相对高的模型[6]。用训练好的模型检测在线数据,能够及时作出预警,方便工作人员作出相应调整, 因此,该模型正确率高、人为参与少,更加符合工控网络实际环境,以此作为工控网络异常流量检测更有意义。

1 工控网络异常流量检测模型设计

1.1 异常流量检测流程

网络运行安全时网络各个维度的特征都比较平稳,但当异常发生时会产生较大的波动,当某些维度的数值超过阈值时判定异常发生。异常有许多种,并且一种异常发生时对应的特征波动情况也相对稳定,这是设计卷积神经网络的异常流量检测模型的原则。检测的具体流程如图1所示,整個流程分为S1和S2两大阶段:其中S1阶段也称为数据预处理阶段,主要对采集到的数据进行相关处理;S2阶段,主要对S1阶段处理后的数据进行模型的建立,以及对在线数据进行异常检测,并作出安全预警。

特征提优 对应图1中S1数据预处理部分。网络流量数据的采集使用时间窗的方法,普通攻击使用2s作为一个时间窗采集一次数据;慢速攻击扫描频率一般大于2s,所以使用5s作为一个时间窗来采集用于判别慢速攻击的数据[7]。网络攻击首先需要建立起网络间的连接,因此在采集网络数据时主要关注网络间与连接特征相关的信息。举例来说,在TCP(Transmission Control Protocol)连接的基本特征中可以提取连接的持续时间、网络协议的类型、目标主机的网络服务类型、从源主机到目标主机的数据字节数等;在TCP连接的内容特征中可以记录登录失败后尝试再次登录的次数、访问敏感文件和目录的次数、是否出现超级管理员命令等;以时间窗为特征的记录一些比如过去2s内与当前连接具有相同服务的连接数、过去2s与当前连接有相同的服务的连接中,出现“REJ”错误的连接百分比等一些特征信息。

1.2 卷积神经网络结构设计

卷积神经网络和传统神经网络一样使用的是多层结构,一般由输入层、输出层、卷积层和全连接层等交替组合[8-10]。每一层有多个神经元组成,每一个神经元表示一张图中的一个特征。随着卷积神经网络层数增加伴随来的是训练参数的增加,而卷积层的权值共享策略极大地缓解了参数爆炸。假设输入是{x1,x2,…,x9},激活函数为f(x),输出y为:

1.2.2 卷积层

模型的卷积层中卷积核的大小表示为k_width×k_height×k_channels,其中k_width、k_height分别表示卷积核的宽度和高度; k_channels表示卷积核的通道数;该卷积层中设置的卷积核为3×3×1,步长(stride)为1,填充(padding)为1,共有32个卷积核,步长指卷积核每次移动的距离,当图像像素不满足卷积核的卷积时需要在图像周围人工添加适当的0像素使得卷积可以进行下去,填充的数目为在图像四周添加的0值像素的行列数。设输入数据的大小为w1×h1×d1,输出的特征图大小为w2×h2×d2,根据输入数据的大小、输出特征图的大小和卷积核的大小可以推导出输出特征图大小的计算公式(2):

经过卷积层后,每张6×6×1的输入图像生成6×6×32的特征图。式(1)中每一个卷积核运算后都要通过一个激活函数f(x)输出。

卷积运算本质上是一个线性运算而激活函数是非线性函数,将卷积结果输入到非线性函数中后增加了非线性因素。使得神经网络的泛化能力更好。现在经常使用的激活函数有多种,如Sigmoid函数、线性整流函数(Rectified Linear Unit,ReLU)、双曲正切(Tanh)、ELU(Exponential Linear Unit)激活函数等,本文选取的是Sigmoid函数。

Sigmoid函数在中间部分变化敏感,在两端出现抑制对分类比较有利,本文应用在实际网络数据流环境下,利用Sigmoid一方面可以在网络发生异常后能够有效地捕捉流量数据发生的细微变化,另一方面能够将输出数据压缩到固定范围中,使在卷积神经网络的层与层传递过程中不易发散[11]。卷积层的数据流图如图4所示。

1.2.3 全连接层

全连接层是将前一层输出的神经元与当前层的神经元全部连接在一起。在此之前的卷积层使用3×3大小的卷积核对结果进行卷积操作,每一个卷积核运算后都会产生一张特征图,且一种卷积核对应产生相应特点的特征图,全连接层的意义就是将前面从不同角度生成的网络流量特征综合到一起,将学习到的多个特征映射到样本标记空间中进行后续的分类应用。

本文卷积神经网络有两层全连接层。第一层与卷积层相连有1024个神经元,在算法模型中的数据流和内部细节的展示,如图5所示。卷积后的输出通过reshape重构后,将全连接层的权重(Full Connection Layer Weight, fc1_weights)与全连接层偏置项(Full Connection Layer Biases, fc1_biases)求和后的值输入Sigmoid中进行非线性作用,但每一次运算发生时并不是所有的权重都参与运算,在dropout[12]的作用下只有部分权重连接的神经元参与运算。得到的结果最终流入输出层。

1.2.4 dropout技术

在全连接层输出后,为防止模型发生过拟合的现象,在设计卷积神经网络结构时,加入了dropout操作。在用训练样本进行权重更新时,全连接层的所有神经元都会参与这个过程,这样每个神经元都记录样本的一些信息。这种过多记录特征信息的过程会增加过拟合发生的概率,如果每次權值更新时只有当前层的部分神经元起作用,这样权重的更新将不再依赖特定的更新过程,减少神经元间的相互影响,可以有效阻止特征被固定的网络模型学习记录。

本文使用简单的“乘零”算法。当进行一次图片训练时,将dropout所在的全连接层的神经元的激励函数的值按照40%的概率设置成0,这部分被设置成0的神经元在前后传播中都保持不变,可以被认为这部分神经元没有参与权重更新。特别需要注意的是,这部分激励函数的值被设置成0的神经元也不是固定的。每进行一组训练时,这部分都是按照概率随机指定的。同样在测试时需要将全连接层的所有神经元的激励值乘上40%,期望确保在测试时,一个单元的期望总输入与在训练时该单元的期望总输入大致是相同的。

1.2.5 输出层

输出层有23个神经元对应23类异常,这23个神经元负责接收Softmax函数分类器[13]的输出值。Softmax的输出值作为所属样本的概率值。

假设每次输入的数据为1000张,训练集可以表示成{(x(1),y(1)),(x(2),y(2)),…,(x(1000),y(1000))},其中xi表示输入卷积神经网络的数据;yi对应这个数据的真实类别标签。举例来说,网络数据流量异常可以分为Smurf攻击、pingsweep、portscan等多种,通过向量映射将每一种异常的文字表述映射为向量表示,这样可以直接参与卷积神经网络的数值运算中。这1000张特征图,每一张对应的Softmax输出可以表示为:

其中:Wi表示第二层的全连接层与输出层第i个神经元相连的权重参数,P(y(i)|x(i))表示当前输入特征所属第i类异常的概率,n表示异常的种类。

1.3 参数更新过程

卷积神经网络的前向传播过程与传统神经网络是相同的,不同点在于各层之间的连接方式。传统神经网络各层神经元间是全连接的,而卷积神经网络则是由卷积层、全连接层等组成。虽然层间的组合方式不同但是前向传播算法是相同的,都是在当前的权重参数下由输入层依次计算激活函数值作为下一层的输入一直到输出层。不同的地方在反向传播的参数更新过程中,传统的神经网络除输出层外,其他各层的参数更新方式一致,卷积神经网络仅仅在最后的输出层和全连接层与传统神经网络更新方法一致。卷积层参数更新的方法根据不同的连接方式采用不同的参数更新方法。

2 实验设计与结果分析

2.1 实验数据

本文所用数据是通过对辽宁电网采用网络流量深度包检测,将检测的数据包进行捕获,利用libcap(Packet Capture library)进行解析,经过预处理后的网络流量数据。数据集大小约为2.38GB,将该数据集分为训练数据集和测试数据集两部分,方便模型训练以及测试使用。

在数据集的每条数据中都记录攻击类型,其中攻击类型一共包括4个大类以及28个小类,其中12个小类出现在测试集中,这样可以检验模型的泛化能力,对该数据集各类型数据的统计情况如表2所示。

2.2 模型训练与测试

本文中在卷积神经网络模型设计中加入了dropout技术,其目的是为了提高模型的泛化能力,进而能够对模型的过拟合现象得到有效的改善。在实验环节,对不加入dropout技术与加入dropout技术两个模型进行对比,其对比结果如图7、图8 所示。在模型设计与测试时,将dropout设置成0.4,统计模型在最后的损失与准确率趋于稳定的结果,如表3所示。

[10] 常亮,邓小明,周明全,等.图像理解中的卷积神经网络[J].自动化学报,2016,42(9):1300-1312.(CHANG L, DENG X M, ZHOU M Q, et al. Convolution neural network in image comprehension [J]. Acta Automatica Sinica, 2016,42(9):1300-1312.)

[11] 张顺,龚怡宏,王进军.深度卷积神经网络的发展及其在计算机视觉领域的应用[J/OL].计算机学报,2017:1-29[2018-09-10].http://kns.cnki.net/kcms/detail/11.1826.TP.20170918.2025.006.html.(ZHANG S, GONG Y H, WANG J J. The depth of the convolution of the neural network development and its application in the field of computer vision [J/OL]. Chinese Journal of Computers, 2017:1-29 [2018-09-10]. http://kns.cnki.net/kcms/detail/11.1826.TP.20170918.2025.006.html.)

[12] COELLO C C A, BECERRA R L. Constrained optimization using an evolutionary programmingbased cultural algorithm[M]// Adaptive Computing in Design and Manufacture V.Berlin:Springer,2002:317-328.

[13] 李理,應三丛.基于FPGA的卷积神经网络Softmax层实现[J].现代计算机(专业版),2017(26):21-24.(LI L, Y S C. Softmax layer implementation of neural network based on FPGA[J]. Modern Computer: Professional Edition, 2017(26):21-24.)

[14] 吕国豪,罗四维,黄雅平,等.基于卷积神经网络的正则化方法[J].计算机研究与发展,2014,51(9):1891-1900.( LYU G H, LUO S W, HUANG Y P, et al. A novel regularization method based on convolution neural network [J]. Journal of Computer Research and Development, 2014,51(9):1891-1900.)

[15] 王功鹏,段萌,牛常勇.基于卷积神经网络的随机梯度下降算法[J].计算机工程与设计,2018,39(2):441-445.(WANG G P, DUAN M, NIU C Y. Stochastic gradient descent algorithm based on convolution neural network [J]. Computer Engineering and Design, 2008, 39(2):441-445.

猜你喜欢

卷积神经网络深度学习
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
基于卷积神经网络的树叶识别的算法的研究