Print

发布时间: 2021-04-25
摘要点击次数:
全文下载次数:
DOI: 10.3969/j.issn.2096-8299.2021.02.020
2021 | Volume 37 | Number 2




    计算机与信息科学    




  <<上一篇 




  下一篇>> 





基于卡尔曼滤波的电力虚假数据注入攻击检测方法
expand article info 王勇1, 武津园1, 陈雪鸿2, 程彦喆3, 刘丽丽4
1. 上海电力大学, 上海 200090;
2. 国家工业信息安全发展研究中心, 北京 100040;
3. 东南大学, 江苏 南京 210000;
4. 华电电力科学研究院有限公司国家能源分布式能源技术研发(实验)中心, 浙江 杭州 310030

摘要

能源互联网的主体是基于状态估计下的电力系统。虚假数据注入攻击(FDIA)通过恶意篡改或注入电力数据,进而引发错误的状态估计结果。这种攻击方式存在引发大面积停电事故的风险,严重影响能源互联网的正常运行。在matpower 4.0中的IEEE-14节点系统上,利用以残差方程为基础的标准残差检测法和目标函数极值法,对FDIA进行了检测实验。提出了一种基于卡尔曼滤波的FDIA检测方法,并在MATLAB上进行了验证。实验结果表明,该方法可以在短时间内发现FDIA的发生。

关键词

虚假数据注入; 卡尔曼滤波器; 注入攻击检测; 状态估计

Intrusion Detection Method of False Data Injection Attack in Power System Based on Kalman Filter
expand article info WANG Yong1, WU Jinyuan1, CHEN Xuehong2, CHENG Yanzhe3, LIU Lili4
1. Shanghai University of Electric Power, Shanghai 200090, China;
2. China Industrial Control Systems Cyber Emergency Response Team, Beijing 100040, China;
3. Southeast University, Nanjing, Jiangsu 210000, China;
4. National Energy Distributed Energy Technology Research and Development (experimental) Center, Huadian Electric Power Research Institute Co., Ltd., Hangzhou, Zhejiang 310030, China

Abstract

The main part of energy Internet is the power system based on state estimation.False data injection attacks(FDIA) cause false state estimates by maliciously altering or injecting power data.This attacks has the risk of causing a large area of power failure, which seriously affects the normal operation of the energy Internet.On the IEEE-14 node system in matpower 4.0, the standard residual detection method based on residual equation and the extreme value method of objective function are used to detect the injection attack of false data.A FDIA detection method based on Kalman filtering is proposed, and the effectiveness of the method is verified in MATLAB.Experimental results show that the method can detect the occurrence of false data injection attacks in a short time.

Key words

false data injection; Kalman filter; injection attack detection; state estimation

电网具有系统规模大、结构层次复杂、对实时性要求严格的特点。随着电网智能化的发展, 电网对信息技术的依赖度逐步提高[1]。传感设备和集成的通信网络使系统具有实时感知、信息服务和动态控制的功能[2]。对现场设备的数据采集与监视控制系统中数据质量的监视和控制, 直接影响控制中心的决策[3]

计算机在促进电力调度、优化决策的同时, 其自身的安全漏洞问题也会带来安全威胁[4-5]。文献[6]于2009年首次提出虚假数据注入攻击(False Data Injection Attack, FDIA)。它是一种典型的网络攻击方式[7], 通过破坏数据的完整性以干扰决策, 成功躲避坏数据检测机制, 达到危及电力系统安全的目的。作为针对基础工业控制系统的一种新型攻击方式, 其攻击原理、检测算法、防御措施及安全评估方法亟待研究[8-9]。文献[10]提出了卷积神经网络, 从网络数据报文中学习入侵攻击特征, 进而实时检测虚假数据的注入。文献[11-12]使用支持向量机的方法, 将历史数据投影至低维空间, 消除了数据之间的相关性, 将注入的虚假数据与正常数据分离。上述两种基于机器学习的检测方法可以实现FDIA的检测, 但需要一定量的历史数据作为训练样本, 且实验的准确性在一定程度上与文献所提出的检测器的训练结果相关。文献[13]提出了基于量测数据相关性和新息图法来检测恶意数据, 并对新息图法的应用提出了优化措施。文献[14]提出了基于数据关系图的检测方法, 当存在虚假数据注入攻击时, 根据状态关系图出现的新的状态节点和分支, 判断并识别虚假数据注入攻击的攻击点。上述两种基于图论的检测方法中, 文献[13]针对的是传统的不良数据, 文献[14]则将图论的方法引入到虚假数据注入攻击中, 在生成数据关系图时, 仍需要一定量的数据进行预先训练。文献[15]证明了常用的卡方检测器无法检测出隐蔽虚假数据注入攻击, 由此进一步提出基于RQ自适应动态估计的卡尔曼滤波器, 并对注入攻击提出了检测判断的方法。文献[16]基于扩展卡尔曼滤波的方法, 提出了一种针对虚假数据注入攻击的检测方法。上述两种基于卡尔曼滤波的方式可以较好地实现对系统的实时跟踪。本文借鉴了此类思想, 搭建了卡尔曼滤波的状态估计器, 并改进了检测算法。

