APP下载

基于特征优化与SVPSO的工控入侵检测

2020-04-20陈红卫

计算机工程 2020年4期
关键词:工控分值粒子

张 瑞,陈红卫

(江苏科技大学 电子信息学院,江苏 镇江 212003)

0 概述

工业控制系统(Industrial Control System,ICS)是国家基础设施的重要组成部分,其被广泛应用于电力、水利、交通运输等工业领域,主要用于数据采集和生产控制[1]。随着网络的普及,以太网、无线网等技术在工业控制系统中的应用逐渐普遍,这拓展了工业控制系统的发展空间[2],但同时也带来信息安全问题。

近年来,构建工控网络安全防护体系并检测系统面临的入侵威胁,成为国内外学者的重要研究方向。入侵检测[3]作为一种主动的防护技术,通过对系统的网络层数据进行分析以检测出非法的操作,其本质是模式识别中的分类问题。支持向量机(Support Vector Machine,SVM)可用于解决模式识别领域中的数据分类问题[4],许多学者将其应用在工控入侵检测系统中。在建立入侵检测模型时,支持向量机的参数选择对其分类性能影响很大。文献[5]设计的基于神经网络建模的工控入侵检测系统,能够捕获工控网络中的入侵行为,且不会产生任何错误警报。文献[6]针对工控网络的非法检测命令和非法响应注入开发的基于神经网络的入侵检测系统,具有较高的检测精度。文献[7]通过搭建工控网络仿真环境获取Modbus功能码序列,将Modbus TCP通信流量转换为异常检测模型所需的数据形式,设计了一种基于粒子群算法参数寻优的PSO-SVM算法,实验证明该算法可以有效实现对Modbus功能码序列的异常检测。Kalman粒子群算法在优化基于支持向量机的工业控制系统入侵检测模型时,存在参数易陷入局部最优的问题,文献[8]对此提出一种改进的多信息Kalman粒子群算法。文献[9]采用单类支持向量机(One-Class Support Vector Machine,OCSVM)为DNS、FTP、MDNS、MODBUS、TCP、UDP等协议建立流量模型,用于检测中间人攻击、同步洪泛等入侵行为。

工业控制系统中的网络数据具有非线性和高维性,非线性的数据分类是模式识别领域的一个重要问题,而高维数据往往具有相关性和冗余的特征,这使得入侵检测消耗大量的资源并且影响支持向量机的正确分类。此外,面向工业控制系统的网络攻击种类繁多并存在不确定性,这也使支持向量机的参数难以整定。针对上述问题,本文将Fisher分值与核主成分分析法(Kernel Principle Component Analysis,KPCA)作为特征选择和处理的主要方法,并设计基于自适应变异的粒子群优化算法(Particle Swarm Optimization based on Self-adaptive Mutation,SVPSO)优化支持向量机的参数。

1 数据特征选择与提取

面对高维工控网络数据,并非所有的数据特征都有用,通常存在大量不相关的特征和冗余特征,这些特征会增加入侵检测算法的时间复杂度和空间复杂度,增加算法的计算时间和占用的内存,应用Fisher分值可以有效消除这些特征,节省计算资源。针对工控网络数据的非线性,非线性数据的降维是标准PCA算法难以解决的一个问题。PCA算法对非线性数据的作用不明显,反而可能使数据糅杂在一起更难以区分,因此,引入核方法将非线性数据映射到高维空间,在高维空间下使用标准PCA方法将其映射到另一低维空间,可以达到特征提取的目的。

1.1 Fisher分值

Fisher分值[10]是一种有效的特征选择准则,可以用来剔除数据中的噪声特征和降低特征空间维数,其主要方法是根据Fisher准则[11]来计算所有特征的类内距离与类间距离的比值,Fisher分值越大,表明特征对于分类的贡献度越大,因此,应选择类内距离和类间距离尽可能大的特征建立新的数据子集。

(1)

(2)

F表示各特征的Fisher分值,可表示为:

F=Sb/Sw

(3)

则第k个特征的Fisher分值为:

(4)

1.2 核主成分分析法

主成分分析法(PCA)[12]是一种线性主元分析法,是针对线性数据的算法,其将数据集标准化归一化处理为X={xi,x2,…,xN},然后计算数据矩阵的样本均值和协方差矩阵:

