电力系统的虚假数据注入攻击和MTD系统研究(Matlab代码实现)

👨‍🎓个人主页

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

智能电网的深度融合,提升了电网的整体调度能力和效率。但伴随5G、人工智能和大量终端设备接入,信息物理融合系统(Cyber-Physical System,CPS)网络的安全风险也在不断增加。由于CPS由感知层、传输层和应用层构成,所以针对CPS的攻击类型复杂多样,如虚假数据注入攻击(False Data Injection Attacks,FDIA) 、拒绝服务攻击[2] 、传感器欺骗攻击[3] 、重放攻击[4] 以及恶意软 件访问隐私数据攻击[5] 等。在以上攻击类型中,以FDIA 攻击最为常见,破坏性最强。攻击者篡改传感器量测数据,或删除量测数据,造成决策系统发出错误决策,进而

严重威胁CPS网络安全。针对CPS的虚假数据注入攻 击,王电钢[6] 、王羽[7] 等从博弈论的角度就攻防过程进行建模,并构建防御策略,以提高CPS网络的安全性;阮兆文[8] 等针对FDIA攻击中的数据篡改问题,提出一种基于聚类算法与状态预测的检测方法,该方法的本质是基于状态估计;陈碧云[9] 、刘鑫蕊[10] 等则针对量测冗余度低给CPS带来的威胁问题,提出自适应无迹卡尔曼滤波动态估计结合神经网络的攻击检测方法,结果显示可有效提高攻击检测的辨识率;魏书珩等[11] 也提出一种基于状态估计的FDIA攻击检测方法。

电力系统的虚假数据注入攻击研究

一、概述

随着信息技术和自动化技术的飞速发展,智能电网的物理系统和信息系统深度融合,形成了智能化的信息物理系统(Cyber-Physical Systems, CPSs)。然而,这种高度集成的系统也面临着严峻的信息安全问题。虚假数据注入攻击(False Data Injection Attack, FDIA)是近年来出现的一种新型网络攻击方式,它针对智能电网的状态估计结果进行篡改,以达到破坏系统安全稳定或非法获取利益的目的。

二、攻击原理

FDIA通过向电网注入精心构造的虚假数据,使系统状态估计结果偏离真实值。这种攻击方式具有隐蔽性,因为攻击者通常会利用系统配置的冗余性,构造不会引起量测值与估计值残差变化的虚假数据,从而躲避传统的不良数据检测。

三、攻击影响

FDIA对智能电网的影响是深远的。它可能导致电力系统运行异常,设备故障,能源浪费,甚至引发系统崩溃。此外,由于智能电网的EMS系统中其他组成模块大都直接或间接依赖于系统的运行状态估计结果,因此FDIA还会影响到其他模块的正常运行,从而引发一系列安全问题。

四、检测方法

为了应对FDIA的威胁,研究人员提出了多种检测方法。其中,基于改进强跟踪无迹卡尔曼滤波(ISTUKF)的检测方法是一种有效的方法。该方法使用改进的强跟踪算法,实时修正无迹卡尔曼滤波中的量测噪声误差协方差矩阵,从而减小非高斯量测噪声对动态状态估计以及FDIA检测的影响。通过计算量测结果与估计结果之间偏差的欧氏距离,并与改进的阈值进行比较,可以检测是否有FDIA存在。

此外,基于神经网络的方法也受到了广泛关注。例如,福州大学的研究者提出了一种基于残差神经网络(ResNet)结构的一维卷积神经网络(1DCNN)和长短期记忆(LSTM)网络多通道融合网络模型(简称通道融合的Res-CNN-LSTM网络模型)。该模型利用1DCNN和LSTM对时间序列信息的高效提取能力,将不同通道上提取的信息进行融合,进一步加强了数据特征的提取效果。实验结果表明,该方法在FDIA检测中具有较高的有效性和准确性。

五、定位方法

除了检测方法外,FDIA的定位也同样重要。定位能够找出电力网络中被攻击的位置,从而采取如隔离母线等措施避免相同位置再次被攻击。一种基于麻雀搜索算法(Sparrow Search Algorithm, SSA)优化的卷积神经网络(Convolutional Neural Network, CNN)的FDIA定位方法被提出。该方法设计了一种用于FDIA定位的CNN模型,并使用SSA来优化CNN的参数,避免手动选取参数的困难,从而提高定位方法的精度。

六、结论与展望

FDIA对智能电网的安全稳定运行构成了严重威胁。为了应对这一挑战,研究人员提出了多种检测和定位方法。然而,目前的研究仍处于初步阶段,还需要进一步深入和完善。未来,随着智能电网的不断发展和信息技术的不断进步,FDIA的检测和定位技术也将不断发展和创新,为智能电网的安全稳定运行提供更加有力的保障。

📚2 运行结果

部分代码:

function ok = attackok( H,z_true,rate )
%本函数用于计算攻击成功率,需输入攻击覆盖率
ok=0; %记载攻击次数
W=eye(size(H,1))*1000;
for i=1:10000
    c=zeros(13,1); %攻击向量
    c(13)=1; %攻击向量
    c(1)=1; %攻击向量
    a=H*c;
    for cnt=14:33
        if rand>rate
            a(cnt)=0;
        end
    end
    z_mes=z_true+randn(size(H,1),1)*sqrt(0.001);
    z=z_mes+a;
    x1=inv(H'*W*H)*H'*W*(z);
    r=norm(z-H*x1);
    if r<0.5405
        ok=ok+1;
    end
    
end

end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]胡凯波,於立峰,郑美芬等.基于虚假数据注入攻击的网络安全检测[J].系统仿真技术,2022,18(01):58-63.DOI:10.16812/j.cnki.cn31-1945.2022.01.005.

[2]刘孟祥. 配电网中隐蔽性攻击的主动式检测与定位研究[D].浙江大学,2022.DOI:10.27461/d.cnki.gzjdx.2022.001905.

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值