本文在电力系统状态估计模型的基础上, 分析了虚假数据注入攻击的原理, 在IEEE-14节点系统中完成虚假数据注入攻击实验, 以验证传统针对不良数据的检测方法的局限性, 并设计了一种基于卡尔曼滤波理论的检测方案。

1 虚假数据注入攻击

FIDA是一种针对电力系统状态估计的有蓄谋的一种攻击。

1.1 状态估计模型

以直流模型线性化为基础的状态估计模型可表示为

$ \mathit{\boldsymbol{z}} = \mathit{\boldsymbol{Hx}} + \mathit{\boldsymbol{e}} $ (1)

式中: z——量测量;

H——系统参数矩阵, 是常数矩阵, 由电力系统的拓扑和线路阻抗决定;

x——有待估计的状态量;

e——测量时的误差。

通过加权最小二乘法(Weighted Least Squares, WLS) 或其他算法求解函数得到估计表达式。估计表达式与阈值的关系是衡量系统是否存在不良数据的标准。即

$ \mathit{\boldsymbol{J}}{\left( x \right)_{\min }} = {\left( {\mathit{\boldsymbol{z}} - \mathit{\boldsymbol{Hx}}} \right)^{\rm{T}}} \cdot \mathit{\boldsymbol{W}}\left( {\mathit{\boldsymbol{z}} - \mathit{\boldsymbol{Hx}}} \right) $ (2)

式中: W——加权矩阵。

测量值中可能带有坏数据。为了避免可能源自故障传感器或拓扑误差等原因的不良测量, 需要将J(x)与阈值τ进行比较。如果J(x)小于阈值τ, 则认为没有不良数据, 反之要剔除相应的坏数据对系统重新进行状态估计。

1.2 攻击原理

上述机制被文献[6]引入FDIA后遭到破坏。该攻击可以躲避残差检测, 使状态估计器误认为这些测量数据仍然是好数据, 达到操纵状态估计准确性的目的, 破坏电网稳定运行甚至从中谋取非法的经济利益[17-19]

在原始量测量中加入非零攻击矢量a

$ \mathit{\boldsymbol{a}} = {\left( {{a_1}, {a_2}, {a_3}, \cdots , {a_m}} \right)^{\rm{T}}} $ (3)

导致新的量测量za=z+a产生偏差。za发送到状态估计器将导致状态估计结果带有偏差, 即

$ {\mathit{\boldsymbol{\hat x}}_{{\rm{bad}}}} = \mathit{\boldsymbol{\hat x}} + \mathit{\boldsymbol{c}} $ (4)

式中: c——非零的向量;

$\mathit{\boldsymbol{\hat x}}$——使用原始测量数据得出的状态估计结果。

将攻击矢量构造为a=Hc, 则

$ \mathit{\boldsymbol{J}}\left( {{{\mathit{\boldsymbol{\hat x}}}_{bad}}} \right) = {\mathit{\boldsymbol{z}}_a} + \mathit{\boldsymbol{H}}{\mathit{\boldsymbol{\hat x}}_{bad}} = \mathit{\boldsymbol{z}} - \mathit{\boldsymbol{H\hat x}} = J\left( {\mathit{\boldsymbol{\hat x}}} \right) $ (5)

式中$\mathit{\boldsymbol{J}}\left( {{{\mathit{\boldsymbol{\hat x}}}_{{\rm{bad}}}}} \right)$为含有虚假数据的估计表达式, 即$\mathit{\boldsymbol{J}}\left( {{{\mathit{\boldsymbol{\hat x}}}_{{\rm{bad}}}}} \right) = \mathit{\boldsymbol{J}}\left( {\mathit{\boldsymbol{\hat x}}} \right)$, 使检测失效。