(5)

(6)

利用特征值分解求协方差矩阵S的n个特征值λ1,λ2,…,λn以及对应特征向量θ1,θ2,…,θn,通过累计贡献率选择主成分分量对应的特征值,将其对应的特征向量构成映射矩阵C,令X′=X·C,即得到新的样本数据集。

在实际应用中,数据往往是非线性的,而PCA算法对于非线性数据的效果较差。KPCA算法[13-14]是对PCA算法的非线性拓展,其通过引入非线性映射函数Φ(xi)将低维空间中的数据xi映射到高维空间产生新的数据zi,在高维空间中利用PCA进行数据降维,则此时新的样本均值和协方差矩阵转变为:

(7)

(8)

XTXv=λv

(9)

其中,λ和v分别为协方差矩阵S的特征值和对应的特征向量。

引入核函数Ki,j=K(xi,xj)=φ(xi)φ(xj),则核矩阵为:

(10)

求核矩阵K的特征值与特征向量:

(XXT)u=λu

(11)

对式(11)左右两边同时左乘一个XT,则有:

XTX(XTu)=λ(XTu)

(12)

此时可以发现矩阵K和S的特征值是相同的,矩阵S的特征向量为v=XTu,λ和u都可以由核矩阵K求出,得到x在v上的投影。

(13)

为使核矩阵K更为聚集,令:

K′=K-LK-KL+LKL

(14)

2 SVM与PSO算法

2.1 支持向量机

支持向量机(SVM)[15-16]是建立在统计学理论基础上的一种有监督学习的数据分类算法,基本原理是利用核函数实现数据从低维空间到高维空间的映射,在高维空间内构造一个最优分类超平面,将其转化为在原空间的二次回归问题,目标函数及约束为:

s.t.y(i)(wTΦ(x(i))+b)≥1-ζi,i=1,2,…,m

ζi≥0,i=1,2,…,m

(15)

其中,C为惩罚常数,ε为松弛变量,引入Lagrange乘子将其转化为对偶形式:

(16)

其中,k(xi,xj)为核函数,αi为Lagrange乘子。最终可得到决策函数:

(17)

SVM算法最初应用于二分类问题,在处理多分类问题时,主要通过组合多个二分类器构造多分类器。本文采用一对多法,训练时将某个类别的样本归为一类,剩余样本归为另一类,k个类别的样本就需要构造出k个SVM分类器。得出k个分类函数值f1(x),f2(x),…,fk(x),在进行分类时将未知样本分为最大分类函数值的一类。

2.2 标准粒子群优化算法

支持向量机的分类能力主要取决于惩罚常数C与核函数参数σ的取值[17],目前最常用的方法就是对C和σ在规定的范围内取值,将训练样本均分为多个部分验证C与σ当前取值下的训练集分类正确率,最终选择得到最高分类正确率的一组C和σ作为最优参数。粒子群优化算法[18]是一种基于种群的智能优化算法,可以在规定的空间内用来搜索模型最优参数,每个粒子在搜寻空间中初始化自己的位置和速度,此时的位置是C和σ的取值,在粒子群迭代过程中,每个粒子根据个体最优位置pbest和群体最优位置gbest,并以一定速度不断更新自己的速度和位置。标准粒子群优化算法的数学表达式如下:

(18)

其中,ω是位置权重,C1、C2是加速因子,R1、R2是在[0,1]区间上均匀分布的随机数,pbest是个体最优位置,gbest是群体最优位置。

3 基于SVPSO的入侵检测

3.1 基于自适应变异的粒子群优化算法

PSO算法的搜索速度较快,但也存在容易收敛和后期搜索能力下降等问题。文献[19]通过引入惯性权重ω,提出了惯性权重线性递减的粒子群优化算法,ω计算公式如下:

(19)

其中,t为当前迭代次数,tmax为粒子群最大迭代次数。研究表明:较大的ω适用于进行大范围的搜索,有利于跳出前期的局部最优位置,求解全局最优位置;较小的ω适用于小范围的的挖掘,有利于搜索局部最优位置,提高收敛精度。

