电力信息网络安全态势评估方法
2021-04-29霍英哲尹晓华
于 海, 李 峰, 霍英哲, 尹晓华
(国网辽宁省电力有限公司信息通信分公司, 沈阳 110006)
随着中国电网向智能化、网络化、自动化发展,电力信息网络间的信息交互愈发频繁深入[1]。电力信息网络是电力生产和管理正常运行的基础,电力信息网络的安全性是电力系统安全稳定运行的重要基础[2]。同时大量智能量测装置和远程控制设备都面临受攻击风险,使得电力信息网络结构日趋复杂,停电事故时有发生[3]。因此为了预防电网停电事故的发生,需要预测电网的安全运行状态,即对电网的安全态势进行感知[4]。电力信息网络面临的主要威胁有:日趋复杂的网络拓扑带来的网络安全问题;漏洞频发的操作系统漏洞带来的主机系统安全问题;以及大量电力信息数据传输存储中面临的数据应用安全问题。为此,国家电网公司制订了“双网双机、分区分域、安全接入、动态感知、精益管理、全面防护”的主动防御策略,构筑互联网与信息外网之间强化控制策略、信息外网与内网之间强逻辑隔离、管理信息与生产控制物理隔离的信息安全三道防线,配备了入侵检测、防火墙、漏洞扫描、防病毒等一系列安全设备,对电力信息网络取得了较好的防护效果。
但是,随着攻击者功利性和专注性的提高,当前电力信息网络中各类安全设备缺乏联动,容易形成安全孤岛[5]。海量的日志数据关联度较低,需要分析人员进行大量的人工分析,无法保证及时性和准确度。因此,电力信息网络安全需要达到更高的标准,面向电力信息网络的及时高效的安全态势评估愈发显得重要。
在此背景下,电力信息网络安全态势评估技术应运而生,并取得了很大的进展。Bass[6]首先对网络安全态势感知进行了定义,网络安全态势感知是指通过数据提炼、目标细化、态势改善来获取网络安全态势的因素。贾瑞生等[7]通过各种威胁获得整体安全态势,分析安全情况。周新卫等[8]通过多节点网络安全态势重要影响因子值与安全态势值计算状态向量,构建了一种新的基于改进G-K算法的多节点网络安全态势预测模型。Kou等[9]提出了一种基于攻击意图识别的网络安全态势评估方法,该方法在对攻击事件进行因果分析后,根据每个攻击阶段进行态势评估,并根据所得态势识别出攻击意图,能够更准确地反映攻击的真实性。Tao等[10]提出了一种基于图数据库的分层多域网络安全态势感知数据存储方法,将网络划分为不同的域,可以更有效地收集和处理感知数据。Vellaithurai等[11]提出了网络-物理安全指标以衡量基础网络物理环境的安全级别,并使用运行日志以及电力网络拓扑信息构建贝叶斯模型,来推断出正在进行的恶意攻击。陈丽莎[12]提出基于反向传播(back propagation,BP)和神经网络(neural network,NN)的大规模网络态势评估模型,该模型抽象为输入层、隐层、输出层,并进行各层相关元素的设计,评估网络的安全态势等级。Zhao等[13]提出基于粒子群优化的神经网络模型,用于评估网络安全态势,仿真结果表明该模型具有更快的收敛速度和评估精度。于群等[4]将深度学习与电网的安全态势感知相结合,完成对电网安全态势的感知,并将其与BP神经网络和径向基函数(radical basis function,RBF)神经网络进行了对比分析,验证了深度学习对电网安全态势感知的有效性。高翔等[14]引入灰色关联分析出电力信息网络安全指标权重,并利用支持向量机建立了评估模型,提高了网络安全态势的评估准确率。茹叶棋等[15]建立了信息设备关联的业务可靠性模型,并结合层次分析法和贝叶斯网络对电网信息物理系统进行了可靠性分析。
但现有基于神经网络的网络安全态势评估方法容易陷入局部最优,且效率较低[16],现提出一种基于改进人工蜂群算法(artificial bee colony algorithm, ABC)优化神经网络的复杂电力信息网络安全态势评估方法。新方法通过引入混沌序列改进蜂群的初始化,以提高蜂群的多样性。然后,利用改进的人工蜂群算法计算神经网络的各个神经元连接权值,来代替反向传播算法。
1 基于神经网络的复杂网络安全态势评估模型设计
网络安全态势评估的一般步骤如下[17]:首先,建立网络安全态势评估模型的指标体系;然后,建立不同的模型计算网络安全态势的评估值,从而实现网络安全态势评估模型的构建。神经网络具有强大的非线性映射能力[18],能够有效拟合复杂电力网络安全态势评估中的感知数据与安全态势之间的隐函数关系,进而计算出网络安全态势评估值,能够有效反映出网络安全态势评估的情况。基于神经网络的网络安全态势评估模型如图1所示。
x1,x2,…,xn为神经网络的输入值,即网络安全态势评估指标;为神经网络的权重参数;Σ为线性求和,作为激活函数f的输入;y为神经网络的输出值,即网络安全态势的评估值
基于神经网络的安全态势模型主要包含三部分:以网络安全态势指标为输入的输入层,态势指标到态势评估的隐含层,以态势评估值为输出的输出层。
1.1 网络安全态势指标输入
电力信息网络安全态势指标主要由Snort日志的报警信息等提供。主要指标包括一定时间窗内传输控制协议(transmission control protocol,TCP)、用户数据报协议(user datagram protocol,UDP)、Internet控制报文协议(Internet control message protocol, ICMP)各类数据包的分布以及包字节数比重,流入流出流量变化率,攻击频率,攻击源数量等。这些态势指标数据归一化后构成向量(x1,x2,…,xn)作为神经网络的输入层,以消除不同物理单位量纲的影响。根据一般的网络安全态势指标选取原则[19],以及复杂电力信息网络安全特点,选取10个电力信息网络安全态势指标,构成指标体系。包括{ TCP包分布,TCP包字节数分布,UDP包分布,UDP包字节数分布,ICMP包分布,ICMP包字节数分布,流入流量变化率,流出流量变化率,攻击频率,攻击源数量}。
1.1.1 协议包分布
设电力信息网络中TCP包总量为nTCP,UDP包总量为nUDP,ICMP包总量为nICMP,则TCP包分布为
(1)
UDP包分布为
(2)
ICMP包分布为
(3)
1.1.2 流量变化率
设t时刻网络流入数据量为Nt,t+Δt时刻网络数据字节总量为Nt+Δt,则流量变化率为
(4)
1.1.3 攻击频率归一化
(5)
式(5)中:f为单位时间内发生攻击的次数。
1.1.4 攻击源数量归一化
(6)
式(6)中:n为攻击源的数目。
1.2 态势指标到态势评估的隐含层
神经网络中隐含层的层数及每层的神经元个数决定了神经网络的映射能力。一般来说,神经网络的层数越深,从输入层到输出层的映射能力越强,但同时会导致训练参数的增加,降低神经网络的训练速度。神经网络的学习过程本质上是一个找到能够匹配输入输出的最佳连接权重参数的优化过程。但传统的反向传播神经网络训练算法,训练时间较长,且容易陷入局部最优,不利于及时发现网络安全态势中的风险。因此,论文采用双隐含层的网络结构,并通过人工蜂群算法训练神经网络的权值。既提高了神经网络的表征能力,又能够有效减少神经网络的训练时间,及时为网络安全态势提供实时评估值。
(7)
(8)
(9)
式中:f为激活函数,一般采用sigmoid激活函数。
1.3 网络安全态势评估值输出
安全态势评估值借鉴国家互联网中心对网络安全态势的划分标准,根据网络安全形势特点,将安全态势由安全到危险划分为五个等级,并用实数区间进行定量描述。
2 改进人工蜂群算法的复杂网络安全态势评估方法
由于传统BP神经网络训练时间一般较长,且容易陷入局部最优,未必是最优的权值和阈值[20]。因此采用ABC算法优化神经网络的权值和偏置值,获得最优的权值和偏置值,使ABCNN(attention-based convolutional neural network)模型评估结果更准确。ABC算法是最近几年提出的一种非常强大的群智能优化算法,为神经网络权值的优化构造了一种新的解决方案[21]。ABC算法模仿自然界中蜜蜂的群体觅食行为,蜂群中包括雇佣蜂(employed bee,EB),旁观蜂(onlooker bee,OB)和侦察蜂(scouter bee,SB)三种。雇佣蜂的任务是采集当前位置的蜜源,然后以不同形式的舞蹈与旁观蜂分享蜜源(花蜜数量,距离等)信息。旁观蜂的数量与雇佣蜂相同,根据雇佣蜂的舞蹈择优选择蜜源(适应度函数值)。而离开蜜源的雇佣蜂转化为侦查蜂,通过随机游走搜索新的潜在蜜源。ABC算法与粒子群算法(particle swarm optimization,PSO)、遗传算法(genetic algorithm,GA)进行的benchmark函数测试比较结果表明,ABC算法收敛速度要比PSO和GA算法更快,更有可能获得全局最优值[22]。
在ABCNN模型中,神经网络的待优化的权值参数作为蜜源的位置,神经网络输出的评估值与真实安全态势评估值的差值平方作为蜜源的适应度函数。即
(10)
式(10)中:fitness()为蜜源的适应度函数值;y为神经网络输出的评估值;d为真实安全态势评估值。
ABC算法的步骤如下。
步骤1 随机初始化N个雇佣蜂位置,即为神经网络权值,并计算相应的适应度函数值。
步骤2 雇佣蜂对蜜源附近邻域搜索,若邻域蜜源比原位置蜜源更好,则用邻域替代原位置;否则,保持原位置不变。
步骤3 旁观蜂以一定概率Pi选择要跟随的雇佣蜂,并进行邻域搜索。若邻域蜜源比原位置蜜源更好,则用邻域替代原位置;否则,保持原位置不变。即
(11)
步骤4 若某蜜源的适应函数值多次循环后仍保持不变,则相应的雇佣蜂转变为侦查蜂,重新随机搜索。
步骤5 迭代截止时返回最优蜜源位置与最优目标函数值;否则,跳转到步骤2。
由于初始化过程的随机性会很大程度上影响全局最优解的精度和收敛,因此具有长周期和良好均匀性的随机序列会提升算法的性能。而混沌系统由于其简单确定性动力系统的随机性取决于其初始条件和参数的灵敏度,逐渐被认为是有效的初始化机制,能够提高种群的多样性[23-24]。因此,引入了以不规则性、遍历性和随机性为特征的混沌序列,以执行整个群体的初始化过程。基于混沌序列的蜂群初始化步骤如下。
步骤1 设置混沌最大迭代次数。
步骤2 随机初始化混沌变量λ0,j∈(0,1)。
步骤3 更新λi+1,j=μλi,j(1-λi,j),其中,μ为混沌控制参数。
步骤4 若达到最大迭代次数,则输出混沌随机值;否则,跳转到步骤3。
步骤5xi,j=xmin,j+λt,j(xmax,j-xmin,j),其中xmin,j和xmax,j分别是输入态势指标的上界和下界。
图2给出了基于人工蜂群算法的网络安全态势评估模型。
图2 基于人工蜂群算法的网络安全态势评估模型Fig.2 The model of complex network security situation assessment based on ABC
3 实验结果
3.1 实验环境搭建
论文构建了电力信息网络安全态势评估的实验环境,包括2 台路由器、3 台防火墙、2 台交换机、2 台Snort入侵检测系统、2 台电力数据库服务器、1 台电力系统网站服务器、1 台电力系统文件服务器以及4台电脑。各服务器通过出口路由对互联网上的用户和攻击者开放。如图3所示。
图3 网络安全态势评估仿真实验拓扑图Fig.3 The simulation experiment topology of network security situation assessment
实验模拟了互联网上的攻击者利用漏洞对各服务器(数据库服务器、网站服务器、文件服务器)的联合攻击过程。各服务器涉及的攻击漏洞如表1所示。
表1 各服务器涉及的攻击漏洞Table 1 The vulnerability of servers
漏洞攻击将直接影响各服务器的功能使用,且会造成信息泄露,会对电力信息网络造成重大威胁[20]。通过分析数据包的变化情况可发现这些攻击,因此选取TCP、UDP、ICMP数据包的分布以及包字节数比重,流入流出流量变化率作为网络安全态势评估中的输入指标,如表2所示。这些安全态势指标在仿真攻击过程中,由入侵检测系统收集并存入SQLServer数据库中。
表2 网络安全态势评估指标Table 2 The indicators of network security situation assessment
ABCNN网络安全态势评估模型通过MATLAB R2014b编译实现。实验平台在Intel Xeon 2.4 GHz E5-2665 CPU、16 G内存、操作系统为Windows 7的计算机上搭建。ABC算法中蜂群种群规模为30,迭代上限为50,混沌迭代上限为50。神经网络输入层
节点数根据输入指标数设计为8,双隐层神经元个数也均为8,输出层节点数为1,激活函数采用常用的sigmoid函数。
漏洞采用通用漏洞评分系统(common vulnerability scoring system,CVVS)以及10 位网络安全专家进行综合评分[16,20],并将漏洞评分进行了[0,1]归一化处理,作为网络安全态势的评估结果。安全等级分为安全[0,0.2),轻度危险[0.2,0.4),一般危险[0.4,0.75),中度危险[0.75,0.9)以及高度危险[0.9,1.0]。实验中收集了150 组数据,其中120 组数据作为训练样本,30 组数据作为测试样本。
3.2 实验结果分析
图4给出了人工蜂群优化神经网络(ABCNN)与传统神经网络(BPNN)以及遗传算法优化神经网络(GANN)的对比迭代曲线图。由于群智能算法具有随机性,因此实验取30 次运行的平均结果。从图4中可以看出,ABCNN的适应度迭代曲线要优于GANN和BPNN的收敛曲线,获得了更小的误差值,具有更快的收敛速度。
图4 适应度误差迭代曲线图Fig.4 The iteration curve of fitness error
为了给出更加量化的结果,表3给出了ABCNN、BPNN和GANN运行30 次的平均值、方差以及最好值的结果对比。可以看到,无论是平均值、方差,还是最好值,ABCNN都取得了优于BPNN和GANN的结果。说明相较于对比算法,ABCNN获得的结果精度更高,鲁棒性更强。
表3 ABCNN与BPNN和GANN的统计结果对比Table 3 The comparison of ABCNN with BPNN and GANN
图5给出了三种算法ABCNN、BPNN和GANN对剩余30 组网络安全态势数据进行预测输出的比较结果。可以看出,对于BPNN来说,除了样本20和25之外,ABCNN的输出结果均要更接近实际安全态势值;而对于GANN来说,除了样本2之外,ABCNN的输出结果均要优于GANN的输出结果。
图5 网络安全态势预测结果比较Fig.5 Comparison of network security situation prediction
为了进一步量化各种比较算法的输出结果与实际安全态势值之间的误差,采用平均相对误差M进行计算,即
(12)
式(12)中:yi为算法得出的安全态势预测输出值;di为网络安全实际态势值;n为测试样本个数。
根据式(12)可以得到 ABCNN、BPNN 和 GANN对网络安全态势预测值的平均相对误差分别为4.55%、10.31%和7.72%。基于ABCNN的网络安全态势评估方法的平均相对误差比BPNN和GANN分别低5.76%和3.17%,因此基于ABCNN的网络安全态势评估方法的预测准确度更高,能够更加精准地反映网络安全的态势情况。
综上,基于人工蜂群优化的神经网络安全态势评估方法,在收敛速度、训练和预测精度、鲁棒性上均要优于传统的基于BPNN和GANN的评估方法。
4 结论
提出了一种基于改进人工蜂群优化神经网络的电力信息网络安全态势评估方法。该方法通过引入混沌序列改进人工蜂群算法提高蜂群的多样性,增加了蜂群的全局搜索能力。并利用改进的蜂群算法优化神经网络的各权值参数对网络安全态势进行评估预测。实验表明,基于改进的人工蜂群和神经网络的安全评估方法有效提高了网络安全态势的评估精度,加快了收敛速度。未来可通过为ABC算法增加精英策略等方式提高算法的收敛速度和最优解精度,增强ABCBPNN安全态势评估模型的评估精度。