渠东雨,潘 峰,2
(1.太原科技大学电子信息工程学院,太原 030024;2.茅台学院酿酒工程自动化系,贵州 仁怀 564507)
步入21世纪以来,传统的工业系统正在信息化的新时代里不断地完善自身,工控信息化的趋势愈演愈烈。令人堪忧的是在二者的融合形势下,弊端也随之显现,安全事故层出不穷。一旦工控系统受到了侵害,会对工控系统产生一系列的影响,不仅仅会迫使生产停止,更有甚者会造成人员的伤亡[1]。
工控系统中的防火墙中一般使用的是白名单自学习规则库,通俗的讲,可以设置允许规则,只要流过的传输数据与规则库数据的规律特征相匹配,就能够保证数据的正常流动,否则将对其进行阻止[2]。这样就保障了资源的合法使用。由此可见,对于工业防火墙的白名单技术研究是很有必要的。
文献[3]中将支持向量机算法(SVM)中的c,g参数利用粒子群算法(PSO)对其进行优化,在一定程度上优化了算法功能,但仍在搜索能力方面有所欠缺。文献[4]利用则是将支持向量机的相关核参数利用改进的遗传算法进行寻优,虽然分类效果较为良好,但仍存在算法过早收敛的不足。针对单一使用PSO或者GA结合优化SVM所存在的问题,文中提出了基于遗传差分进化算法(GA-DE)的智能算法来优化支持向量机的算法,提升了工业防火墙白名单的分类学习效果。
存在于工控网络信息系统的安全隐患日渐明显,工业防火墙应用而生。相较于传统的防火墙,工业防火墙除了安全功能之外,还内置了部分模块,实现了针对工控协议的解析与过滤。同时可以提取其数据包特征集,以智能算法优化的支持向量机通过白名单技术,对错误异常指令进行阻止以及对非工控协议进行拦截,实现了防火墙的功能,对于工控系统起到了保护的作用。其系统结构如图 1 所示。
工业防火墙主要有三个功能模块构成:数据包的采集与控制、访问控制和过滤报警模块,而文中主要涉及对于工控数据的分析,以及对于异常数据的阻拦则是隶属于访问控制模块。
应用与工业防火墙的访问控制模块,是工控网络安全的重要一环。
(1)正常运行的工控数据通过访问控制模块时,应用白名单技术不会对工控数据的完整性和安全性做出更改,确保系统运行数据是合法的数据。
(2)白名单规则库是由白名单算法分类并输出的正确运行数据构成。而工控防火墙在进行对于工控数据流的过滤就是利用规则库与运行时的数据包进行匹配,符合规则库中的部分特征时,可被判定为合法数据,并允许数据进行传输。不同的工控通讯协议的数据特征均可以加入白名单规则库[5]。
支持向量机是一种通过映射于高维空间从而正确分类样本数据的机器学习过程。
y(x)=ωTφ(x)+b
(1)
其中,将已获得数据映射到高维特征空间的映射函数是φ(x).支持向量机分类问题引入不可分代价目标函数为:
f(ω,ξ)=
(2)
式中:C为惩罚函数,表示对于错分样本的程度。
文中算法所涉及的函数是高斯核函数。该核函数是具有较强的局部搜索能力的核函数,该函数主要是对线性不可分的数据进行处理,通过相互映射,得到想要的数据。由于其具有较强的局部搜索能力,所以应用广泛,可以处理不同类型的样本数据,与多项式核函数相比,它的优点是参数变量较少,计算速度快[6]。其计算公式为:
(3)
为使目标函数最小化,由公式可以看出,当C值很大时,只能使ξ(i)趋近于0,说明样本的错分率此刻比较小,拟合度较好;当C值很小时,就会使处在边界之间的样本数据增多,错分样本数据变多,拟合效果不好。所以C值只有适中时,拟合效果才可能达到最好。
核参数gamma对SVM算法的分类性能的影响也是极大的。由RBF公式可得,核参数的公式为:
(4)
核参数最终会影响到支持向量机所作用的数据的分类范围,从而影响其泛化能力。参数g过大,会导致过度拟合,而值越小,会导致拟合缺陷[7]。
遗传算法是基于生物遗传学说,将实质性存在的生物工程模型进行抽象化,形成了一种全局寻优搜索的智能算法。
类似于生物遗传,在算法的计算流程中,通过选择、变异、交叉等操作。个体在选择变异中不断进化,最终最适宜的个体,即为问题的最优解[8]。在实验仿真中,可以通过适应度曲线观察进化的效果,在算法的最后得到的结果适应度最优。
差分进化算法同样是由生物学的基础理论提炼升华而来,与遗传算法不同的是,对种群个体的编码。对于DE的重点简而言之,就是随机的从父代形成差分矢量,再抽取随即个体与之求和形成新的实验个体[9]。最后在种群个体之中进行选择,保存合适个体,继续进行遗传过程。
差分进化的关键一环是种群的变异,主要是个体之间的变异是通过差分策略完成的。该过程可表述为:
vi(g+1)=xr1(g)+F·(xr2(g)-
xr3(g)),i≠r1≠r2≠r3
(5)
其中,F为缩放因子,xi(g)表示第g代中的第i个个体。
对第g代种群{xi(g)}及其变异的子代个体{vi(g+1)}进行种群之中的交叉操作,即
uj,i(g+1)=
(6)
其中,CR为交叉概率,jrand为[1,2,…D]中任一整数。
对于选择操作,下一代个体种群通常利用的是贪婪算法:
xi(g+1)=
(7)
上式中的{xi(g)}是上一代种群,{ui(g)}是指进行交叉以后的种群。
在工控防火墙的白名单技术的实际应用中,其分类训练的效果和SVM参数,包括惩罚因子和高斯核参数都有着紧密的联系。
一般地,使用智能算法与支持向量机相结合来达到优化SVM的目的。但传统的GA或者DE优化支持向量机存在的一些不足,使用遗传算法结合SVM分类时,在进化操作的后期,算法的收敛速度逐渐变缓[10]。而且处理复杂样本时,可能会导致算法及早的收敛影响寻优效果或者在局部最优陷入循环,从而造成算法停滞不前的局面。而使用DE-SVM时则可能会存在样本的多样性不足的问题,导致后期的种群进化停止,致使全局搜索能力较不稳定。
在遗传算法和差分进化算法对于种群的操作中不难发现。存在上述不足的一部分原因是GA中的交叉操作重点顾及了搜索的全局性,而DE的变异则是对于局部性的提升。所以为二者的结合改进提供了前提条件。再者二者在算法流程和原理上有相通之处,且两种算法的扩展性都比较好,容易和别的算法相结合。故而文中将GA与DE相互结合,综合GA、DE各自的优点,对算法搜索能力的整体性有了一定程度的提升。
GA-DE-SVM算法的流程图如图2所示。具体流程如下:
图2 GA-DE-SVM算法流程图
(1)开始,将抓到的工控数据先进行整理得到数据分析所用的数据组。
(2)DE算法初始化种群,对数据组进行编码。
(3)利用DE进行变异、交叉操作,临时种群。
(4)GA算法初始化种群,对数据进行编码。
(5)GA算法进行适应度计算,准备进行下一次遗传操作。
(6)利用DE得到的两种算子,进行变异、交叉操作。
(7)终止条件判断,利用迭代次数或者适应度进行判别,如果判定结果为否,返回(6).
(8)终止条件判断,利用迭代次数。不满足条件则DE重新进行变异交叉,同时GA进行适应度计算,开始新的遗传操作。
(9)满足条件则得到最优值,即c,g参数。
由于在实际生活中,工控数据较为保密,所以采用实验室模拟工控系统的方式来获得校验算法的理论数据。模拟环境如图3所示。在该工控实验平台中,使用STEP 7对两台CPU为414-3的PLC400进行编程,实验过程的监测由WINCC实现,最后在WINCC与PLC之间通过BCNet-s7建立通讯联系,实现 MODBUS TCP 通信功能正常。
图3 实验环境系统图
由于Modbus TCP工控协议在系统正常运行时,其报文信息具有一定的规律特征。而报文中功能码和线圈或寄存器地址保持正常对于工控系统的信息传输具有关键作用。本次试验中正常数据是由正常功能码和寄存器的地址组成;异常数据的生成主要有以下三种情况:(1)未使用的或者是没有明确意义的功能码和错误的地址;(2)正常功能码和异常的地址;(3)未使用的或者是没有明确意义的功能码和正常已使用的地址。
仿真实验平台选用一般的笔记本电脑,其具体配置为CPU 3.40 GHz,8.0 GB,Windows 10系统。采用MATLAB 2018b软件进行实验,通过编写的GA-DE算法结合支持向量机寻找最优的惩罚因子和高斯核参数,并带入 SVM 编写的程序中得到对于模拟实验的工控数据的测试准确率。
文中训练数据分为7组,并对这7组数据进行编号,7组数据中包含异常数据的个数在逐渐增加,但是测试样本所占的比例不变。分别使用PSO、GA、DE-GA优化后的支持向量机对数据进行分类训练,后再利用不同的算法对数据组进行准确率测试。
对于数据的分类结果,假设正确测试的异常数据表示为FC,错误测试的异常数据表示为FF,正确测试的正常数据表示为TC,错误测试的正常数据表示为TF.则正常数据的测试准确率为:
(8)
异常数据的测试准确率为:
(9)
PSO算法得到的SVM的最佳c,g参数如表1所示。
表1 PSO算法得到的SVM参数
将得到的支持向量机参数带入SVM对于数据进行分类测试,得到如图4的测试准确率。
图4 PSO算法测试准确率
GA算法得到的SVM的最佳c,g参数如表2所示。
表2 GA算法得到的SVM参数
将得到的支持向量机参数带入SVM对于数据进行分类测试,得到如图5的测试准确率。
图5 GA算法测试准确率
GA-DE算法得SVM的最佳c,g参数如表3所示。
表3 GA-DE算法得到的SVM参数
将得到的支持向量机参数带入SVM对于数据进行分类测试,得到如图6的测试准确率。
图6 GA-DE测试准确率
图7表示不同算法对于正常数据的测试准确率,虽然随着异常数据的增多,准确率均有所下降。但是由图可以较为明显的看出利用GA-DE的数据测试准确率高于其他两种算法。
图7 正常数据测试准确率
图8表示的是不同算法对于异常数据的测试准确率,不难看出异常数据的测试准确率不断上升,GA-DE对于数据的处理效果稍强于PSO、GA的效果。
图8 异常数据测试准确率
实验结果表明,GA-DE相较于PSO与GA,对于数据的测试准确率有一定的提高。对于白名单的生成的准确性有所提高,改善了工业防火墙的性能。
针对于之前工业防火墙白名单所使用的PSO、GA存在的不足,文中提出的基于GA-DE算法与支持向量机所结合的算法实现了对于支持向量机的c,g参数的优化,如此将支持向量机使用优化后的参数,对实验所抓取数据进行测试。结果表明使得对于正常数据和异常数据的测试准确率都有所提升,即表明白名单技术的分类准确性有所提高,完成了对工业防火墙性能的改善。