基于黑盒遗传算法的电力系统网络安全漏洞挖掘方法*

2021-09-28 01:11王小虎任天宇
沈阳工业大学学报 2021年5期
关键词:黑盒漏洞遗传算法

王小虎,王 超,李 群,任天宇

(1.国网北京市电力公司 电力科学研究院,北京 100075;2.北方工业大学 信息学院,北京 100000)

当前,信息网络在电力系统中的应用日益广泛,大部分信息系统在网络周围均设置了防火墙、IPS等一系列安全设备,以此保障电力系统网络安全性[1].国家电力数据网络同时承载着信息管理及实时控制工作,但各项业务的安全级别和实时性要求不同,业务混合使用导致电力系统网络容易出现安全漏洞.很多电力系统网络因需要对外提供各种服务,导致其暴露在大众视野中,严重影响了电力系统网络安全性,上述原因使得电力系统网络安全漏洞挖掘成为了当前亟待解决的问题[2-3].

孙鸿宇等[4]指出了人工智能技术可以通过自主方式对电力系统网络安全漏洞进行挖掘,并提升漏洞挖掘速度,该方法对电力系统网络漏洞的挖掘速度较快,但漏检率较高;黄影等[5]利用Fuzzing测试技术针对电力系统网络安全漏洞进行扫描挖掘,并设计实现了Fuzzing测试漏洞挖掘系统,该方法的检测查全率较高,但检测准确率较低;廖金菊等[6]针对网络多扫描点进行全方位管控,并提出将分布式虚拟节点管理方案应用至云电力系统网络安全漏洞扫描挖掘中,该方法监控性较好,但检测查全率有待优化.电力系统网络安全是大众关注的重点问题,针对上述电力系统网络漏洞检测算法存在的问题,本文提出基于黑盒遗传算法的电力系统网络安全漏洞挖掘方法.

1 网络态势感知

为更好地实现电力系统网络安全漏洞挖掘,需要对电力系统网络态势进行全方位感知,进而提升安全漏洞挖掘的整体性能.设置网络环境由攻击主机、客户端主机、服务器、交换机以及路由器与集线器组成,结构示意图如图1所示.

图1 网络环境组成示意图Fig.1 Schematic diagram of network environment constitution

客户端主机中装置了入侵检测系统,在网络中安装了防火墙.外来攻击者首先对是否有普通用户主机进行判断,然后注入漏洞攻击,得到主机最高控制权力,最后利用主机针对文件服务器进行泛洪攻击,得到服务器控制权限,获得重要文件信息.

本文利用网络态势感知模型针对图1中的网络系统和设定的攻击过程开展安全态势感知,得到入侵检测系统和防火墙以及各主机安全日志信息数据,并利用拓扑和端口扫描,得到网络拓扑结构,进而设计并构造状态转移图如图2所示.

图2 状态转移图Fig.2 State transition diagram

图2中,网络由初始状态历经5次转化控制文件服务器,各状态通过S1~S5予以标记.

以主机2检测出主机已经受到攻击为例进行计算分析,得到安全态势值计算过程如下:

1)首先对获取的威胁存在概率进行计算,并计算两次状态攻击呈现出的相关程度,即

(1)

式中:λj为攻击中第j个信息的权重值;γj为特征关联程度.

2)基于攻击相关程度对威胁状态概率C进行计算.

3)利用损失和威胁状态概率,并引入通用漏洞评分体系CVSS对该处的威胁损失予以赋值.

4)利用式(2)对电力系统网络安全态势结果进行计算,其表达式为

(2)

式中:wi为信息相应权重值;A为当前状态下设备安全态势.

2 安全漏洞挖掘

依据以往模糊测试在电力系统网络安全漏洞识别中的应用,并结合电力系统网络安全态势评估结果,引入黑盒遗传算法实现电力系统网络安全漏洞挖掘.

模糊测试主要目的是测试模块中的处理逻辑是否存在漏洞,通过对以往模糊测试参数进行分析可知,采用无效参数参与运行的最终结果是还没有进入模块内部就已经被中断在函数之外,因此需要对以往模糊测试模块予以优化.

