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

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

(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

序号漏洞类型数量1CSRF型10002文件下载型10003文件上传型10004SQL注入型10005HTTPHeader注入型1000

分别以文献[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 结 论

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

参考文献(References):

[1]苏蓉,赵俊博,张葛祥,等.一种计及全量测相关性的混合电力系统状态估计方法 [J].电网技术,2018,42(8):2651-2658.

(SU Rong,ZHAO Jun-bo,ZHANG Ge-xiang,et al.A hybrid power system state estimation method considering measurement correlations [J].Power System Technology,2018,42(8):2651-2658.)

[2]戴汉扬,汤涌,宋新立,等.电力系统动态仿真数值积分算法研究综述 [J].电网技术,2018,42(12):3977-3984.

(DAI Han-yang,TANG Yong,SONG Xin-li,et al.Review on numerical integration algorithms for dynamic simulation of power system [J].Power System Technology,2018,42(12):3977-3984.)

[3]李舟,唐聪,胡建斌,等.面向SaaS云平台的安全漏洞评分方法研究 [J].通信学报,2016,37(8):157-166.

(LI Zhou,TANG Cong,HU Jian-bin,et al.Vulnerabilities scoring approach for cloud SaaS [J].Journal on Communications,2016,37(8):157-166.)

[4]孙鸿宇,何远,王基策,等.人工智能技术在安全漏洞领域的应用 [J].通信学报,2018,39(8):1-17.

(SUN Hong-yu,HE Yuan,WANG Ji-ce,et al.Application of artificial intelligence technology in the field of security vulnerability [J].Journal on Communications,2018,39(8):1-17.)

[5]黄影,邹颀伟,范科峰.基于Fuzzing测试的工控网络协议漏洞挖掘技术 [J].通信学报,2018,39(增刊2):185-192.

(HUANG Ying,ZOU Qi-wei,FAN Ke-feng.Fuzzing test-based vulnerability mining for industrial control network protocol [J].Journal on Communications,2018,39(sup2):185-192.)

[6]廖金菊,冯光辉.基于虚拟节点管理的云安全漏洞扫描系统 [J].中国电子科学研究院学报,2016,11(5):483-489.

(LIAO Jin-ju,FENG Guang-hui.Cloud security vulnerability scanning system based on distributed virtual nodes management [J].Journal of China Academy of Electronics and information Technology,2016,11(5):483-489.)

[7]张志华.基于渗透测试的网络安全漏洞实时侦测技术 [J].科学技术与工程,2018,18(20):297-302.

(ZHANG Zhi-hua.Real time detection of network security vulnerability based on penetration test [J].Science Technology and Engineering,2018,18(20):297-302.)

[8]潘道欣,王轶骏,薛质.基于网络协议逆向分析的远程控制木马漏洞挖掘 [J].计算机工程,2016,42(2):146-150.

(PAN Dao-xin,WANG Yi-jun,XUE Zhi.Remote control trojan vulnerability mining based on reverse analysis of network protocol [J].Computer Engineering,2016,42(2):146-150.)

[9]危胜军,何涛,胡昌振,等.基于组件依赖图的软件安全漏洞预测方法 [J].北京理工大学学报,2018,38(5):89-94.

(WEI Sheng-jun,HE Tao,HU Chang-zhen,et al.Predicting software security vulnerabilities with component dependency graphs [J].Transactions of Beijing Institute of Technology,2018,38(5):89-94.)

[10] 毕猛,王安迪,徐剑,等.基于离散马尔科夫链的数据库用户异常行为检测 [J].沈阳工业大学学报,2018,40(1):70-76.

(BI Meng,WANG An-di,XU Jian,et al.Anomaly behavior detection of database user based on discrete-time Markov chain [J].Journal of Shenyang University of Technology,2018,40(1):70-76.)

[11] 汪荣.基于层次模型的浏览器漏洞精确分类挖掘方案 [J].控制工程,2018,25(7):1267-1271.

(WANG Rong.Precise classification and searching scheme for browser vulnerabilities based on hierarchical model [J].Control Engineering of China,2018,25(7):1267-1271.)

[12] 高君丰,张岳峰,罗森林,等.网络编码协议污点回溯逆向分析方法研究 [J].信息网络安全,2017(1):68-76.

(GAO Jun-feng,ZHANG Yue-feng,LUO Sen-lin,et al.Research on taint backtracking reverse analysis method of network encoding protocol [J].Netinfo Security,2017(1):68-76.)

[13] 彭建山,奚琪,王清贤.二进制程序整型溢出漏洞的自动验证方法 [J].信息网络安全,2017(5):14-21.

(PENG Jian-shan,XI Qi,WANG Qing-xian.Automatic exploitation of integer overflow vulnerabilities in binary programs [J].Netinfo Security,2017(5):14-21.)

Network security vulnerability mining method for power system based on black box genetic algorithm

WANG Xiao-hu1,2,WANG Chao1,LI Qun1,REN Tian-yu1

(1.Electric Power Research Institute,State Grid Beijing Electric Power Company,Beijing 100075,China;2.College of Information Technology,North China University of Technology,Beijing 100000,China)

AbstractAiming at the problem of high false and loss detection rates in current network security mining for power system,a network security vulnerability mining method for power system based on black box genetic algorithm was proposed.The network situation was monitored with the omnidirectional perception,and the overall network security situation of power system was obtained.A black box genetic algorithm was introduced for black box fuzzy tests,and the target function was selected to generate test parameters.In addition,the optimized samples were transmitted to a fuzzy test module,and the real-time abnormal situation was recorded through a log monitoring and testing system.The test was stopped when a fuzzy test reaches the preset target,and a network security vulnerability report for power system was output.The results show that the false rates of as-proposed algorithm are lower,indicating that the reliability of as-proposed algorithm is higher.

Key wordsblack box genetic algorithm;power system;network security vulnerability;mining method;black box fuzzy test;network security situation;optimization sample;security vulnerability report

中图分类号:TP 309

文献标志码:A

文章编号:1000-1646(2021)05-0500-05

收稿日期2019-09-18.

基金项目国家自然科学基金项目(61873030).

作者简介王小虎(1987-),男,安徽芜湖人,工程师,硕士,主要从事电力信息安全管理等方面的研究.

*本文已于2021-09-06 09∶19在中国知网优先数字出版.网络出版地址:http:∥kns.cnki.net/kcms/detail/21.1189.T.20210903.1636.020.html

doi:10.7688/j.issn.1000-1646.2021.05.04

(责任编辑:景 勇 英文审校:尹淑英)