2 卡尔曼滤波算法

2.1 算法分析

卡尔曼滤波算法是通过系统的输入输出, 利用系统状态方程, 实现对系统状态最优估计的一种算法[20]。在连续变化且带噪声的系统中运用卡尔曼滤波算法, 具有占用存储内存较小、处理速度快等特点, 适用于处理实时问题[21]。在已知模型的条件下, 由于初始的误差、噪声变化、外界干扰等一些原因, 使得输出变量和状态变量存在误差。该算法通过比较对象和模拟系统的输出, 将其差值反馈到估计量中, 实时修正模拟系统中的状态变量。卡尔曼滤波原理如图 1所示。

图 1 卡尔曼滤波原理

2.2 状态空间模型

文献[22]的研究表明, 电力系统中的攻击或故障总是反映在电压、电流或相位的变化上。文献[23]从三相电压公式推导得到了单测量节点的状态空间模型。本文假设单点攻击, 使用单测点模型, 动态方程为

$ \mathit{\boldsymbol{x}}\left( {t + 1} \right) = \mathit{\boldsymbol{Ax}}\left( t \right) + \mathit{\boldsymbol{w}}\left( t \right) $ (6)

式中: t——时刻;

x(t)——系统状态, x(t)=[AcosφAsinφ]T;

A——已知的系统矩阵, $\mathit{\boldsymbol{A}} = \left[ \begin{array}{l} \begin{array}{*{20}{c}} 0&1 \end{array}\\ \begin{array}{*{20}{c}} 1&0 \end{array} \end{array} \right]$;

w(t )——系统误差, 满足均值为零、标准差为σ的高斯白噪声。

2.3 算法流程

基于卡尔曼滤波的状态估计器流程如图 2所示。

图 2 状态估计器结构流程

主要步骤的公式如下。

(1) 时间更新

$ \mathit{\boldsymbol{\hat x}}\left( {t + 1\left| t \right.} \right) = \mathit{\boldsymbol{A\hat x}} $ (7)

$ \mathit{\boldsymbol{P}}\left( {t\left| {t - 1} \right.} \right) = \mathit{\boldsymbol{AP}}\left( {t - 1} \right){\mathit{\boldsymbol{A}}^{\rm{T}}} + \mathit{\boldsymbol{Q}}{} $ (8)

式中: Q——过程噪声;

P——滤波方差值。

(2) 量测值更新

$ \mathit{\boldsymbol{\hat x}}\left( t \right) = \mathit{\boldsymbol{\hat x}}\left( {t\left| {t - 1} \right.} \right) + K\left( t \right)\left[ {y\left( t \right) - \mathit{\boldsymbol{C}}\left( t \right)\mathit{\boldsymbol{\hat x}}\left( {t\left| {t - 1} \right.} \right)} \right] $ (9)

式中: K(t)——卡尔曼增益;

y(t)——电压输出;

C(t)——协方差矩阵。

3 虚假数据的注入检测

3.1 FDIA下的卡尔曼滤波器

FDIA模型为

$ \mathit{\boldsymbol{y}} = \mathit{\boldsymbol{C}}\left( t \right)\mathit{\boldsymbol{x}}\left( t \right) + \mathit{\boldsymbol{v}}\left( t \right) + \mathit{\boldsymbol{\lambda }}{\mathit{\boldsymbol{y}}_{\rm{a}}}\left( t \right) $ (10)

其中λ与攻击位置有关。线路拓扑中存在较为脆弱的节点, 在不同位置上的攻击, 理论上引发的后果会不同。故在式(10)中引入位置变量, 便于对不同脆弱级的节点加以区别。ya(t)表示攻击者构造的攻击向量。当有攻击发生时, 测量输出产生变化, 量测的变化量再作用到状态估计量中, 导致状态估计量也产生偏差。

3.2 检测方法

当无攻击发生时, 尽管观测器存在估计误差, 但观测值和系统状态在小范围内基本一致; 当有FDIA时, 检测目标函数f(t)将逐渐增大, 并超过一定的检测阈值r

考虑用如下的目标函数进行检测

$ f\left( t \right) = \frac{{\left\| {{\mathit{\boldsymbol{x}}_a}\left( t \right) - \mathit{\boldsymbol{\hat x}}\left( t \right)} \right\|}}{{\left\| {{\mathit{\boldsymbol{x}}_a}\left( t \right)} \right\|}} $ (11)