在整个测试过程中,随机产生的测试数据大部分均是在迭代执行时产生的同错误类型数据,亦或是迭代执行同样路径条件的数据[7-8].尽管利用ioctl(设备的I/O通道管理函数)入口函数开展模糊测试之后有结果提示,然而以往的模糊测试无法通过执行结果对后续测试起到指导作用.遗传算法具备良好的数据优化能力,并且遗传算法作为一种优化算法,能够促使参数收敛至局部或者全局最优,以此解决参数无效问题.

在模糊测试执行过程中,先对cmd(设备控制命令)是否具有有效性进行判断,再执行相应代码,在代码执行过程中判断arg(补充参数)参数.因此由执行结果所给出的提示信息中能够看出参数是否有效,当控制命令要使用一些参数时,即利用arg进行传递.

在测试系统设计过程中,首先要将测试结果与遗传算法相互配合,以此缩小参数取值范围,并生成新的能够满足有效性条件的黑盒测试用例,进而使测试用例能够高效收敛至有效参数空间中;其次依据生成有效黑盒测试用例,依据已知的漏洞特征参数对存在的可变部分予以优化,由此提升模糊测试命中率,即提升电力系统网络安全漏洞挖掘精准性.经优化后的电力系统网络安全漏洞挖掘工作程序如图3所示.

图3 优化后的电力系统网络安全漏洞挖掘工作程序Fig.3 Optimized operation procedures of network security vulnerability mining for power system

在测试之前,选择目标函数ioctl并随即生成测试参数,其中包含文件描述符相应编号fd的选择、cmd和arg参数的生成,参数的生成与遗传算法中的变异方案相互配合完成.当参数生成之后,依据已知的网络漏洞种类,亦或是有关规则优化生成的参数.在测试过程中,将优化之后的样本传输至模糊测试模块中,当该模块收到参数之后调用相应函数开始测试.在测试之后,将模糊测试中的用例参数记录下来,分析测试所得结果,并通过系统日志监控测试系统,实现异常情况实时记录.

假设模糊测试达到了预设目标,亦或是达到一定条件时,停止测试程序.分析有关日志,并将电力系统网络安全漏洞报告输出,反之继续执行程序,且在继续执行过程中,基于测试结果指导遗传算法新一代测试用例的生成.

在结果反馈下的黑盒遗传算法运行中,先根据ioctl函数最终执行结果构建一个新遗传算法.这个新遗传算法的遗传变异机制可表示为

(3)

式中:F为针对arg参数执行变异操作的函数;G为针对cmd执行变异操作的函数;Xi为当前遗传算法中的个体;Xi+1为下一代个体.

根据上述计算与分析,通过ioctl函数执行结果与错误提示信息对新一代测试用例中的参数遗传与变异操作进行指导,具体过程如下:

1)参数值初始化.在初始化过程中,随机生成一个初始个体,亦或是直接采用特定初始值,接着进行函数调用,获取执行结果,同时再随机生成一个新个体.上述两个个体构成初始群体P′(0),并开始运行遗传算法.

2)对个体适应度值进行计算,通过测试结果对个体进行相应评价.不管执行结果正确与否,模糊测试设定条件,即下个测试用例必须要有变化,因此随机生成新一代个体被认定具备比较高的适应度[9-10].

3)在交叉运算过程中,交叉位置设定在cmd和arg之间.模糊测试在运行中每次均需要新的个体,因此交叉率设置为1.

4)基于执行结果使用不同变异方案,随机生成新一代个体.虽然默认值有着较高的适应度,但还是无法完全满足有效性条件,基于当前个体执行结果对新个体变异进行指导,以此获取最优个体[11-13].

5)当群体P′(i)历经选择、交叉和变异等运算后,获取新一代群体P′(i+1).在新一代群体中仅保留了其中的有效参数,同时针对无效参数执行变异操作,该新一代个体就是前后两代个体经过遗传变异之后得到的最优解.

