基于非扫描漏洞探测的输电信息安全防御研究
2021-11-19靳晓琪
靳晓琪
(中国南方电网有限责任公司超高压输电公司 广州 510670)
1 引言
随着中国电网事业的快速发展,输电系统的网络安全存在着很多安全隐患,如重要信息被篡改、病毒入侵以及使用权被盗等,造成输电中心站系统瘫痪,影响了输电系统的正常运行[1]。近年来,随着信息技术和信息安全的快速发展,输电信息的安全形态日渐严重,致使电网有关故障经常发生,产生的危险也逐渐扩大,对输电信息的攻击迫害逐步增多,防御难度系数日渐加剧[2]。
安全漏洞指完成程序代码时产生的详细错误,如边界查询错误和逻辑错误等[3]。漏洞的产生是由于网络缺乏严密有效的安全防范,使得不安全的操作软件和内部程序等给入侵者提供了机会,产生不可避免的危险[4]。尽管漏洞自身没有攻击行为,但是攻击者会依据漏洞的存在编写有关病毒编码,通过各种方法将病毒编码传播出去,造成违法违规行为,如盗窃用户隐私数据、越权访问机密文件和损坏输电线路的信息安全等[5-6]。因此安全人员发现漏洞要及时进行修补,提高输电信息的安全防御。
采用非扫描漏洞探测方法即随机探测的机器学习方法,依据输电信息动态特征,实现对输电信息的非扫描漏洞探测,并在此基础上进行输电信息的安全防御。
2 非扫描漏洞探测方法
2.1 非扫描漏洞探测原型设计
运用1 400 个输电信息的二进制程序,该程序从Debian 漏洞跟踪报告中获得。设计一种基于机器人学习的非扫描漏洞探测方法,通过该检测方法对输电信息安全机制中的大量二进制程序实行非扫描漏洞探测。非扫描漏洞探测方法程序如图1 所示。
图1 非扫描漏洞探测方法程序图
2.1.1 基于信息聚合的动态特征提取
hook 程序的关键代码是动态特征提取关键环节,机器学习模型训练用的动态特征是程序执行事件序列,该序列通过在特定时间里执行程序获取。对序列程序执行事件的采集和按次存储完成动态特征提取。程序结束或程序调用C 标准库函数的一次实参是程序执行事件。Cj(agr1,agr2,…,agri)|program End 表示程序执行事件,该执行事件用程序复返状况或带实参的函数代表。
其中,j为C 标准库函数的一次实参调用程序执行事件。该函数的agri表示第i个参数时程序执行事件可以结束特征提取,用program End 表示程序结束状态。C 标准库函数程序结束状态通常和输电信息内存泄露漏洞紧密相关,程序结束状态也是最后一次对C 库函数调用的有关信息。诱发性异常终止(Abort)、异常终止(Crash)、程序退出(Exit)、和时间耗尽(Timeout)4 种状态属于程序结束状态。从测试实例中提取出海量事件是动态特征提取的优点[7-8]。动态特征提取即便面对小程序提取出的时间序列也能建造出特别大的数据集,如单一的循环可以被延展成随意长的事件序列。但是如果机器学习分类器将动态特征提取的事件序列直接用在模型训练,没有任何处理加工的过程,会给模型学习造成两方面的困扰,一方面是如果参数值域很大,则不同的参数值会很多(如11 位参数取值范围增加到121 种),因此如果要运用不连续事件序列去训练机器学习模型,要对参数的取值范围大大降低;另一方面,如果参数的特征值很多会导致单个参数携带信息很少,致使全部参数携带的信息存在比较分散的状态。
通过子类型去标记每个参数的方式,解决上述存在的两个问题,如图2 所示。
图2 动态特征参数子类型
图2 中,对指针Ptr32 实行划分。一共划分为5部分,分别是堆地址、栈地址、全局内存地址、悬空指针和空指针,这5 部分分别用DPtr32、CPtr32、EPtr32、APtr32 和BPtr32 表示。整数的划分依据其取值范围完成,且指针传递的信息比整数Fig32 传递的信息多。如果输电信息程序的内存毁坏,那么C 标准库函数fread 参数取值太大,对fread 参数的子类划分可依据取值范围完成,将该参数取值和内存毁坏漏洞间的关系保存,产生的动态特征可有效应用在非扫描漏洞探测中[9-11]。图2 中,Fig32Bm指示在2m和m+1 间的一个32 位数。
为避免参数信息分散,利用子类型标记方法聚合参数信息。通过子类型标记方法,提取的不同程序执行踪迹共142 214 条。
2.1.2 特征预处理和机器学习模型训练
采用TF-IDF 算法完成样本特征集的特征向量化,并将特征量输入模型[12],且获得的向量长度相同,因此不必对长度实行归一化处理。
假设t表示输电信息中敏感词频(敏感信息出现的次数),出现次数较多的输电信息拥有较大的权重值,出现次数较少的输电信息权重值较小,那么特征词tk在输电信息l中的权重ζ为
输电脱敏后的数据频率用fs表示,电网数据传输容量idf(tk)为
式中,N表示电网传输数据总数,nk表示tk的负荷增长步长,a为常量,且a>0,a≠1。TF 方法能够有效识别电网数据的高频特征,但是对低频词的分类帮助不大,会忽略输电信息中的低频数据,使低频的输电信息不完整,为此,通过IDF 方法能够有效提升低频输电信息的重要性,增强了权重。TF-IDF 加权方法将两方法结合在一起,获得准确的输电信息特征权重为
在上述结果下训练动态特征集,该模型训练采用Logistic 回归模型、随机森林和Text-CNN 完成。
Logistic 回归和Text-CNN 的假设函数如下所示
但Logistic 回归模型受到限制,属于线性分类器,为此,通过随机森林方法阻止过拟合情况的发生[13]。具体过程如图3 所示。
图3 随机森林拟合阻止过程
根据上述过程,采用最大化训练数据上的对数似然函数求解完成模型的训练[14],通过机器学习方法易忽视某些新特征和隐藏的特征,而过分关注训练集中拥有的一些特定特征,即易于过拟合会造成对训练集误差估计达不到实际预想的效果,因此需要一组独立的训练样本,并精确地估计该训练样本,再利用一组独立的验证集验证该训练样本。将验证后获得的训练样本分成3 部分:训练集、验证集和测试集[15]。并对Text-CNN 和Logistic 回归模型实行拟合处理,该拟合处理过程采用交叉验证的方式,对Text-CNN 实行参数选择完成输电信息安全动态特征集的选取,即获取输电信息安全漏洞结果。
2.2 非扫描漏洞探测方法在输电信息安全防御中的应用
2.2.1 线路检测终端的安全防御
为了保证输电信息检测终端和中心站间通信链路的安全性和传输数据的完好性与保密性,完成中心站和终端间的双重身份判别是线路检测终端的安全防御目标。主要防御输电信息中心站的信息安全受到非扫描漏洞探测到的输电信息安全漏洞,造成身份造假、重放攻击等攻击形式对终端的恶意损坏、攻击以及其他不正当运作,避免因此造成电网事故,通过输电信息终端本体实现线路检测终端的安全防御。由于非扫描漏洞探测技术具有以下几点优势,对于输电信息安全防御具有至关重要的作用。
(1) 含可信模块的本体固件
可信加载的实现可避免检测终端本体加载的固件被篡改,其可信加载的过程为:利用内置可信密码模块(Trusted cryptography module,TCM)和基于板卡熔断机制芯片,通过国密可信平台模块(Trusted platform module,TPM),在通电时启动CPU 共同完成对外存取程序验证,如图4 所示。
图4 基于TCM 的可信加载
为避免出现安全漏洞后电网设施被离线或在线导入恶意代码和敏感数据的泄露,改动可信模块的本体固件和操作系统,该改动过程通过基于板卡熔断机制和内置TPM 芯片完成,由此实现从芯片至系统驱动的逐级可信验证和全部加密。可信计算机的可信链防御过程是从启动系统开始防御,逐级校正。通过从可信计算机硬件结构、操作系统和芯片等方面采取综合措施,实现对输电信息程序的防御。为了提升输电信息程序整体安全性,在电网通信系统和计算机中,大量应用基于硬件安全模块支持下的可信计算机平台。
(2) 基于可信链的软件设计
将监测终端本体上电启动后,设计基于可信链的软件安全防御过程包括三方面:① 操作系统的可信加载和启动通过引导输电信息程序和可信芯片交互完成;② 平台程序的可信加载和启动通过操作系统实现;③ 每个进程的可信加载和启动通过平台程序完成。通过三个方法的循环操作产生一个依附于可信根的可信链,如图5 所示。
图5 基于可信芯片的可信链传递框架图
通过构建基于可信芯片的可信链接传递框架图和数字认证体系,完成轻量化的可信度构建,解决电网恶意病毒漏洞的安全危险。
2.2.2 安全存储和安全隔离
非扫描漏洞探测出的输电网络安全漏洞会导致输电网络经常被切换,数据传输安全性大大降低。当输电网络外网被接入到内网安全区区域中,外网发布服务器会接收到由内网安全区传递的同步数据。输电网络探测出安全漏洞后,为了确保输电网络外网以及内网传输的安全性,需要从安全存储以及安全隔离两方面着手。
输电网络安全防御的重心是监控运维中心,其处于电力专网中,不可信终端不能直接接入该运维中心,且直接访问该运维中心的数据库不包括其他服务器或网络协议。通过安全网关在监控运维中心的边缘上过滤掉不可信监测接入,为了确保输电信息服务器的安全,要求外网发布服务器在技术层面上隔离全部反向连接的任务通过正向隔离装置完成。
监测终端接入监控运维中心采用4G 网络多跳完成,接入过程中会产生多种风险,如采用路由器盗取IP 包,调换攻击、攻击者监听,篡改和插入等,造成输电信息多处漏洞导致监控运维中心服务站瘫痪。
3 仿真试验
为验证基于非扫描漏洞探测的输电信息安全防御方法的有效性,进行仿真试验。采用所提方法对某居民小区中4 个区域某天三个时刻(上午8:00 属于用电高峰期,下午14:00 用电低峰期和晚上20:00用电中峰期)的输电信息情况进行漏洞探测,结果见表1。
表1 所提方法探测漏洞结果
分析表1 可知,无论是用电高峰期还是用电低峰期,采用所提方法对4 个区域输电信息的漏洞探测结果和实际漏洞结果相同,说明所提方法能有效地探测输电信息漏洞,并有效地提升输电信息安全防御效果。
为验证所提方法的鲁棒性,在不同信噪比的高斯白噪声条件下,选择某日用电高峰时刻8:00,验证所提方法对4 个区域输电信息漏洞探测次数,结果见表2。
表2 不同信噪比下输电信息漏洞探测次数 次
分析表2 可知,所提方法能够有效地探测4 个区域输电信息,探测次数接近表1 描述的实际漏洞次数,说明所提方法对输电信息安全防御效果好,鲁棒性强。
在50 dB 高斯白噪声干扰下,采用所提方法对4 个区域输电信息情况进行10 次仿真试验,同样选择该日用电高峰时刻8:00,验证所提方法进行安全防御的4 个区域中的输电信息抗干扰系数,结果见表3。其中,抗干扰系数越靠近1,抗干扰性能越好。
表3 输电信息的抗干扰系数
分析表3 可知,采用所提方法进行安全防御的4 个区域中的输电信息抗干扰系数都靠近1,输电信息的抗干扰性能好,说明所提方法对输电信息安全防御效果好。
通过sokit TCP/UDP 软件测得数据物联网防御方法、GPRS 防御方法以及非扫描漏洞探测防御方法对 Open Data 500 (http://www.opendata500.com/us/)数据库中4 个试验区域输电信息漏洞平均检测准确率进行验证,结果如图6 所示。
图6 不同方法漏洞检测准确率对比图
分析图6 可知,不同方法的漏洞检测准确率不同。当运行时间为100 s 时,物联网防御方法、GPRS防御方法的漏洞检测准确率较低,分别为22%、19%,非扫描漏洞探测方法的检测准确率为96%。当运行时间为500 s 时,物联网防御方法的漏洞检测准确率为70%,GPRS 防御方法的漏洞检测准确率为68%,非扫描漏洞探测方法的漏洞检测准确率为99%。所提方法一直保持较高漏洞检测准确率,具有较好的安全防御效果。
为了验证输电信息丢包情况,在强干扰下,通过 cmd 命 令 获 得 Open Data 500 (http://www.opendata500.com/us/)数据库中输电信息丢包情况,结果如图7 所示。
图7 输电信息丢包率
采用不同方法迭代检测输电信息丢包情况,将结果整理如下,见表4。
表4 不同方法下输电信息丢包率
分析表4 可知,不同方法下输电信息丢包率不同。当运行时间为30 s 时,物联网防御方法的输电信息丢包率为25%,GPRS 防御方法的输电信息丢包率为10%,非扫描漏洞探测方法的输电信息丢包率为0。物联网防御方法的输电信息丢包均值为27.5%,GPRS 防御方法的输电信息丢包率均值为20.17%,非扫描漏洞探测方法的输电信息丢包率均值为0.5%。所提方法的输电信息丢包率始终较低,说明了其数据防御效果较好。
为进一步验证所提方法的防御效果,以攻击系数为测试指标,验证不同方法的防御效果,结果如图8 所示。
图8 不同方法防御效果对比图
如图8 所示,在同等条件下对输电信息进行防御,所提方法的攻击系数最低,具有较为明显的优势以及较高的实际应用性。
4 结论
采用一种非扫描漏洞探测方法即随机探测算法对输电信息安全漏洞进行动态特征提取,通过Text-CNN、Logistic 回归和随机森林等算法对提取的动态特征集实行模型训练获得输电信息安全漏洞。当探测出安全漏洞后,从线路检测终端的安全防御、安全存储和安全隔离三个方面出发,提高输电网外网以及内网传输信息的安全性,并从添加网关、添加安全接入平台、利用身份验证以及采用SM2算法实现报文的加密和解密等四个方面确保电网监控运维中心服务的安全性,这些措施大大实现输电网络信息的安全防御。通过试验得出以下结论。
(1) 所提方法进行安全防御的4 个区域中的输电信息抗干扰系数都靠近1,输电信息的抗干扰性能好,说明所提方法对输电信息安全防御效果好。
(2) 所提方法一直保持较高的漏洞检测准确率,最高漏洞检测率可达99%,具有较好的安全防御效果。