余少锋,钟建栩,朱 磊,马一宁
(南方电网调峰调频发电有限公司信息通信分公司,广东 广州 510000)
信息通信技术的发展提高了电力系统智能化、无人化、精细化控制能力,然而也为电力系统网络安全带来了严重威胁[1-3]。因此,利用及时、准确的检测和识别方法[4-5],以控制和防范威胁电力系统网络的入侵行为至关重要。
入侵检测[6]是一种典型的主动防御技术,是计算机网络安全领域的重要研究课题之一,已广泛应用于信息物理系统[7]、智能电网[8]、智能汽车[9]等。入侵检测从本质上可以看作是一种模式分类问题。目前,主流的入侵检测算法主要有基于规则[10]、模式[6]、智能算法[4,8-9]和基因表达式编程(gene expression programming,GEP)[11-12]。这些算法只考虑网络日志的集中处理,属于集中入侵检测算法的范畴。传统的集中式入侵检测算法增加了传输带宽、网络时延和数据包丢失概率。此外,对于高维网络日志,如果直接用GEP挖掘模型,算法的时间和空间复杂度会大幅增加,网络攻击检测的实时性和准确性也会大幅降低。
随着分布式能源的不断接入、电力系统环境日益复杂,配电网中动态分布的海量数据给电力系统网络的入侵检测带来了新的挑战。此外,随着存储重要数据的需求与日俱增,云计算成为电力系统主要信息来源。云以公共、私有和混合的形式提供。云计算中的安全性通常因其计算服务的不同而不同。为此,有学者对云计算中的入侵检测算法[12]进行研究。分布式方法效率高、网络安全性强,然而系统计算复杂性成倍数增加。此外,系统面临干扰数据对系统鲁棒性、稳定性的重大挑战。
为有效处理电力系统网络中海量、高维的入侵数据,本文提出了一种基于粗糙集的含噪数据约简算法,从而减少复杂入侵数据的时间消耗集、提高数据处理效率。同时,本文提出了一种基于混合基因表达式编程和云计算的分布式入侵检测方法,提高了电力系统网络入侵检测的准确性和效率。
为了便于理解基于粗糙集的属性约简,本文首先简要介绍了网络日志粗糙集的相关概念。
定义1 网络日志决策表L描述为:
L=〈U,C∪A,V,f〉,C∪A=R
(1)
式中:U为网络日志数据集;C为网络日志特征集;A为攻击类型集;V=Uvr,r为日志特征,r∈R;f:U×R→V为攻击类型信息函数。
定义2 令网络日志决策表为L=〈U,C∪A,V,f〉。如果相同的网络日志特征属性值具有相同的对应攻击类型属性值,则表示网络日志决策表L是一致的。
定义3 令网络日志决策表为L=〈U,C∪A,V,f〉,∀P⊆R,r∈R,R=C∪A和x,y∈U,当且仅当f(x,r)=f(y,r),x和y是不可分辨的。用符号描述为U/P或IND(P)={(x,y)∈U|r∈P,f(x,r)=f(y,r)}。
定义4 令网络日志决策表为L=〈U,C∪A,V,f〉,C∪A=R。对于所有X⊂U,X的R下近似值表示为R_(X),有R_(X)=∪{Yi⊂U/IND(R):Yi⊂X}。
定义6 令网络日志决策表L=〈U,C∪A,V,f〉保持一致。网络日志特征属性C与攻击类型属性A之间的依赖度用rC(A)表示。如果式(2)成立,则∀c⊂C。
(2)
网络日志特征属性是可归约的,card(U)为集合U的个数。
定义7 令:
Np×(q+1)=(nij)p×(q+1)
式中:nij为使用K-均值聚类算法发现的第i个噪声数据的第j个属性值;N为噪声对数矩阵。
定义8 令:
C=(cij)p×(q+1)
如果矩阵N中的nij为噪声数据,则cij=1;否则,cij=0。矩阵C为相关矩阵。
基于粗糙集的含噪数据属性约简算法如图1所示。
图1 基于粗糙集的含噪数据属性约简算法
在电力系统网络的数据采集过程中,由于人、网络或测量装置的作用,产生了大量的噪声数据。对含有噪声的日志数据进行属性约简,势必影响约简的准确性,最终影响入侵检测模型的精度。因此,在属性约简过程中,有必要对噪声数据进行查找、剔除或校正,以减少噪声对属性约简的影响。为此,本文提出了一种改进的属性约简方法。在约简之前,首先通过K-均值聚类算法找到噪声数据。该算法可以在属性层次上发现噪声数据,并根据剩余的干净数据对噪声进行校正,而无需事先了解噪声数据的结构。
为了提高基于基因表达式编程的入侵检测的准确性和效率,在考虑噪声数据的基础上,提出了一种改进的基因表达式编程入侵检测算法。令网络日志数据为L=〈U,X∪Y,V,f〉,其中X={x1,…,xn}。入侵检测的实质是挖掘网络日志特征与攻击类型Y=f(X)之间的入侵函数模型。在介绍该算法之前,首先给出了函数挖掘成功率的定义,用于评价挖掘的性能。
定义9 设Y=f(X)为最优入侵函数模型、Opf为最优适应值、Maf为最大适应值,则入侵检测准确率Acc定义如下。
(3)
定义10 假设算法独立运行N次,有:
(4)
式中:FR-max[i]为第i个模型的最大适应值。
为简化计算,假设算法运行第i次是收敛的。因此,令算法收敛的个数为K(K≤N),则K为算法的收敛次数。本文令δ=0.01。
基于云计算的电力系统算法流程如图2所示。
图2 基于云计算的电力系统算法流程
改进的基因表达式编程入侵检测算法结合了基本的GEP算法和基于噪声发现的粗糙集算法的优点。基本GEP算法的基本原理,首先,对算法种群进行初始化,并评价种群中所有个体的适应度。在此基础上,按照一定的概率进行选择、变异、交叉等遗传操作,以再生新的种群、增加种群中个体的多样性、提高算法的全局收敛性。然后,对新的种群重新评估所有个体的适应值。最后,进行遗传操作,直到算法达到预定的终止条件。
首先,通过构造非线性最小二乘法,建立基于局部入侵检测函数模型的电力系统网络全局入侵检测函数模型。全局入侵检测函数模型表示如下:
(5)
式中:f(x1,x2,…,xm)为全局入侵检测模型;X=(x1,x2,…,xm)为网络日志特征属性;fi(X)为第i个节点的本地入侵检测模型;ai为第i个常数,i∈[1,n]。
全局入侵检测函数模型的目标函数是计算出一组常数ai≠0,i∈[1,n],使得G(a1,a2,…,an)的值为最小值。则有:
(6)
式中:yi为第i个网络日志的攻击类型值。
本文采用非线性最小二乘优化模型求解G(a1,a2,…,an)的最小值。
命题1G(a1,a2,…,an)存在唯一解。
证明:算法中每个计算节点的局部入侵检测函数模型fi(X)由4个算子(加法、减法、乘法、除法)组成。因此,全局入侵检测模型f(X)可以转化为1个多元线性函数模型。则有:
anfn(Xi)-yi]2
(7)
为找到常数集ai≠0,i∈[1,n],使得式(7)的值最小,则根据最小二乘法的原理,有:
j=1,2,…,n
(8)
简化式(8),有:
(9)
因此,a1,a2,…,an的线性方程描述为:
(10)
式(10)中,线性方程组的系数矩阵为实对称矩阵。根据矩阵的性质可知,实对称矩阵是正定矩阵,因而线性方程组中存在唯一解。综上分析,基于混合基因表达式编程和云的分布式入侵检测算法结构如图3所示。首先,将网络日志划分为一组键/值对,其中值包含算法的所有参数。然后,这些键/值对由多个映射任务并行执行。通过对结果进行分类和输入,进行并行处理,生成多个局部入侵检测模型,并合并到全局入侵检测模型。
图3 基于混合基因表达式编程和云的分布式入侵检测算法结构图
为了测试所提算法的性能和有效性,在实验室搭建了1个由12个节点组成的云计算平台。表1所示为云计算平台仿真环境。
表1 云计算平台仿真环境
仿真时数据集有 KddCup99标准数据集、实测数据集和KddCup99噪声数据集、NSL-KDD数据集这4类。云计算平台仿真参数如表2所示。其中,实测数据主要来自国家电网公司外部监控系统采集的网络安全日志。仿真时,将虚警率(false alarm rate,FAR)、检测准确率(detection accuracy rate,DAR)和平均耗时(average time-consumption,ATC)作为算法评价指标。
表2 云计算平台仿真参数
对4个数据集分别采用GEP、本文方法、遗传算法(genetic algorithm,GA)和遗传规划(genetic programming,GP)4种算法各运行10次。不同算法的FAR对比如表3所示。
表3 不同算法FAR对比结果
由表3可知,与GEP、GA和GP相比,本文方法的FAR最低,均值仅为0.042。对于相同的复杂数据集,本文方法引入基于粗糙集的含噪数据属性约简算法,可以大大降低入侵数据集的复杂度,从而提高算法的全局搜索能力。
表4所示为不同算法的DAR对比结果。
表4 不同算法DAR对比结果
对于KddCup 99、实测数据集、KddCup噪声数据集和NSL-KDD数据集,本文方法的DAR为93.5%、91.9%、93.5%和89.9%。与GEP、GA和GP相比,本文方法的平均DAR分别提高了1.28倍、1.27倍和1.45倍。
不同算法的ATC对比如表5所示。
表5 不同算法的ATC对比结果Tab.5 Comparison results ATC of different algorithms /s
本文以电力系统网络入侵检测为研究对象,构建了基于云计算和混合基因表达式编程的入侵检测方法,并对算法框架、运行模式和工作流程进行了设计。
未来可对小样本数据进行研究,如采样算法或人工注入样本,使各类数据趋于平衡,降低算法对小样本数据的敏感性。