经上述算法改进之后,测试中的有效参数会继续遗传下去,而无效参数进行变异,在遗传变异过程中,基于结果的错误提示对接下来的操作进行指导.

通过遗传算法不仅能够使cmd更加高效率地达到有效值,还能够使arg参数属性得以满足.然而电力系统网络安全漏洞经常是异常参数导致的结果,在可以使参数有效性得以满足的情况下,要针对测试过程中“意外”数据导致的电力系统网络安全漏洞进行测试.

针对特殊状况,系统需要能够根据需求,增加相应优化和完善规则.本文利用遗传算法以及优化方案,对电力系统网络安全漏洞模糊测试程序进行了一个学习反馈操作,同时根据已知的安全漏洞种类优化了数据,高效避免了测试过程中的盲目性,提高了电力系统网络安全漏洞挖掘精度.

3 实验结果与分析

本文以验证基于黑盒遗传算法的电力系统网络安全漏洞挖掘方法整体运行性能为目的,进行相关实验研究.

为与真实电力系统网络漏洞挖掘情况保持一致,此次实验采用北京市电力系统网络数据进行测试.此次实验环境与服务器端配置关系不大,主要实验环境在测试端,其中包含硬件与软件环境两方面:硬件环境为测试终端,电脑类型为Lenovo,ThinkPad E430,Core i5,内存为4 G;采用Matlab仿真软件作为数据展示,采用Python IDE用于遗传优化运行,采用Net Framework用于模糊器运行.

实验数据来源于北京市电力公司官网(http://www.bj.xinhuanet.com/bjpd-wq/bjdl.htm),选取电力系统网络常见的5种漏洞类型组成实验数据,具体漏洞类型及数量如表1所示.

表1 电力系统网络漏洞类型Tab.1 Network vulnerabilities of power system

分别以文献[4]、文献[5]、文献[6]方法作为实验对比方法,采用误检率作为测试指标进行实验,分析得出4种方法对电力系统网络漏洞的误检率,结果如图4所示.

图4 不同方法的误检率对比Fig.4 Comparison of false detection rates using different methods

分析图4可知,文献[4]方法对5种网络漏洞的误检率最低为6.4%,即文件下载漏洞,误检率最高为8.4%,即HTTP Header注入漏洞;文献[5]、[6]方法误检率均在7.5%~8.4%之间,误检率较高;而所提方法的误检率最低为0.4%,即文献下载漏洞;最高为1.2%,即CSRF漏洞.实验结果表明,基于黑盒遗传算法的误检率较低,该方法有效优化了模糊测试过程,能够在遗传变异后将有效参数遗传给下一代个体,提升了参数的有效性,个体经遗传变异之后得到漏洞挖掘的最优解,有效提升了电力系统网络安全漏洞挖掘的准确性.

4 结 论

电力系统网络安全是当前的焦点问题,因此本文提出基于黑盒遗传算法的电力系统网络安全漏洞挖掘方法.算法通过电力系统网络安全态势感知模型对网络情况进行感知,初步提高了挖掘精度与查全性.引入遗传算法以及优化方案,对电力系统网络安全漏洞模糊测试程序进行了学习反馈,同时根据已知的安全漏洞种类优化了相关数据,高效避免了测试过程中的盲目性.经实验分析可知,相比其他文献方法,该方法降低了电力系统网络漏洞的误检率,提高了电力系统网络安全漏洞挖掘精度和覆盖率.在接下来的研究中主要针对遗传算法局部最优收敛情况进行进一步优化,增强挖掘性能.

猜你喜欢
黑盒漏洞遗传算法
漏洞
一种基于局部平均有限差分的黑盒对抗攻击方法
基于遗传算法的高精度事故重建与损伤分析
基于遗传算法的模糊控制在过热汽温控制系统优化中的应用
基于selenium的SQL注入漏洞检测方法
基于遗传算法的智能交通灯控制研究
漏洞在哪儿
基于改进多岛遗传算法的动力总成悬置系统优化设计