张利隆,马 垚,陈永乐
(太原理工大学 信息与计算机学院,山西 太原 030024)
在工业化和信息化深度融合的趋势下,越来越多的工控网络与外界互联网相连。这些在提高设备生产效率的同时,也为工业控制系统(industrial control system,ICS)的信息安全带来了极大的威胁[1]。比如:2010年的“震网”病毒[2]对伊朗的核工业设施造成严重破坏;2016年的Mirai病毒事件[3]造成了美国大面积断网;2017年的“永恒之蓝”病毒[4]事件的影响涉及教育、金融、能源和医疗等众多行业。因此,提前发现入侵行为,并进行防御以阻止设备被攻击破坏是至关重要的。
入侵检测作为一种积极主动的安全防护技术,在不影响网络性能的情况下对网络进行监测。目前,入侵检测主要分为2类:误用检测和异常检测[5]。误用检测技术无法识别新的攻击行为。而异常检测技术是利用正常行为建立模型,对新的网络行为进行检测。该检测技术对操作系统的依赖性小,可以检测出新的入侵行为。而且工控系统多处于稳定运行的情况,正常数据量较大。因此,异常检测方法被广泛应用于工控入侵检测系统。由于工控系统多产生高维度、非线性特征的数据,普通的机器学习方法并不能检测出异常数据。
通过研究发现,高斯过程[6]与神经网络、支持向量机相比,该方法具有易实现、超参数自适应获取、非参数推断灵活以及输出具有概率意义等优点。因此,本文提出LE-CGWO-GP异常检测方法。应用密西西比州立大学关键基础设施保护中心提供的已进行数值化处理的工控数据集进行仿真实验,结果显示本文提出的算法模型具有较高的检测准确率以及较低的漏报率与误报率。
实验采用密西西比州立大学关键基础设施保护中心提出的用于工控入侵检测的天然气管道控制系统数据集[7]。该数据集是通过模拟攻击基于Modbus/TCP协议通信的工控系统所采集的。
Modbus/TCP是Modbus系列通信协议的派生协议,在TCP/IP上进行Modbus报文传输,协议的用途是为PLC模块、I/O模块提供通信服务,广泛应用于工控领域。Modbus/TCP采用典型的主从通信结构[8]。每次通信都是客户端先发送指令,可以是广播,或是向特定服务端的单播,服务端响应指令,并按要求应答,或者报告异常。当客户端不发送请求时,服务端不会发出数据,服务端和服务端之间不能直接通信。Modbus/TCP报文格式如图1所示,其由MBAP(Modbus application protocol)报文头、功能码和数据组成[9]。其中,事务处理标识表示请求/响应事务处理识别码,一般每次通信之后就要加以区别不同的通信数据报文。协议标识符为0x0000表示Modbus/TCP协议。长度表示接下来的数据长度,单位为字节。单元标识符表示设备地址,串行链路或其它总线上连接的远程从站的识别码。功能码是客户端向服务端指示进行何种操作的标志字段,主要分为有效功能码、异常功能码和错误功能码。数据部分由客户机根据具体的应用和功能码的不同进行设置并由服务端进行相应的回答。
Modbus/TCP协议由于其本身具有开放性、简单性和易用性的优点,被广泛应用于工控设备,并且成为了行业内的标准协议。但是,Modbus/TCP协议也存在一些问题,首先,其本身存在缺乏认证、授权、加密等安全防护机制和功能码滥用问题[10]。其次,该协议是基于TCP协议的扩展,因此,TCP协议存在的安全协议问题也会影响Modbus/TCP协议,比如DDoS攻击、IP欺骗等。最后,在实现具体的工控系统时,开发者并不具备安全开发知识,会造成缓冲区溢出、非法操作等问题。因此,需要建立一套完整的针对Modbus/TCP通信的专用异常行为检测机制。而数据预处理是检测准确性的重要前提,其主要包括两个部分:特征选择和特征提取[11]。
图1 Modbus/TCP报文格式
工控系统数据有维度高、冗余数据多的特点。因此,在对特征属性进行选择时,需要先进行数据的清理。刘珍等[12]对流量特征进行了研究,分析了每种特征的适用环境。在进行特征选择的过程中,选取的特征越多,对于数据包的覆盖也就越全面。然而特征过多会造成工控入侵检测算法计算缓慢。因此,选取合适的特征是提高算法性能的前提条件。选出来的特征尽可能遵循特征之间关联性小并且可以描述网络特征的要求,对原始数据进行简化。为了达到精确区分流量特征的目的。通过分析,我们把流量的特征分为3类:基于时间序列、数据包头、数据内容。按照类别选出具有代表性的特征值,如表1所示,部分常见的用来描述工控网络行为的特征。
表1 工控系统流量特征值
工控系统数据特征经过选择后依然是高维数据集,在高维数据情形下会出现数据样本稀疏,距离计算困难的问题。因此,需要对其进行降维。数据降维的方法主要包括两类:线性降维和非线性降维。主成分分析(principal component analysis,PCA)是最常用的线性降维算法,在数据压缩、消除冗余等领域有着广泛的使用。然而,PCA只能处理线性数据的降维,并且它仅是筛选方差最大的特征,去除特征之间的线性相关性,对于线性不可分的数据降维效果差。而拉普拉斯特征映射[13](Laplacian Eigenmaps,LE)是一种非线性的降维方法,利用微分几何中的Laplacian-Beltrami算子获得相应的空间嵌入函数表示,以完成高维数据到低维空间的投影。该算法核心思想是在原高维数据空间中非常接近的点映射到低维空间中后也非常接近。相比于流形学习的其它几种典型算法,LE含有更多的结构信息,更能发现数据内在规律,尤其对于不均匀的数据也能找出其中在低维的流形结构,具有良好的鲁棒性。根据工控系统数据的特点,本文在特征选择的基础上,采用拉普拉斯特征映射算法对数据特征进行提取实现数据的降维。其原理如下:
首先是构建加权无向图G:给定数据集X={x1,x2,…,xn},一般采用k近邻方法或ε邻域方法构造无向图G。k近邻方法得到的图具有对称、连通、样本近邻分布均匀等优点。而利用ε邻域方法时会造成数据集密集区域的样本近邻多,数据集稀疏区域的样本近邻少。因此,本文采用k近邻方法构造无向图,令Nk(xi)表示样本xi的k近邻集,如式(1)所示
(1)
式中:dk(xi)表示xi的第k距离。
其次是确定边的权重w:对于权重的确定通常也有两种方法,一是采用热核函数法。二是采用0-1权值方法。鉴于第二种方法可以减少参数的选择,本文选择了后者。0-1权值方法如式(2)所示
(2)
最后是计算样本点的低维嵌入坐标:首先计算拉普拉斯矩阵的特征值及特征向量,设高维数据X的低维嵌入映射为Y={y1,y2,…,yn},LE的目标是使得构造过程中损失函数最小,如式(3)所示
(3)
损失函数最小保证了高维中的邻近数据点在低维中也邻近。对拉普拉斯无向图进行广义特征值分解,如果高维数据集降至m维空间,则降维后的映射结果Y由最小的m个非零特征值对应的向量组成,则任一样本xi∈X对应的低维坐标可以表示为yi={y1,y2,…,ym}。
灰狼优化算法(GWO)[14]是一种群体智能寻优算法,具有很少的参数,并且在初始搜索中不需要派生信息。该算法以29个著名的测试函数为基准,并通过与其它优化算法进行对比显示GWO算法能够提供非常有竞争力的结果。GWO算法具有全局搜索能力强、收敛速度快而且参数少易实现的特点,此外,它简单、易用、灵活、可扩展,并且具有在搜索过程中在探索与开发之间达到适当平衡的特殊功能,从而带来了良好的融合。因此,被广泛应用于车间调度、参数优化等领域。
GWO算法借鉴了灰狼种群的捕食机制和等级制度。灰狼属于群居性动物,一般种群数量为5只至12只。严格的等级制度使得灰狼个体有着明确的分工。如图2所示狼群的结构。
图2 狼群等级结构
金字塔的第一层是头狼,称为α,负责领导整个群体,对捕猎行为、栖息地等具有决定权。第二层称为β,协助头狼做出决策,是头狼最好的接替者。第三层称为δ,负责放哨、侦察等任务;最后一层为ω,主要负责种群内部的平衡。传统划分层次的方法直接使用准确率作为适应度值进行划分,并没有考虑选择特征的数量。本文通过研究,采用适应度函数作为层次划分标准,如式(4)所示
(4)
式中:F为灰狼的适应度值,Acc为分类准确率,n为特征总数,λ为权重,通常取0.01。
GWO算法数学模型模拟灰狼群的狩猎行为,假设灰狼种群规模为n,定义种群为X={X1,X2,…,Xn},整个狼群被分为4组:α、β、δ、ω。α是适应度最优的灰狼,β是次优的灰狼,δ是第三优的灰狼,剩余的是ω,前三组指导最后一组向目标搜索。最后一组围绕前三组更新位置。
在狩猎过程中首先需要对猎物进行包围,则灰狼与猎物之间的距离如式(5)所示
Dp=μ·Xp(t)-X(t)
(5)
式中:t为迭代次数,Xp(t)为第t代猎物的位置(全局最优解),X(t)为第t代灰狼个体的位置,常数μ为摆动因子,如式(6)所示
μ=2·r1,r1∈(0,1)
(6)
式中:r1为随机变量。
根据式(7)更新灰狼个体的位置
X(t+1)=Xp(t)-A·D
(7)
式中:A为收敛因子,如式(8)所示
A=2·b·r2-b,r2∈(0,1)
(8)
式中:r2为随机变量,b为随迭代次数增加值从2线性降到0。
当灰狼包围猎物后,α带领β和δ指导狼群追捕猎物。由于对猎物的位置(最优解)并不清楚,因此,模拟灰狼的狩猎行为,利用α、β和δ三者的位置不断逼近猎物的位置。α、β和δ位置的更新公式如下
(9)
(10)
(11)
其中,Dα、Dβ、Dδ分别表示α、β、δ狼与其它狼群个体间的距离,Xp(t+1)表示猎物的位置(最优解)。
尽管灰狼优化算法的性能优于其它算法,但也存在着后期易陷入局部最优的问题。因此,许多学者也提出了改进的方法。比如近年来,采用柯西算子改进的鲸鱼优化算法[15]和果蝇算法[16]性能明显提高,因此,本文也采用柯西变异算子以提高灰狼算法的全局搜索能力,加大寻优范围。
柯西分布是一个数学期望不存在的连续分布函数。具有原点处概率密度大、分布紧凑,而两端密度小、分布较长的特点。标准柯西分布的概率密度函数如式(12)所示
(12)
标准柯西分布从峰值向两侧下降相对比较平缓,有很长的尾巴,灰狼优化算法将会有更广的变异范围,较容易跳出局部最优;而且柯西分布的峰值相对较小,这将会减少相邻区间的搜索,提高灰狼算法在搜索全局最优值上的性能。在原有灰狼个体的状态上引入服从柯西分布的随机向量,其更新如式(13)所示
x′=x+η·Cauchy(0,1)
(13)
式中:x′为初始位置x的更新位置;Cauchy(0,1)是t为1时的标准柯西随机分布;参数η是各维变异权重的平均值。
基于柯西变异的灰狼优化算法的步骤为:
步骤1执行原基本灰狼优化算法;
步骤2进入循环迭代后,当灰狼群体中相邻5次迭代的没有差别的最优值都作为历史最优值被记录下来时,我们认为算法停滞,则进行柯西变异;
步骤3变异操作:先将最优灰狼个体的个数复制到原先种群规模,然后进行柯西变异,更新群体的位置,进行二次寻优,如式(14)所示
(14)
式中:x0,y0表示个体的初始位置;x′0,y′0表示添加柯西扰动后的位置。
高斯过程是一种非参数非线性的贝叶斯预测模型,适用于处理具有高维度、小样本、非线性特征的数据集。而且该模型无需指定输入数据集的大小和参数数量,对输入数据集具有良好的适应性。
高斯过程是将多元高斯分布扩展为无限数量的随机变量。它可以看作是随机函数的分布,具体高斯过程如图3所示。
图3 高斯过程
其中,X=[x1,x2,…,xn]T为训练数据的输入变量,而Y=[y1,y2,…,yn]T为训练数据的输出变量,f(x)服从高斯分布,为了方便计算,通常会对数据进行预处理,使其均值为零,则高斯先验分布的输出观测值如式(15)所示
(15)
协方差函数是决定高斯过程先验形状和后验形状的关键组成部分。通常采用平方指数协方差函数[17],其公式如式(16)所示
(16)
图4 CGWO-GP模型
密西西比州立大学收集的天然气管道控制系统数据集[7]包含1类正常数据和7类不同的攻击数据。数据描述以及训练集和测试集分布见表2。
由于从工控系统网络提取的样本数据及其特征值为不同的度量单位,需要对数据进行归一化处理以消除特征之间的差异,实验中采用Minmax方法,如式(17)所示
(17)
式中:xmin和xmax分别表示样本数据最小值和最大值。将数据映射到[0,1]之间。
为避免数据分布不均匀,本文均匀选择5000个数据样本作为训练集,选择2400个数据作为测试集,并且按照测试集中攻击类型的不同进行5组测试,对训练模型进行评价。
对于检测模型性能的衡量,通常采用3个指标:准确率(Acc)、漏报率(FNR)、误报率(FPR),而对于特征降维的评价方式采用F1值(F1-score)进行评价。公式如下
(18)
(19)
(20)
其中,TP、TN、FP、FN分别表示正确分类的正常样本、正确分类的异常样本、错误分类的正常样本、错误分类的异常样本。
天然气管道数据集的每条记录包含26个流量特征。由于特征维数过高,本文进行数据降维。如图5所示为LE、KPCA、PCA方法的降维结果。本文选取测试集1作为测试用例。如图所示,随着特征维度的增加,使用LE降维方法的效果最优,其F1值为96.35%,而且所需要的特征量最少,为9个。因此本文采用降维效果更好的LE降维方法对工控数据进行降维处理。
设灰狼种群规模为30,最大迭代次数为200。如图6所示是适应度值随迭代次数的变化情况。迭代到第49次达到最佳适应度,其值为94.9%。而且最佳适应度值17代、第35代均有提高,说明该算法可以有效避免狼群陷入局部最优,具有跳出局部最优的能力。
如图7显示了测试集1数据的真实攻击类别与预测类别的对比,其准确率达到98.75%。通过分析,由于同类型 攻击数据相似性比较大,预测类别错误的部分多发生于同类型攻击之间。比如:标签1、2同属于响应注入攻击,标签3、4、5、7同属于命令注入攻击,标签6属于拒绝服务攻击。
表2 数据描述及训练集测试集数量
图5 特征降维结果对比
图6 CGWO-GP算法收敛曲线
图7 测试集1分类结果
为了验证本文提出的CGWO-GP算法在运行时间上的优势,与未经过优化的GP算法以及最新提出的方法进行了对比,比如MIKPSO-SVM[19]、ALO-SVM[20]。MIKPSO-SVM算法是陈冬青等融合了多信息理论,着眼于KPSO算法对粒子位置信息进行预测时仅使用单个信息的局限性,提出了改进的MIKPSO算法,提升了算法的优化精度和全局优化性能。ALO-SVM算法是陈卓等提出一种在PCA降维的基础上,基于蚁狮优化算法(the ant lion optimizer,ALO)和支持向量机(support vector machine,SVM)相结合的入侵检测方法,该算法的检测速度有显著提高。如图8所示,训练集从200个数据量开始,依次递增200,最终达到5000。当训练集达到5000时,CGWO-GP算法的运行时间为55.32 s,与GP算法时间接近,明显优于MIKPSO-SVM和ALO-SVM。
图8 训练时间对比
实验采用了5组测试集进行测试,直观比较了所提出的CGWO算法与其它检测算法的检测能力。在图9中,方框表示四分位间距(inter quartile range,IQR),方框中的条形表示准确率、漏报率和误报率中值,小菱形点表示数据中的异常点。如图9所示,CGWO算法的准确率明显高于其它算法,其准确率的均值为98.96%。而且漏报率和误报率均低于其它算法,其漏报率均值0.44%,误报率均值为0.13%。
本文提出了一种基于LE方法降维和CGWO-GP的工业控制系统入侵检测模型,应用密西西比州立大学提供的标准数据集进行验证。针对工控数据冗余多、高维度和非线性的特点,采用LE方法处理数据,将原始工控数据集的26个属性约简为9个,并通过实验验证LE方法相比于PCA和KPCA具有更好的属性约简效果;在此基础上,为了提高GP算法的检测准确度,运用融合柯西变异的灰狼优化算法(CGWO)对GP进行优化。通过设计对比实验对各类检测模型进行对比,充分说明了LE-CGWO-GP模型具有运行速度快、检测准确率高、漏报率和误报率低的优势。接下来的工作是进一步优化分类方法,实现同类型攻击的细粒度识别。
图9 不同检测方法的检测性能