式中: ||·||——向量的模长。

根据检测目标函数与阈值r相比较可知: f(t)≥r, 系统存在攻击; f(t)<r, 系统无攻击。

4 实验验证

4.1 没有FDIA检测

在IEEE-14系统下进行实验。在没有发生FDIA的情况下, 实验结果如图 3所示。

图 3 没有FDIA时的目标函数

图 3可知, 在没有FDIA的情况下, 系统不会发生误报, 经过4次迭代, 目标函数收敛; 标准化残差法和目标函数极值法的检测结果中均未显示虚假数据。

4.2 有FDIA检测

利用matpower 4.0仿真数据包中IEEE-14拓扑结构下的潮流数据, 修改量测点数值的大小。

此时在1# 数据编号位置, 注入虚假数据, 修改其值为1, 检测结果如图 4所示。

图 4 有FDIA时的检测结果1

图 4可知, 尽管存在虚假数据, 在测量数据编号关于标准化残差和目标函数极值的图中均未显示检测出虚假数据。

此外, 在上述情况下, 注入虚假数据的位置不变, 修改其值为2, 虚假数据注入下的检测结果如图 5所示。

图 5 有FDIA时的检测结果2

图 5可知, 在测量数据编号关于标准化残差和目标函数极值的图中均有虚假数据的标注, 表示检测出了虚假数据。但是由于攻击设置在1#数据编号位置, 测量数据编号关于标准化残差的图中标记在27#位置, 测量数据编号关于目标函数极值的图中标记在26#位置, 所以仍无法有效且正确地检测出虚假数据注入攻击。

5 仿真分析

为验证本文所提算法的可行性, 利用MATLAB软件, 在三相电压模型上进行仿真实验。仿真实验采用的仿真参数如表 1所示。

表 1 仿真参数

下载CSV
参数 取值 参数 取值
f/Hz 50 x2(0) 0
|U(t)| 1 p(0|0) 单位阵
x1(0) 0 σ 0.1

表 1中: f为滤波器采样的频率; |U(t)|为三相电压模型中的电压幅值; x1(0)和x2(0)为$\mathit{\boldsymbol{x}}\left( t \right) = \left[ \begin{array}{l} {x_1}\left( 0 \right)\\ {x_2}\left( 0 \right) \end{array} \right]$的两个分量; x(t)为滤波初值; p(0|0)为算法中参与相关运算的同阶单位阵; σ为卡尔曼滤波器添加噪声的标准差。

5.1 没有FDIA时的状态观测

在没有FDIA时, 卡尔曼滤波状态估计器对系统的状态观测结果如图 6所示。

图 6 没有FDIA时估计器对系统的状态观测结果

图 6可知, 尽管输入信号中混有随机高斯白噪声, 卡尔曼滤波器仍可以较好地实现对系统的实时状态跟踪。

5.2 有FDIA时的状态观测

在0.2 s时触发FDIA, 卡尔曼滤波状态估计器对系统的状态观测结果如图 7所示。

图 7 有FDIA时估计器对系统的状态观测结果

图 7可知, 在有FDIA的作用下, 卡尔曼滤波器的输出信号出现较大的波动。

5.3 两种状态下的检测效果对比

在系统没有虚假数据与有虚假数据攻击两种状态下进行检测效果对比, 如图 8所示。由图 8可知: 没有FDIA时, 尽管存在噪声信号, 检测目标函数可以稳定在零附近, 不存在幅值上的较大变动; 有FDIA时, 检测曲线发生明显的变化, 并很快超过检测阈值, 检测有效。

图 8 两种状态下的检测效果对比

6 结语

本文对FDIA的原理、状态估计的模型进行了分析, 对以残差方程为基础的标准残差检测法和目标函数极值法进行了攻击验证; 提出了一种针对FDIA问题的检测方法, 能够在无需历史数据训练的情况下, 短时间内检测到FDIA的发生, 并进行了验证。后续考虑进一步提高状态估计器的抗噪能力, 并对攻击点进行辨识。此外, 对FDIA的研究一直是智能电网领域的重要课题, 还有待学者们进一步的探究。