惯性权重可以调节PSO算法的全局和局部寻优能力,权重的线性递减使得粒子群迭代慢慢收敛至极值点,但是这种调节方式过于单一,容易使函数陷入局部最优。当某个粒子发现了一个当前最优位置时,其他粒子也立刻聚拢到这个位置的周围进行搜索,如果这个位置是局部最优位置,粒子群就无法再次分散到空间其他位置进行搜索,也会陷入局部最优位置,除非粒子在聚拢过程中能找到更好的位置才可以改变这一情况,然而这种几率并不大。本文提出基于自适应变异的PSO算法SVPSO,通过引入遗传算法的变异操作,在PSO算法的基础上加入变异算子,在每次迭代后,粒子再以一定概率随机初始化位置,其自适应算子公式为:

ppop(j,k)=ppopmax×rrand,rrand>c

(20)

其中,ppopmax为粒子种群最大位置,c为小于1的正常数,k为离散的随机常数,当粒子的更新速度在规定的变异范围内时,粒子的位置会随机初始化,可以解决粒子群在搜索后期易陷入局部最优位置的问题。

3.2 基于SVPSO的SVM参数优化

采用SVPSO算法进行SVM的参数优化,其实现步骤如下:

1)读入经过预处理的样本数据。初始化SVPSO算法的参数:粒子个数为N,随机生成粒子的最初位置X=(x1,x2,…,xN)和速度V=(v1,v2,…,vN),i=1,2,…,N,建立最初的SVM入侵检测模型,将粒子的全体最优位置作为惩罚常数C和核函数参数,xi=(xi1,xi2),νi=(νi1,νi2),设定这两个寻优参数范围是[xmin,xmax]和[νmin,νmax],各粒子初始位置设置为初始个体最优位置pbest和全体最优位置gbest,设计粒子的变异规则,设定惯性权重w的递减规则,设置粒子群最大迭代次数tmax。

2)计算粒子群适应度f(i)。在本文中粒子对应的适应度是经过交叉验证得出的SVM正确分类率。

4)根据群体极值更新每个粒子的速度xi和位置vi,判断每个粒子的适应度是否满足分类正确率要求,或者算法是否达到最大迭代次数,否则返回上一步继续进行迭代。

5)通过对比每次迭代的群体极值选择最优参数,将其代入SVM求取决策函数f(x),建立SVM分类模型。

3.3 SVPSO算法流程

本文设计的基于特征优化的工控入侵检测算法SVPSO,其算法流程如图1所示。

图1 SVPSO算法检测流程Fig.1 Detection procedure of SVPSO algorithm

本文算法主要由数据集的特征优化、自适应变异粒子群参数优化、SVM模型训练和SVM模型交叉验证部分组成。系统流程分为4个阶段:

1)数据预处理阶段。采集的工控网络数据经过Fisher分值进行特征选择和KPCA进行特征提取,建立新的数据集。

2)支持向量机模型建立阶段。根据预处理后的数据集,建立一对多的多分类SVM模型,并确立交叉验证的规则。

3)支持向量机参数寻优阶段。通过初始粒子群位置建立初始SVM模型,以训练集数据采用交叉验证方式验证模型精度,返回模型精度作为粒子群的适应度,采用自适应变异的思想更新粒子群的速度和位置,从而寻找最优参数,建立最优SVM检测模型。

4)测试集验证阶段。经过训练后的多分类SVM分类器对同样经过预处理的测试数据集进行检测,得出测试集分类正确率。

4 仿真验证与分析

4.1 数据集

本文采用密西西比州立大学关键基础设施保护中心于2014年提出的用于工控入侵检测的天然气管道控制系统数据集[20],该数据集通过在天然气管道控制系统注入攻击,同时捕获通信数据得到。数据集中除了正常行为数据,还包括了3类攻击行为数据,即指令注入攻击、拒绝服务攻击和响应注入攻击。数据集中每条数据的存储格式为X=(x1,x2,…,xn,y),每条数据有26个基本特征和1个标签值,本文所选取的攻击类型和标签值如表1所示。

表1 数据类型及标签值Table 1 Data types and label values

为保证各类数据分布均匀,本文从原数据集中随机抽取2 000组数据进行实验,对于消除各特征数值分布不同的问题,采用归一化的方法将数据映射在[0,1]上。

4.2 特征选择与处理

