来源:《中国电力》2024年第9期
引文:朱卫平, 汤奕, 魏兴慎, 等. 针对电力CPS数据驱动算法对抗攻击的防御方法[J]. 中国电力, 2024, 57(9): 32-43.
随着电力系统智能化的进程不断推进,新能源接入占比不断提升,新型电力系统已经逐渐发展为复杂的信息物理系统(cyber-physical system,CPS)。高速通信架构和广域量测系统的应用为基于系统运行数据的监测与调度提供了强力支撑。然而,大规模电力电子设备的接入为系统带来了数量庞大的强非线性量测/控制节点,由于高维状态/动作空间等问题导致系统的分析难度与控制复杂程度直线上升,依然应用传统的模型驱动方法可能会出现维度灾难、不连续可微函数不可解等问题。随着大数据等技术的持续发展,已有部分研究利用数据驱动算法,以大量仿真和实际运行数据为基础,通过聚类等方式提取关键特征与特定问题之间的关联进行分析,从而对解决系统控制优化问题提供指导。《中国电力》2024年第9期刊发了朱卫平等撰写的《针对电力CPS数据驱动算法对抗攻击的防御方法》一文。文章提出基于一次设备的数据驱动算法对抗攻击防御方法。该防御方法通过对电力CPS节点的量测数据进行异常数据检测、剔除与恢复,大大消减了对抗攻击向量可能带来的不良影响。基于数据驱动算法可解释性增强和鲁棒性提升,提出了基于生成式对抗网络(generative adversarial network,GAN)的漏洞挖掘优化方法和数据-知识融合模型,通过联合训练的方式来抵御对抗攻击。该模型经联合训练后能够在保证输出效率的同时提高算法的可解释性,即使存在攻击向量也能确保输出结果的准确性。
大规模电力电子设备的接入为系统引入了数量庞大的强非线性量测/控制节点,使得传统电力系统逐渐转变为电力信息物理系统(cyber-physical system,CPS),许多原本应用模型驱动方法解决的系统问题不得不因维度灾难等局限转而采取数据驱动算法进行分析。然而,数据驱动算法自身的缺陷为系统的安全稳定运行引入了新的风险,攻击者可以对其加以利用,发起可能引发系统停电甚至失稳的对抗攻击。针对电力CPS中数据驱动算法可能遭受的对抗攻击,从异常数据剔除与恢复、算法漏洞挖掘与优化、算法自身可解释性提升3个方面,提出了对应的防御方法:异常数据过滤器、基于生成式对抗网络(generative adversarial network,GAN)的漏洞挖掘与优化方法、数据-知识融合模型及其训练方法,并经算例分析验证了所提方法的有效性。在系统没有采取防护措施时,由对抗攻击的攻击向量引起的数据异常现象常常采取随机扰动、突发故障等伪装,从而难以与系统真实故障、用户随机性行为造成的数据异常进行有限区分。但由电力CPS的特性可知,各节点的量测数据变化具有一定的物理特性约束和时空关联性。考虑到攻击方获取的电力CPS结构信息和攻击资源的局限性,攻击者仅能选取部分节点进行攻击向量的注入,并且构造的攻击样本与真实数据必定存在一定差异,无法完全与真实数据进行拟合。因此,本文通过聚类法分析傅里叶变换后的频域节点量测数据,查找时空相关性弱的部分异常节点,从而实现对疑似包含攻击向量节点的对抗攻击检测。
将输入电力CPS数据驱动算法的量测数据矩阵D进行傅里叶变换,得到其可用于频域分析的幅值F为
式中:m为各节点对应的编号;n为对应的频域坐标;j为采样周期内的数据长度;D(m,i)为编号m的节点在i数据长度处的数值。基于电力CPS各节点量测数据的幅值,通过以下各式分析节点两两之间的关联性。式中:H为a、b两节点之间的相关性对称矩阵;Fa和Fb分别为a、b两节点处量测数据对应的频域幅值;和分别为对应幅值的平均值;F(a,i)和F(b,i)分别为a、b两节点在i数据长度处的幅值。基于相关性矩阵H,通过聚类迭代算法对各节点的数据进行分析,逐渐聚合相关性较强的节点。在迭代的初始时刻,各节点的量测数据各自为1个数据簇,记为z1∼zk,在迭代的第L步中,选择当前数据簇中相关性最高的2个数据簇x和y进行聚合,并产生新的数据簇记为zk+L,将当前步的数据簇集合记为ZL。再将第k+L行和第k+L列添加到相关性矩阵H中,并通过式(7)计算当前数据簇zk+L与剩余数据簇zr两两之间的相关性。式中:Nk+L和Nr分别为数据簇zk+L和zr含有的子数据簇数。由于攻击方的攻击资源限制,同时遭受攻击者篡改数据的节点数量超过一半的可能性极低。当迭代算法进行到第L−1步时,数据簇可被分为两类。聚合后节点数量较少的一类即为疑似被攻击者篡改数据后的节点,标记为A=1;另一类节点数量较多的节点即为未受网络攻击的节点,标记为A=0。根据聚类算法最后的结果z和相关性矩阵H,通过式(8)计算各聚类树的表型相关性,检验数据簇聚合后的结果是否能够保留各节点数据的特异性。式中:C为所有节点数据间的表型相关性,其值越趋近1则差异越大,即数据被篡改可能性越大。该差异度量值必定存在某一临界值,当C>Cmin时,系统中各节点的量测数据中含有攻击向量;反之则不含。Cmin的具体数值需要依据真实历史数据或仿真运行数据求取,并通过式(11)求出最优Cmin,得出异常数据检测攻击向量的关键指标。式中:Pα为正常样本被误判为异常的概率;Sα为正常样本的数量;Sα,C>Cmin为正常样本被误判为异常的数量;Pβ为异常样本被误判为正常的概率;Sβ为异常样本的数量;Sβ,C⩽Cmin为异常样本被误判为正常的数量。在实际分析时,基于系统的历史运行或仿真实验中的各节点量测数据,通过以上聚类迭代算法的结果进行最优Cmin求解,即可根据待测数据簇C>Cmin判断该数据为含有攻击向量的异常数据,从而实现对攻击向量的检测。为了剔除隐含在系统节点量测数据中的攻击向量,降低其对数据驱动算法带来的不良影响,本文设计了一种输入数据过滤方案,如图1所示。
Fig.1 Structure of input data filtering scheme
1.2.1 重要特征和重要节点的数据提取
首先根据系统中各节点的量测数据,进行重要特征和重要节点的筛选,通过下列各式得到重要特征和重要节点的相应序列。
式中:χT2为重要特征卡方检验,其值越小表示该特征越关键;kT为各特征的对应编号;l为样本的标签;S为样本的总数;为第i个样本中具有特征kT的m个量测数据之和;ET为特征kT在l标签下的期望;Sl为l标签下的样本总数;为l标签下具有特征kT的m个量测数据之和;QT为重要特征关键程度序列,按照χT2的值从小到大进行排列;sort(⋅)为排序函数;QRT为重要特征序列,在QT前kKT个关键特征中随机选取kRT个特征随机排序生成;random(⋅)为随机函数。其次依据重要特征序列QRT和重要节点序列QRJ,通过下列各式对量测数据D进行筛选。式中:DQ为选取的重要特征和重要节点下的量测数据;DV(i)为将空缺数值用临近重要特征数据平均值补充后仅含重要特征和重要节点的量测数据;DRT(i)为选取的第i个特征下的所有节点量测数据。根据数据簇聚类算法结果和数据差异度临界值Cmin,对提取的重要特征和重要节点量测数据DV(i)进行异常数据过滤,剔除其中可能包含的攻击向量。异常数据剔除算法为式中:DW(i)为异常数据;DR为将攻击向量剔除后的系统节点量测数据。由于剔除了异常数据,部分节点的量测数据缺失,考虑临近节点的时空相关性,基于临近节点数据的比例关系对缺失数据进行恢复。缺失数据恢复算法为式中:D∗(i)为恢复后的数据;DR(i)为剔除攻击向量后的部分缺失数据;A(i)为是否遭受攻击的标记;B(i)为节点i的临近节点矩阵。在实际应用中,将系统的历史运行或仿真实验中的各节点量测数据输入数据过滤器,即可根据特征和节点的重要程度,对隐含对抗攻击向量的异常数据进行剔除,并根据邻近节点数据对剔除后的缺失数据进行恢复,从而有效降低异常数据对数据驱动算法带来的不良影响。
为了评估数据驱动算法抵御对抗攻击的能力,本文提出了一种基于随机扰动的数据驱动算法对抗攻击鲁棒性评价指标σ。该评价指标通过量化随机扰动对数据驱动算法输出结果带来的不良影响,间接表征被测算法的对抗攻击鲁棒性。σ数值越小代表该数据驱动算法在对抗攻击下的鲁棒性越强,可表示为
式中:S为排序后选取的样本数;sort(⋅)为从大到小的排序函数;Di和Δi分别为第i个样本中某个特征的量测数据和随机扰动;fmax和fmin分别为算法输出结果的最大值和最小值;Dmax和Dmin分别为算法输入数据的最大值和最小值。为了提升数据驱动算法在对抗攻击下的鲁棒性,本文提出了一种基于GAN的漏洞挖掘与优化方法,其结构示意如图2所示。
Fig.2 The GAN-based vulnerability mining and optimization method
该方法将系统节点的量测数据D作为GAN网络中生成器的输入,利用生成器G输出含有攻击向量的对抗攻击样本数据D′=G(D),并将攻击样本输入数据驱动算法,使得算法输出攻击样本下的结果y′=f(D′)。此外,通过L2范数约束对抗攻击样本下的输出y′与正常样本下的输出y之间的偏差,从而防止过拟合现象的发生,同时提升模型的泛化能力。
GAN网络的训练目标为生成器G生成的攻击样本对数据驱动算法造成的影响尽可能大,而数据驱动算法的训练目标为攻击样本下输出结果的偏移量尽可能小,通过二者之间的博弈,提升算法在对抗攻击下的防御能力。
根据生成器的训练目标,其损失函数LG为
式中:表示求期望;用于表征数据驱动算法在对抗攻击样本下的输出结果与正常样本输出结果之间的差值。式中:λ1和λ2为常数系数,在保证算法对2种数据都能准确辨识,防止过拟合现象发生的同时,平衡算法对2种数据的训练效果。在实际应用中,通过对抗攻击样本生成器和数据驱动算法输出结果优化的联合迭代训练,能够对数据驱动算法中的隐含漏洞进行挖掘优化,从而使得数据驱动算法自身更加完备,提升其在对抗攻击下的鲁棒性。
为了防御针对数据驱动算法的对抗攻击,必须从提升数据驱动算法自身的可解释性这一根源角度增强其在对抗攻击下的防御能力。为了消减对抗攻击对数据驱动算法带来的不良影响,需要算法在输入数据隐含攻击向量的情况下仍能持有一定的鲁棒性,即算法在正常样本下的输出和攻击样本下的输出之间的偏差小于ε,即式中:f(⋅)为数据驱动算法的输出结果;Δ为攻击向量叠加的扰动。按照以上防御要求,结合前述分析,本文提出一种基于数据-知识融合的数据驱动算法改进模型,其中知识驱动模块利用电力CPS物理侧的数学约束关系和先验知识,对算法输入的系统节点量测数据进行修正,提高融合模型的可解释性。此外,知识驱动模块的强鲁棒性进一步提升了融合模型的鲁棒性,使得融合模型中的数据驱动模块在对抗攻击下输出的结果依然正常。假设输入数据驱动算法的数据D=[D1,D2,⋯,Dn]T∈Rn,对应数据驱动算法的输出结果y∈R与输入量测数据的映射可表示为f:Rn→R,并且满足y=f(D)。在所提出的数据-知识融合模型中,知识驱动部分表示为y=g(D),数据驱动部分表示为y=h(D),二者通过串联方式连接。数据-知识融合模型的具体架构如图3所示。在融合模型架构内,输入数据首先输入知识驱动模块,将电力CPS内的物理特性耦合到输入数据中,再将新数据输入数据驱动模块,以消减对抗攻击对数据驱动算法的输出结果带来的不良影响。该融合模型可表示为y=h(D⊕g(D)),⊕运算表示将知识驱动模块g(D)的输出结果归一化,并映射到与输入数据D相同维度中。
Fig.3 Architecture of the data knowledge fusion model
令U(D)=h(D⊕g(D)),当g(D)为线性函数时,U(D)=h(D),融合模型与数据驱动模型具有相同的特征;而当h(D)仅含全连接层时,U(D)=g(D),融合模型与知识驱动模型具有相同的特征。由此可知,通过改变数据-知识融合模型中2个模块的复杂程度,可以使得融合模型更加偏向于具有某类特征。在实际应用中,为了保证模型的计算速率,往往应用简化后的知识驱动模型,导致融合模型具有的特性一般偏向于数据驱动模块。因此,基于对抗攻击对数据驱动模块造成的影响,提出一种以提升数据驱动模块在对抗攻击下的鲁棒性为目标的训练方法。该训练方法结合前述的漏洞挖掘优化方法进行训练,如图4所示,通过交替迭代更新攻击样本生成器G(D)和所提融合模型的损失函数,提升融合模型的数据驱动模块在对抗攻击样本下的输出结果准确率。
Fig.4 Structure of training method for the GAN-based data knowledge fusion model
步骤1:根据输入数据D的维度,设置攻击样本生成器G和数据驱动模块h的层级结构,并将网络层级间的权重θG和θh设置为随机初始值,设置攻击样本生成器和融合模型的最大损失εG和εh,学习率αG和αh。设置GAN的最大迭代训练次数MGAN、单次迭代过程中各模型的最大轮训练次数MTrain,以及知识驱动模块g的参数和攻击样本生成器G在边界条件下的叠加扰动最大幅值T。
步骤2:将待测数据集随机分为训练数据集(XS,YS)和测试数据集(XT,YT),其中,训练数据集用于更新神经网络的层级权重等参数,测试数据集用于评估模型的应用效果。
步骤3:初始化训练融合模型。设置式(28)中的系数λ1=0,λ2=1。从训练集中得到样本m的待测数据Dm,将数据输入融合模型中。计算模型当下的损失函数Lf和梯度∇f,从而按式(31)更新模型层级权重参数θh。循环这一步骤,直到损失函数Lf⩽εh或循环次数if1⩾MTrain时结束。
步骤4:训练攻击样本生成器。从训练集中得到样本n的待测数据Dn,将数据输入攻击样本生成器G中,生成攻击样本数据D′n。将D′n输入融合模型中,输出其在攻击样本下的结果y′。计算攻击样本生成器的损失函数LG和梯度∇G,从而按式(32)更新生成器的层级权重参数θG。循环这一步骤,直到损失函数LG⩽εG或循环次数iG⩾MTrain时结束。步骤5:训练数据-知识融合模型。对式(28)中的系数λ1和λ2重新预设适宜的值,并将步骤4中最后一次迭代获得的攻击样本数据D′n输入融合模型中,输出其在攻击样本下的结果y′。计算融合模型的损失函数Lf和梯度∇f,根据式(31)更新模型的层级权重参数θh。循环这一步骤,直到损失函数Lf⩽εh或循环次数if2⩾MTrain时结束。步骤6:重复执行步骤4和步骤5,直到攻击样本生成器和融合模型的层级权重参数更新至最优,即iG=if2=1,或训练次数iGAN⩾MGAN时结束。训练结束后,即可得到对抗攻击防御能力较强的融合模型。
为了验证本文所提方法的有效性,根据新英格兰39节点系统,对基于数据驱动的故障极限切除时间(critical clearing time,CCT)预测算法和电力CPS故障后的暂态稳定预测算法进行攻击场景构建。根据文献[29]提供的数据设置系统的发电机、变压器、负荷、线路等参数,39节点系统拓扑如图5所示,其中包括母线39条、负荷19个、发电机10台,并在各个发电机节点部署量测单元,编号M1~M10,用于测量各发电机节点的电压U、功角δ、有功功率P、无功功率Q。
Fig.5 Topology structure of a 39-node system with distributed power sources
此场景下系统应用的数据驱动算法是利用极限学习机(extreme learning machine,ELM)对CCT进行预测,其输入数据为故障后各发电机的量测数据,输出结果为预测时间,构建的攻击方式为入侵通信系统向DG的量测节点注入攻击样本。利用文献[30]中提供的标准数据集,其中包括故障后的发电机节点量测数据和简化后的综合扩展等面积法则(integrated extended equal area criterion,IEEAC)计算得到的CCT值,可以构建一个具有283个隐藏节点的ELM,在训练完成后,经验证可以实现对CCT的准确预测。此场景下的对抗攻击针对训练后的ELM,构造扰动最大幅值限制为原始数据值5%的攻击样本输入ELM,通过篡改发电机节点的量测数据实施攻击。CCT的标准数据集中正常值为200~800 ms,因此对抗攻击的攻击样本需对输出结果造成至少40 ms的偏差。由于信息侧直接注入的攻击样本防御难度更大,此场景采取的防御策略为数据-知识融合模型。基于用户侧分布式电源的物理侧对抗攻击场景下各节点上均部署量测单元,用于监测运行电压U。分析数据由仿真实验生成,仿真中各负载数值的变化范围为初始值的80%~120%,任意线路的20%~80%处都可能发生三相短路故障,故障的持续时间为0.10~0.35 s。实验中通过蒙特卡洛方法随机生成2000组样本,并同时根据仿真结果对产生的各样本设置标签为系统稳定或失稳。此场景下系统的数据驱动算法是基于AlexNet对系统暂态稳定进行预测,其输入数据为故障发生后100 ms内系统的各节点量测数据,输出结果为预测系统是否能够维持稳定。从上述实验产生的2000组样本中随机选择80%数据作为训练集,20%数据作为测试集,最终该算法的预测准确率可达98%,可以实现系统暂态稳定的有效预测。此场景下的对抗攻击针对训练后的AlexNet,攻击者对系统中的28、29和36节点上的分布式电源量测数据进行篡改,所需的攻击样本由攻击样本生成器生成。由于物理侧隐含的攻击行为更为隐蔽,此处采取异常数据剔除恢复方法进行防御。从分布式电源对抗攻击场景中由实验产生的数据中随机抽取600组样本,通过攻击样本生成器生成含攻击向量的异常样本,并将其输入AlexNet中得到异常样本下的输出结果。统计正常数据与异常样本数据的表型相关性C,如图6 a)所示,以及被检测为可能被入侵的分布式电源节点数量,如图6 b)所示。
Fig.6 Comparison of indicators between normal data and abnormal sample data
由统计可得,异常样本的数据表型相关性C主要落在区间(0.94, 1)之中,为了在最大范围内对异常样本进行检测,本文采取较为激进的判别临界值,根据算法优化后取Cmin=0.86。根据C>Cmin对异常样本数据进行检测,并将检测为正常样本数据的节点被入侵数量置0,检测结果如图7所示。
Fig.7 Attack sample detection results
由统计可得,在能够确定被入侵的分布式电源节点位置的同时,异常样本数据的检出率为92.5%。虽然部分正常数据被误判为异常样本,但其对应的节点仅有少数被判断为遭到入侵,将这些被误判的数据修正后不会影响原数据驱动算法输出的准确性。基于分布式电源对抗攻击场景中实验产生的2000组数据展开对抗攻击,对比系统应用不同数据驱动算法进行暂态稳定预测时,在有无攻击和是否接入输入数据过滤器对预测结果的影响,结果如表1所示。
Table 1 Comparison of output accuracy of data-driven algorithms由表1可看出:在部署过滤器之前,对抗攻击对所应用的数据驱动预测算法准确率都造成了大幅度的不良影响;在部署过滤器之后,虽然在无攻击情况下会导致算法的准确率略微下降,但在有攻击情况下能够保证算法的准确率不受影响。对比结果说明,输入数据过滤器能够有效大幅降低对抗攻击给数据驱动算法带来的不良影响。在针对CCT算法的对抗攻击场景中,在基于ELM的预测算法前串联基于集成扩展等面积法(integrated extend area criterion,IEEAC)的知识驱动模型,从而构建数据-知识融合模型。为了验证在不同数据驱动算法下的融合模型鲁棒性提升的效果,另外选取基于AlexNet和SqueezeNet作为数据驱动模块与IEEAC构建融合模型,分别计算对抗攻击下的数据驱动算法、未训练完成的数据-知识融合模型和训练结束后的完备融合模型鲁棒性指标,结果如表2所示。
Table 2 Robustness metrics of different models under adversarial attacks
由表2结果可以看出,数据-知识融合模型比数据驱动算法具有更高的鲁棒性,并且融合模型的数据驱动模块复杂程度越高,其在对抗攻击下的鲁棒性越高。结合提出的漏洞挖掘算法通过博弈迭代训练之后,完备的融合模型具有更高的鲁棒性。假设攻击者攻击资源不受限,基于攻击样本生成器生成攻击样本,并注入各模型中,计算对抗攻击给各模型输出结果带来的偏移,结果如图8所示。
Fig.8 The impact of adversarial attacks on different models
由图8的对比结果可知,对于数据驱动算法,在对抗攻击下CCT预测遭受的影响较大,各类算法的偏移量达到100 ms左右。对于初始融合模型,在对抗攻击下CCT预测遭受的影响有所降低,各类算法的偏移量达到80 ms左右。以上结果说明,将原始数据驱动算法构造为数据-知识融合模型后,模型的可解释性增强,鲁棒性也随之增强,但数据驱动模块自身仍然存在漏洞,攻击者仍能够据此生成攻击样本,实施对抗攻击。而结合漏洞挖掘算法对初始融合模型完成训练的完备融合模型,在对抗攻击下CCT预测遭受的影响大幅降低,各类算法的偏移量为30 ms左右。以上结果说明,通过漏洞挖掘优化方法和提出的数据-知识融合模型训练方法,可以有效提升模型的可解释性,使其在对抗攻击下仍能保证输出结果的准确率。统计攻击者对不同模型发起对抗攻击时所需的攻击资源,结果如图9所示。
Fig.9 The situation of attacked nodes in different models under adversarial attacks
由图9的对比结果可知,对于数据驱动算法,攻击者仅需篡改3个节点的量测数据即可达到攻击预期效果,并且节点G6、G8、G9、G10的数据更容易被篡改,表明数据驱动模块中以上节点的数据处理过程中存在漏洞,攻击者可以据此发起效果显著的对抗攻击。而对于完备的融合模型,攻击者必须同时篡改多个节点的量测数据才可能达到预期攻击效果,并且在攻击IEEAC+AlexNet和IEEAC+SqueezeNet这2个融合模型时,攻击者甚至必须同时对10个节点的数据进行篡改,才有可能成功实施攻击。因此,在攻击者攻击资源有限时,仅对系统中的某几个节点的量测数据进行篡改,无法对完备融合模型的输出结果进行干扰。以上分析验证了本文提出的数据-知识融合模型训练方法和漏洞挖掘方法在防御对抗攻击时的有效性。
电力CPS中应用的数据驱动算法遭受对抗攻击并输出错误结果的本质在于算法的可解释性偏低、数据分类的边界模糊。攻击者对算法中隐含的漏洞加以利用,即可对系统实施后果严重的对抗攻击。本文从异常数据剔除与恢复、算法漏洞挖掘与优化、增强模型鲁棒性和可解释性3个方面,对数据驱动算法可能受到的对抗攻击进行防御。针对疑似隐含攻击样本的量测数据,本文提出基于聚类算法的异常数据检测方法,并构建了异常数据过滤器,能够对输入的量测数据进行异常数据剔除和恢复。考虑到对抗攻击为算法输出结果带来的不良影响,本文提出对抗攻击下算法的鲁棒性评价指标,并提出了基于GAN的算法漏洞挖掘与优化方法,能够有效提高算法在对抗攻击下的鲁棒性。针对数据驱动算法可解释性差的缺陷,提出数据-知识融合模型及其训练方法,利用知识驱动模块和漏洞挖掘与优化方法提高融合模型的可解释性和鲁棒性,使得算法在对抗攻击样本下仍能保证输出准确结果。
注:本文内容呈现略有调整,如需要请查看原文。
根据国家版权局最新规定,纸媒、网站、微博、微信公众号转载、摘编《中国电力》编辑部的作品,转载时要包含本微信号名称、二维码等关键信息,在文首注明《中国电力》原创。个人请按本微信原文转发、分享。欢迎大家转载分享。