基于对抗性自动编码器的城市配电网虚假数据注入攻击检测
2024-04-07徐俊俊王晓兵
常 颢,徐俊俊,王晓兵,周 宪
(1.国网江苏省电力有限公司泰州供电分公司,江苏 泰州 225300;2.南京邮电大学 自动化学院/人工智能学院,江苏 南京 210023)
0 引言
在电动汽车迅猛发展、分布式电源广泛接入、相量测量单元(phasor measurement unit,PMU)等新型量测传感大规模运用背景下,城市配电网运行与控制逐步向低碳化和智能化演变,但系统安全性也易受到黑客攻击等潜在威胁[1]。其中,虚假数据注入攻击[2](false data injection attacks,FDIAs)被认为是影响城市配电网安全稳定运行的重要因素之一,通过篡改系统量测数据,并利用系统监测漏洞达到破坏电网信息传输与利用的目的。FDIAs具有极强的隐蔽性、破坏性,是电网安全运行的重大威胁[3]。
自从文献[4]提出FDIAs 概念,国内外学者已经对FDIAs 的检测方法开展了较为翔实的分析与研究。研究主要分为两个方向:基于模型的检测算法和数据驱动[5]的检测算法。文献[6]提出一个基于多维数据关联和智能分析模型的高级网络安全分析框架,应对城市配电网的FDIAs 问题;文献[7]提出一种基于长短期记忆循环神经网络的攻击检测模型,应对城市配电网复杂动态行为背景下的FDIAs行为;文献[8]提出将无迹卡尔曼滤波与基于加权最小二乘法的状态估计算法结合,实时检测估计值之间的差异,从而识别虚假数据攻击。然而上述方法均需要系统运行状态、拓扑结构、量测数据。随着信息物理系统的发展,量测数据规模增大、拓扑结构复杂化,上述方法的适用性降低,FDIAs 的检测效率下降[9]。
随着城市配电网与信息物理系统的发展,系统接入大量量测装置,收集储存大量量测数据。机器学习和数据驱动技术具有强大的信息提取能力和灵活的可拓展性,可以广泛应用于城市配电网的系统运行[10]。目前,提出多种基于机器学习,包括:深度信念网络(deep belief network,DBN),支持向量机(support vector machine,SVM)和深度神经网络(deep neural network,DNN)的配电网系统FDIAs 识别,检测与防御的技术。文献[11]提出一种基于灰狼优化多隐层极限学习机的电力信息物理系统FDIAs 检测方法,通过将攻击检测问题转化为多标签二分类问题,解决极限学习机特征表达能力有限的问题;文献[12]提出一种利用自动编码器检测FDIAs 的方法,具备坏数据检测与剔除能力;文献[13]提出了一种基于自动编码器神经网络的检测方法,克服对历史量测数据的过度依赖;文献[14]提出一个基于单调注意力的自动编码器,实现FDIAs 检测的无监督学习;文献[15]提出一种基于DBN 的FDIAs 检测方法,利用无监督学习为网络提供初始权重,通过反向传播算法对模型参数进行调整。文献[16]提出一种增强型的DBN 对微电网的攻击进行检测与缓解,通过使用分层微电网架构,在检测与缓解上更加灵活和快速。文献[17]提出一种基于数据驱动的机器学习方法,用于检测系统中的FDIAs,通过使用多个分类器,并进一步分类单个分类器的决策,优化检测质量与效率。虽然数据驱动的检测算法能摆脱系统本身的桎梏,依靠量测数据即可完成FDIAs 检测,但实际电网多为交流电力系统,这些在直流系统上执行的算法在运用时,容易受电力系统复杂性影响。为了克服在交流系统中,难以检测不可观测的FDIAs的问题,文献[18]提出使用小波变换和DNN 技术,分析捕获异常测量和正常测量的不一致,判断是否受到攻击。但是,文献[18]需要在连续采样中使用有标签的测量,实行难度高,计算负担大。现在,大多数用于FDIAs 检测的机器学习算法都是有监督的,而测试的异常数据不同于训练期间的标记数据,昂贵的标记成本导致无法将量测数据全部标记,并且,实际系统中无标记的数据规模远大于有标记数据,对无标记数据的忽略,会导致有效信息的丢失,甚至导致检测失败。
现阶段,针对FDIAs 检测的研究大多为输电系统方面,配电系统的相关研究较少,如何处理三相不平衡配电网的FDIAs 检测问题,如何解决基于模型的检测方法可扩展性差的问题,如何在少量标记数据、较低测量精度的情况下实现FDIAs 检测,是本文要研究的问题。为此,针对城市配电网系统受到FDIAs 的情况,提出一种基于对抗性自动编码器的配电网FDIAs 检测方法,可以根据实时的数据变化进行及时更新;且所提检测方法为半监督模式,只需要少量样本数据作为驱动,适用于拓扑变化的场景,系统成本低廉。随着城市配电网发展,量测装置部署量增加,可以更加高效地对实时更新的拓扑数据进行采集,并对对虚假数据注入攻击做出快速检测。
1 城市配电网状态估计
状态估计作为配电网态势感知理论体系的关键技术,是城市配电网实现优化调度的前提,为负荷分配等重要决策提供数据支持[19]。
在已知量测,网络参数和结线状态的前提下,量测向量和状态向量的关系为[20]
式中:x为状态向量;ν为m维量测误差;H为量测雅可比矩阵;z为量测向量。量测向量包括支路三相有功功率、无功功率和电流幅值,节点三相电压幅值和相角,相连支路上的三相电流幅值和相角等实时量测数据,以及常规负荷功率、光伏发电系统出力、风力发电系统出力等伪量测数据。
基于加权最小二乘法可以建立目标函数J(x)[21]为
式中:R为量测误差的方差矩阵,在量测误差服从均值为0 的正态分布的背景下,通过加权最小二乘法,可以求得系统状态变量x的最优估计值x^[22]。
虚假数据注入攻击主要利用状态估计的不良数据检测机制存在的漏洞有针对性地构建攻击向量,从而破坏配电网量测数据的真实性和完整性,因此,不良数据检测环节尤为重要[23]。
通过不良数据检测,可以排除由于系统采样误差导致的坏数据,提高系统状态估计的稳定性。
采用基于残差协方差矩阵的归一化检验[24]进行不良数据检测,即为:
当最大归一化残差maxr~ 超过设定范围时,此时系统存在不良数据。
2 虚假数据注入攻击建模与检测
2.1 虚假数据注入攻击建模
攻击者通过事先了解系统参数,搭建攻击向量a,并将虚假数据注入系统中。受到攻击的系统量测向量za为
此时,系统状态变量最优估计值为
式中:c为任意常数向量。此时,状态估计方程为
由此可知攻击后的系统残差矩阵ra可计算为
如果虚假数据注入攻击向量a满足
将式(11)代入式(10)可得
由式(12)可知,当FDIAs 向量a满足式(11)时,攻击前后系统残差一致,逃避系统的不良数据检测机制,成功篡改了系统的状态估计结果。
2.2 对抗性自动编码器
对抗性自动编码器(adversarial autoencoder,AAE)结合了自动编码器和生成对抗网络,AAE 将判别器网络添加在自动编码器的编码器和解码器之间[25]。AAE 的训练阶段分为两个步骤:
1)编码器与解码器组成自动编码器进行工作,最小化重构误差;
2)编码器与判别器组成生成对抗网络进行工作,编码器作为生成器,二者互相博弈,直至达到纳什平衡。
2.2.1 自动编码器
自动编码器由编码器和解码器构成,广泛运用于高维数据的降维和相关数据的解码[26]。编码器与解码器由神经网络构成,编码器将输入数据压缩为低维,解码器将低维升维为与原数据相似的数据。自动编码器的结构如图1 所示,由于映射的存在,数据输入与输出之间存在误差,通过训练,能减少该误差。
图1 自动编码器结构Fig.1 Structure diagram of autoencoder
在自动编码器中,输入C=[cij]m×m,ci∈k m×1为相似度矩阵C中i节点的对应向量,作为第i个输入向量输出至自动编码器。当ci输入b个神经元的编码层后,利用式(13)可得隐藏层特征ηi∈kb。
式中:af为非线性激活函数;Y∈k b×m为权重矩阵;o∈k b×1为编码层的偏置向量;Encoding 为编码器函数。
解码器通过式(14)处理隐藏层特征ηi,得到输出数据∈km×1。
式中:ag为解码器的激活函数=YT∈k m×b为自动编码器的权重矩阵;o^ ∈k m×1为解码层的偏置向量;Decoding 为解码器函数。
当得到数据的输入ci,输出ci′后,通过式(15)降低两者之间的差别[27]。
2.2.2 生成对抗网络
生成对抗网络由生成器和判别器组成,生成器、判别器均为神经网络,两者互为博弈关系[28]。在运行过程中,生成器负责生成足够真实的新数据,使判别器无法分辨真假,判别器负责判断数据是否为生成数据,两者训练同时进行,直至达到纳什平衡。
由于标记成本较高,实际电力系统中可用于训练标记数据较少,通过生成对抗网络,可生成足量合格数据,用以训练。
2.3 攻击检测方法
提出一种基于对抗性自动编码器的三相配电网FDIAs 检测方法,如图2 所示。
图2 基于对抗性自动编码器的三相配电网FDIAs检测方法Fig.2 Detection method of FDIAs in three-phase distribution network based on adversative autoencoder
首先读取网络参数h(x),采集量测数据,得到量测数据矢量z,进行配电系统状态估计;然后针对状态向量x开展残差检测,排除部分FDIAs;此时使用少量标记量测数据,按照式(16)—式(22)的方式对AAE 进行训练,得到合适的编码器,编码器生成足量数据训练模型,最后,将状态向量输入FDIAs 检测器,判断是否受到攻击。
使用对抗性自动编码器提取正常节点和受攻击节点到其他节点的特征以及相到相的特征,再检测这些特征,判断网络是否受到攻击。另外为描述方便,定义输入为C,是U个标记样本{(b1,s1),(b2,s2),…,(bU,sU)}和V个未标记样本{bU+1,bU+2,…,bU+V}的量测数据集,sU=0或1 是第U组的标记,U远小于V;标记样本的隐层输入为Dl,对应未标记样本的隐层输入为Dn;标记样本的隐层输出为De,对应未标记样本的隐层输出为Dq;半监督学习中的编码器和解码器分别为tτ(Dn,D∣lC) 和uτ′(C|Dn,Dl);标记样本的隐层输出De的生成样本为,未标记样本的隐层输出Dq的生成样本为Dq′,假设先验分布u(De)和u(Dq)符合高斯分布,后验分布t(De)和t(Dq)符合高斯分布,判别器的标记数据和未标记数据的输入数据分别表示为Kcat和Kgauss。
AAE 的训练过程可以分成3 个阶段,如图3 所示。在训练期间,使用Adamax 算法计算,优化每个参数的自适应学习率。AAE 的训练样本由标记和未标记的输入组成,由量测数据决定。标记的输入是已知真实值的量测值,而未标记的输入是真实值未知的量测值。AAE 选取量测数据构成的量测向量作为输入,量测向量考虑配电网的电压和电流数据、功率和频率数据以及电能质量数据等。
图3 AAE的训练过程Fig.3 AAE training process
1)AAE 作为自动编码器运行,通过训练编码器和解码器,最小化输入C的重构损失JH为
式中:τ、τ′为在训练过程中利用随机梯度下降进行的反向传播;Li为输入样本的数量;C′为C映射回输入空间的输入。
2)判别器对标记数据的输入数据Kcat和未标记数据的输入数据Kgauss进行分类,将数据分为真实数据和生成的样本数据。输入数据Kcat的损失函数为
式中:G为生成器;A(*)为定义的函数为的数学期望,其中为标记样本的隐层输出De的生成样本符合二维分布;为标记样本的隐层输出De的数学期望。
生成器的损失函数为
随后,标记数据的双方博弈为
式中:EDe~u(De)为标记样本先验分布u(De) 的数学期望。
同理,未标记数据的双方博弈为
3)对抗性自动编码器使用标记数据更新编码器网络。将最小化交叉熵JR作为监督成本,训练标记数据的编码器。
式中:u(De)为阶段2 中De的后验分布;ui(C) 为输入C的数据分布;t(Dl)为标记样本隐层输出Dl的后验分布;Et(De)为后验分布t(De)的数学期望。
3 案例分析
3.1 系统参数设置
使用IEEE 13 节点(母线)和123 节点(母线)配电系统验证算法的优越性。系统以三相不平衡为前提,添加多种分布式电源,符合城市配电网的使用场景,系统的具体参数可见文献[29]。在MATLAB 中运行潮流程序和状态估计,在Python 环境中运行对抗性自动编码器。IEEE 13 总线网络及量测布置,如图4 所示,IEEE 123 总线网络及量测布置,如图5 所示,节点网络中布置微型同步相量测量单元(microsynchronous phasor measurement unit,μPMU),数据采集与监视控制系统(supervisory control and data acquisition,SCADA)。
图4 IEEE13节点配电网络及量测布置Fig.4 IEEE 13-node distribution network and measurement layout
图5 IEEE123节点配电网络及量测布置Fig.5 IEEE 123-node distribution network and measurement layout
对抗性自动编码器的输入来自系统中量测装置的采集数据,模拟3 000 次系统遭受不可观测的FDIAs 的测量结果,选取2 400 次作为训练数据集,其余600 次作为评估组,另外,为体现半监督的优越性,选择各500 组数据将其标记为安全数据及受攻击数据,并输入对抗性自动编码器中训练。
3.2 对抗性自动编码器参数设置
对抗性自动编码器的编码层,解码层,判别层各设为两层,每层设置1 000 个带有ReLU 激活函数的隐藏单元,输出层设置sigmoid 激活函数,小批量训练的数量设为60,学习率设为0.000 1,epoch 数设为500。
3.3 性能评估
为验证FDIAs 检测方法在IEEE 13 节点和IEEE 123 节点等不同配电网的性能,基于Intel(R)Core(TM)i5-12400F CPU@4.0 GHz 平台开展测试。测试结果如图6—图9 所示,所提方法在IEEE 13 节点和123 节点配电网遭受FDIAs 时表现较好,IEEE 13 节点配电网系统训练准确度达到了96.8%以上,IEEE 123 节点配电网系统训练准确度达到98.5%以上;另外,此方法的检测精度在13 总线配电网系统中为97%,在IEEE 123 节点配电网系统为98.2%,本文方法在IEEE 13 节点和123 节点配电系统中检测所需时间分别为8.7 ms 和13.8 ms。
图6 训练准确性测试结果Fig.6 Results of training accuracy
图7 平均检测时间测试结果Fig.7 Results of average test time
图8 检测精度测试结果Fig.8 Results of test accuracy
图9 网络训练时间测试结果Fig.9 Results of network training time
3.4 不同检测算法对比
为体现本文方法的优越性,现与其他数据驱动的检测算法进行对比,方法1 是本文方法,方法2 是人工神经网络(artificial neural network,ANN),方法3 是支持向量机(support vector machine,SVM)。本文噪声由电压向量、电流向量、复功率组成,且符合高斯分布。图10 为3 种方法在不同的噪声环境下的检测精度对比。
图10 检测精度横向对比Fig.10 Comparison of detection accuracy
由图10 可知,本文方法在不同的噪声环境下,均取得了较好的检测精度,通过使用AEE,在少量标记数据的基础上,即可训练出合适的编码器,缓解了高昂的标记成本,而方法3 因为使用大量未标记数据进行训练,分类性能大打折扣,检测效果较差。
3.5 敏感性分析
为验证本文方法在使用少量标记数据下的攻击检测性能,在13 总线系统的训练过程中使用不同数量的标记数据。图11 为不同标记数据量场景下的检测精度。由图11 可知,随着标记数据使用数量的增加,检测精度随之增加,而当使用300 组标记数据时,系统的检测精度为91.3%,上述数据表明系统在少量标记数据的基础上,仍拥有较好的检测精度,且随着标记数据使用量的上升,检测精度随之上升。
图11 不同标记数据量场景下的检测精度Fig.11 Detection accuracy in different labeled data volume scenarios
4 结束语
提出一种基于对抗性自动编码器的城市配电网虚假数据注入攻击检测算法。该方法只需要少量标记数据即可训练出效果较好的编码器,大大降低了标记成本。与其他检测算法相比,所提方法具有较好的鲁棒性,较高的检测精度,对系统拓扑结构依赖小,仅需要少量标记数据。
未来,随着多种分布式电源的更高比例接入,分布式电源不同的渗透率会导致配电系统中系统运行特性持续动态变化,针对FDIAs 检测将不再是一个二元分类问题,如何提高所提方法的检测精度将是下一步重点关注问题之一。