选取1 200组数据构成训练集,剩余400组作为测试集。数据集中各特征的Fisher分值如图2所示。

图2 各特征的Fisher分值结果Fig.2 Fisher score for each feature

本文计算每个特征的Fisher分值并按降序排列。依次选取特征建立模型,进而计算分类正确率,如图3所示。可以看出,依次添加Fisher分值排序后的前12个特征建立的模型分类正确分类率是逐渐上升的,后续特征的影响可以忽略不计,因此,本文选取以Fisher分值排序后的前12个特征组成新的数据集。

图3 特征集分类正确率Fig.3 Classification accuracy for feature set

经Fisher分值选择特征形成新的数据集,采用KPCA算法对数据集进行处理,将原12维非线性特征映射到高维空间中,按照降序选择贡献率超过80%的特征值对应的特征向量作为高维空间中的坐标轴,将数据映射在这些轴上最终得到5维的数据集作为SVM的输入。

4.3 仿真结果对比

将本文算法在MATLAB上进行实现,SVPSO算法参数设置为:种群大小为30,最大迭代次数为300,粒子群的维数设置为2,c1=c2=1.5,ωstart=1.2,ωend=0.4。对于变异算子,本文设定当0.5

图4 标准PSO算法适应度曲线与测试集分类结果Fig.4 Fitness curve and test set classification results ofstandard PSO algorithm

图5 SVPSO算法适应度曲线与测试集分类结果Fig.5 Fitness curve and test set classification results ofSVPSO algorithm

4.4 入侵检测模型性能对比

4.4.1 总体检测效果对比

为进一步研究分析,本文分别采用BP神经网络(BPANN)、高斯型朴素贝叶斯、K邻近和随机森林算法建立入侵检测模型,得到的混淆矩阵如图6所示。

图6 分类混淆矩阵Fig.6 Classification confusion matrix

通过混淆矩阵可以清楚地看出每种分类的结果分布,但不能判断分类精度的高低,因此,进一步计算入侵检测模型的总体检测精度、误报率和Kappa系数,对比结果如表2所示。

表2 5种算法的检测性能评价Table 2 Evaluation of detection performance of five algorithms %

由表2可以看出,本文算法建立的入侵检测模型的检测精度最高,其误报率与其他算法相比显著降低,而Kappa系数是一种计算分类精度的方法,Kappa系数越高,表示分类器的性能越好,本文算法的该项指标也最高。

4.4.2 各类攻击行为检测效果对比

本文采用的数据集共有8类数据(包含正常行为数据),采用各类算法对每种攻击行为检测,检测效果如图7所示。

图7 针对不同攻击类型的检测效果Fig.7 Detection effects of different attack types

从图7可以看出,本文SVPSO算法所建立的模型与其他算法建立的模型相比,对各类攻击具有较高的检测精度,其他算法建立的模型对复杂恶意响应注入、恶意状态命令注入、非法状态命令注入,尤其拒绝服务恶意操作命令注入的检测率较低,本文算法模型对拒绝服务攻击的检测率也在95%以上。

5 结束语

针对工控网络数据高维性和非线性的特点,本文提出基于自适应变异的PSO算法SVPSO。采用Fisher分值和KPCA方法进行数据特征选择、非线性变换和特征降维,达到去除冗余的特征、数据线性化和数据降维的目的。在此基础上,建立基于SVPSO的工控入侵检测模型,将遗传算法的变异思想引入到PSO算法中,对SVM的模型参数进行寻优。仿真结果表明,相比于BPANN、随机森林、朴素贝叶斯等算法构建的模型,该模型在各攻击类型的检测上均具较高的准确率。下一步将采用深度学习的方法优化数据特征,挖掘其中有效信息,同时提高分类精度。

猜你喜欢

工控分值粒子
一起来看看交通违法记分分值有什么变化
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
芍梅化阴汤对干燥综合征患者生活质量的影响
基于膜计算粒子群优化的FastSLAM算法改进
Conduit necrosis following esophagectomy:An up-to-date literature review
按病种(病组)分值结算:现状、做法和评价
基于粒子群优化极点配置的空燃比输出反馈控制
工控速派 一个工控技术服务的江湖
工控速浱 一个工控技术服务的江湖
热点追踪 工控安全低调而不失重要