参考文献

  • [1]
    叶夏明. 电力信息物理系统通信网络性能分析及网络安全评估[D]. 杭州: 浙江大学, 2015.
  • [2]
    郭庆来, 辛蜀骏, 孙宏斌, 等. 电力系统信息物理融合建模与综合安全评估: 驱动力与研究构想[J]. 中国电机工程学报, 2016, 36(6): 1481-1489.
  • [3]
    李士达. 基于SCADA系统的铁路工程及其在设备故障诊断中的研究与应用[D]. 北京: 华北电力大学, 2014.
  • [4]
    VELLAITHURAI C, SRIVASTAVA A, ZONOUZ S, et al. CP index: cyber-physical vulnerability assessment for power-grid infrastructures[J]. IEEE Transactions on Smart Grid, 2015, 6(2): 566-575. DOI:10.1109/TSG.2014.2372315
  • [5]
    WANG W Y, LU Z. Cyber security in the smart grid: survey and challenges[J]. Computer Networks, 2013, 57(5): 1344-1371. DOI:10.1016/j.comnet.2012.12.017
  • [6]
    LIU Y, REITER M K, NING P. False data injection attacks against state estimation in electric power grids[C]//Proceedings of the 16th ACM conference on Computer and Communicate Security. Chicago, USA, 2009: 21-32.
  • [7]
    王琦, 邰伟, 汤奕, 等. 面向电力信息物理系统的虚假数据注入攻击研究综述[J]. 自动化学报, 2019, 45(1): 72-83.
  • [8]
    HAH N A, GOVINDARASU M. Cyber attack exposure evaluation framework for the smart grid[J]. IEEE Transactions on Sma rt Grid, 2011, 2(4): 835-843. DOI:10.1109/TSG.2011.2163829
  • [9]
    TIAN J W, WANG B H, LI X. State-preserving topology attacks and its impact on economic operation of smart grid[J]. Power System Protection and Control, 2018, 46(1): 50-56.
  • [10]
    YU J J, HOU Y H, LI V O. Online false data injection attack detection with wavelet transform and deep neural networks[J]. IEEE Transactions on Industrial Informatics, 2018, 14(7): 3271-3280. DOI:10.1109/TII.2018.2825243
  • [11]
    周念成, 廖建权, 王强钢, 等. 深度学习在智能电网中的应用现状分析与展望[J]. 电力系统自动化, 2019, 43(4): 180-197.
  • [12]
    刘俊辉, 张斌. 在智能电网中使用SVM方法检测隐形假数据注入[J]. 电子世界, 2018(8): 195-196.
  • [13]
    张永超. 电力系统不良数据检测和辨识方法研究[D]. 成都: 西南交通大学, 2009.
  • [14]
    张林鹏, 王勇, 陈武, 等. 基于数据关系图的恶意假数据注入攻击检测[J]. 上海电力学院学报, 2017, 33(5): 480-486. DOI:10.3969/j.issn.1006-4729.2017.05.014
  • [15]
    罗小元, 朱鸣皋, 王新宇, 等. 基于自适应卡尔曼滤波器的智能电网隐蔽假数据攻击检测[J]. 信息与控制, 2018(1): 16-21.
  • [16]
    何耀, 周聪, 郑凌月, 等. 基于扩展卡尔曼滤波的虚假数据攻击检测方法[J]. 中国电力, 2017, 50(10): 35-40.
  • [17]
    YANG Q Y, YANG J, YU W, et al. On false data injection attacks against power system state estimation: modeling and countermeasures[J]. IEEE Transactions on Parallel and Distributed System, 2014, 25(3): 717-729.
  • [18]
    BI S Z, ZHANG Y J. Defending mechanisms against false-data injection attacks in the power system state estimation[C]//2011 IEEE Globecom Workshops. Houston, TX, USA, 2011: 1162-1167.
  • [19]
    GU Y, LIU T, WANG D, et al. Bad data detection method for smart grids based on distributed state estimation[C]//2013 IEEE International Conference on Communications. Budapest, Hungary, 2013: 4483-4488.
  • [20]
    于尔铿. 电力系统状态估计[M]. 北京: 水利电力出版社, 1985: 189-214.
  • [21]
    刘铮. UKF算法及其改进算法的研究[D]. 长沙: 中南大学, 2009.
  • [22]
    QI H, WANG X, TOLBERT L M, et al. A resilient real-time system design for a secure and reconfigurable power grid[J]. IEEE Transactions on Smart Grid, 2011, 2(4): 770-781.
  • [23]
    MANANDHAR K, CAO X, HU F, et al. Detection of faults and attacks including false data injection attack in smart grid using Kalman filter[J]. IEEE Transactions on Control of Network Systems, 2014, 1(4): 370-379.