基于动态水印的核电厂蒸汽发生器液位控制系统重放攻击检测方法研究
2023-09-26王东风王嘉俊
王东风, 谷 赫, 黄 宇, 王嘉俊
(华北电力大学 自动化系, 河北保定 071003)
蒸汽发生器(SG)液位控制系统是基于分散控制系统(DCS)实现过程的远程控制、信息传输、信息管理及信息分析,保证在核电厂运行过程中SG液位维持在预先设定的程序液位附近,从而避免由于液位偏离导致的设备损坏。DCS在运行过程中可能会出现信息泄漏的问题,使得系统更容易受到来自多个角度的网络攻击,从而破坏系统的稳定运行,造成重大损失[1]。
攻击者通常以破坏控制系统安全的4个维度为目的发起恶意攻击,分别为机密性[2]、真实性[3]、完整性[4]及可用性[5]。拒绝服务(DoS)攻击通过阻断系统数据传输来破坏系统的完整性与可用性[6]。隐蔽攻击在破坏系统机密性的基础上精心设计隐蔽攻击器,实现在控制与检测系统中保持隐蔽的基础上破坏闭环系统的稳定性[7],从而破坏系统的真实性。重放攻击不需要系统知识,通过重放系统稳态数据,诱导控制器发出错误指令,使系统开环运行,从而破坏系统真实性、完整性与可用性[8]。由于重放攻击会重播稳态数据,因此在系统稳定运行时攻击方具有对检测器保持隐蔽的能力,传统的检测机制无法及时察觉攻击,因此需要额外设计检测策略。
为了保证控制系统的安全,国内外学者致力于应急分析、攻击检测与隔离、鲁棒控制及信息验证。Liu等[9]考虑了设计物理水印信号,用以抵御重放攻击,将最优水印信号的设计作为最优化问题,从而权衡检测性能与控制性能。张正道等[10]基于辅助信息,向测量值中添加辅助信号从而补偿控制性能的损失,保证了系统损失的控制性能只与当前水印信号有关。针对模型不确定系统,杜大军等[11]分析了系统不确定项对传统水印检测方法的影响,基于误差方差与过程噪声一致性原理提出了一种噪声与未知扰动混合的信号检测式。Porter等[12]针对一种广义的重放攻击,采用线性时变的动态水印技术实现了重放攻击的实时检测。动态水印技术将特殊信号输入到系统之中,从而保护测量信号,该方法能有效检测网络攻击,然而针对防范重放攻击能力较弱且不具备有效检测能力的核电机组控制系统并未有进一步研究。
笔者针对核电厂SG液位控制系统,设计基于动态水印技术的攻击检测方案,实现SG液位控制系统的安全控制。从理论上分析重放攻击破坏系统的原理,查找重放攻击策略可能存在的漏洞;将重放攻击的影响建立为一个线性时变的动态模型,并基于攻击策略可能存在的漏洞,制定加入动态水印信号的残差检测机制,采用χ2检测器量化动态水印技术对SG液位系统重放攻击的检测效益,分析水印信号对重放攻击下系统状态估计误差与残差的影响;对稳定工况下的SG液位系统进行数值仿真,验证动态水印技术对重放攻击检测的有效性与实时性。
1 问题描述
1.1 SG液位控制系统
核电站SG位于一回路与二回路连接处,将一回路产生的热量通过SG内的工质传递到二回路,产生蒸汽从而推动汽轮机做功,如图1所示。
图1 核电站SG结构
SG液位对核电厂的安全稳定运行十分重要。如果液位过低,可能导致暴露在高温蒸汽之中的U形管破裂;如果液位过高,则进入汽轮机的蒸汽湿度过高,易加速叶片老化,从而造成经济损失。同时,SG液位的频繁波动也会对核电机组蓄热过程造成影响,可能影响电网的安全稳定[13]。SG液位控制系统的任务是在稳态及瞬态工况下保证液位维持在预定范围内,采用串级控制结构,内回路用于抑制蒸汽扰动对系统的影响,外回路则根据实际液位调整控制律,以蒸汽质量流量qm和给水质量流量qm,Q为输入量,调节SG液位H。传感器信号与控制信号通过变送器向被控对象、观测器、检测器及控制器传输。SG液位控制系统结构如图2所示。
图2 蒸汽发生器液位控制系统结构图
假设核电站SG液位控制系统满足线性时不变,噪声信号均为满足独立同分布(identically distributed, i.i.d)的高斯随机过程,则被控对象的输入输出关系可以表示为:
Hr=Pqqm,Qr+Pdqm,r+PwW
(1)
式中:Hr为实际液位;Pq、Pd与Pw分别为SG液位关于实际给水质量流量qm,Qr、实际蒸汽质量流量qm,r及过程扰动W的线性时不变函数。
由于测量噪声的影响,各位置传感器的测量输出结果可以表示为:
(2)
式中:Hm为液位测量值;qm,m为蒸汽质量流量测量值;qm,Qm为给水质量流量测量值;Vh为液位的测量噪声;Vd为蒸汽质量流量的测量噪声;Vq为给水质量流量的测量噪声。
外回路反馈控制器根据液位测量值计算控制律uc1,内回路反馈控制器根据蒸汽质量流量测量值、给水质量流量测量值及外回路控制律计算阀门开度指令uc2。假设所设计的液位控制器具有良好的鲁棒性,可以克服通信延迟对系统造成的影响,则控制律uc1与uc2的数学描述可以表示为:
uc1=C1mHm+C1refHref
(3)
uc2=C2uuc1+C2dqm,m-C2qqm,Qm
(4)
式中:Href为液位设定值;C1m和C1ref分别为液位控制器关于液位测量值Hm与液位设定值Href的线性时不变函数;C2u、C2d和C2q分别为流量控制器对控制律uc1、蒸汽质量流量测量值qm,m和给水质量流量测量值qm,Qm的线性时不变函数。
联立上述公式,当测量噪声Vd对蒸汽质量流量测量值影响较小时,有qm,m≈qm,r,近似得到SG液位关于调节量qm,m与qm,Qm的闭环传递函数。
Hr=(SPqFC2d+SPd)qm,m-SPqFC2qqm,Qm+SPqFC1refHref+YVh
(5)
式中:F为阀门的线性时不变函数;S为蒸发器液位控制系统的闭环特征方程;Y为测量噪声Vh对实际液位Hr的闭环传递函数。
液位测量值可以表示为:
Hm=(SPqFC2d+SPd)qm,m-SPqFC2qqm,Qm+SPqFC1refHref+SPwW+SVh
(6)
式中:I为适当维数的单位矩阵。
可以看出,在系统未遭受网络攻击时,SG液位控制系统稳定工况下的Hr将受到蒸汽质量流量测量值qm,m、给水质量流量测量值qm,Qm、过程扰动W以及液位测量噪声Vh的共同影响。
1.2 重放攻击场景
针对控制系统的重放攻击形式类似于计算机安全中的欺骗攻击,通过修改传输信号的测量数据来实现破坏控制系统的闭环控制、影响系统稳定性并损坏系统被控对象的目的。攻击者在侵入系统后,将在一段固定时间内保持隐蔽,同时记录各部位传感器数据,随后重放记录的传感器测量值,并给予执行机构一个系统期望的控制律,从而给控制方展现一个虚假闭环系统,破坏原系统完整性,使得控制方无法形成对系统的闭环控制。解决完整性问题的方法之一是检测信息序列的损坏数据或系统的恶意行为,在讨论检测方法之前有必要讨论重放攻击如何破坏传感数据序列。
(7)
遭受重放攻击的系统的虚假闭环传递函数可以近似表示为:
(8)
定义Wreplay=W-W′,则重放攻击下SG液位与正常工作时的相对误差受到Wreplay的影响。一方面,Wreplay的存在可能会导致系统状态偏离设定值;另一方面,可以向系统中主动注入额外随机信号,从而检测重放攻击,即为动态水印技术。
2 攻击检测方案设计与分析
2.1 攻击检测方案
图3 基于动态水印的控制系统主动检测方案
2.2 动态水印技术
考虑系统状态方程为:
(9)
式中:A为系统矩阵,A∈Rn×n;B为输入矩阵,B∈Rn×p;C为输出矩阵,C∈Rm×n;w(k+1)为系统过程噪声;v(k)为测量噪声。
卡尔曼滤波器状态方程可以表示为:
(10)
χ2检测器常用于坏值检测,在本检测方案中用于处理卡尔曼滤波器的残差r(k)。
(11)
φ(k)=CP(k)CT+R
(12)
式中:φ(k)为残差r(k)在k时刻的期望方差。
则检测结果描述为:
(13)
式中:g(k)为检测函数;Tw为窗口大小。
Tw=1时,g(k)收敛于常数m,则
g(k)=Twm
(14)
定义检测策略为:
(15)
式中:η为阈值,可以经验选定,也可根据一定准则设定,本文根据3σ准则确定阈值。
定义重放攻击下的虚拟系统来生成虚假数据,值得注意的是,攻击者仍采用记录并重放系统稳定数据的方式实现攻击,所提虚拟系统只是为了便于分析检测方案而提出的,不参与真实系统的运行。虚假系统表示为:
(16)
(17)
式中:r′(i)为虚拟系统对真实变量r(i)的模拟值。
(18)
虚拟系统表示为:
(19)
式中:e′(k)为虚拟系统对真实变量e(k)的模拟值。
则有
(20)
联立可得:
(21)
此时,记虚拟系统的卡尔曼估计残差r′(k)为:
(22)
重放攻击下残差记为r(k):
(23)
此时,随着时间的递增,估计残差由于水印的存在会与正常情况有一定偏差,虚拟系统无法知晓水印信息e(k),只能根据传感器测量值将水印信息视为过程噪声的一部分作为估计信息e′(k)。则随着时间增加,残差的形式可以表示为:
(24)
加入攻击后,随着时间递增,残差中将包含控制输入的水印信息,有助于检测重放攻击。同时,残差满足
(25)
在χ2检测器中,卡方检测值为:
E[rT(k)φ-1(k)r(k)]=Tw×tr{cov[r(k)]φ-1}=
(26)
卡方检测值的期望输出不会收敛于Twm,即在保证系统稳定的情况下,检测方案实现了重放攻击的检测。
3 实验结果与分析
通过数值仿真,在某稳定负荷下针对重放攻击下的SG液位控制系统,对所提出的动态水印技术进行仿真研究,从而检验动态水印技术对控制系统中重放攻击检测的有效性。
根据分段线性SG液位模型,控制系统传递函数[15]为:
(27)
式中:H(s)为SG液位;s为拉普拉斯算子;G1为容积效应下的幅值增益;G2和τ2分别为“虚假水位”现象下的幅值增益和阻尼系数;G3、τ1和Tm分别为水位振荡下的幅值增益、阻尼系数和振荡周期。
根据表1中参数,以采样周期Ts=0.1 s将系统离散化,转换得到其状态空间为:
表1 SG液位控制系统的过程参数
x(k+1)=
(28)
(29)
式中:vh(k)为SG液位的测量噪声。
其中,过程噪声方差Q=10I,测量噪声方差为10。质量流量测量精度满足±10 kg/s。可以计算出卡尔曼滤波器的稳态增益K和误差协方差矩阵P分别为
(30)
(31)
现假设重放攻击策略为:在系统稳态运行时,记录500~1 000 s内的给水质量流量、蒸汽质量流量及液位数据,并从2 000.1 s开始周期性重复播放记录的数据。
依据准则确定阈值,保证误报率维持在0.05以内,采用移动时窗法处理检测函数值,以窗口大小Tw=100 s进行样本分析。需要注意的是,如果重放攻击开始时记录阶段状态与系统状态有较大差距,检测结果会出现一个极大的跳变。考虑最坏情况,即假设攻击方可以通过选取与记录数据相近的时间段,并加入重放攻击,从而抑制或消除跳变。
在系统稳定的情况下,无水印方案的χ2检测结果如图4(a)所示。χ2检测器无法检测到重放攻击,其检测函数值均处于阈值范围之内,检测率等于误报率,系统无法及时抵御重放攻击。如果主动加入方差为400的水印信号e(k),检测结果如图4(b)所示。由图4(a)可知,在系统稳态运行且没有攻击时,检测器统计残差信号并进行分析与检验,没有攻击时检测函数值维持在安全阈值以内,当重放攻击发生时,由于水印信号偏差对残差有影响,检测函数值逐步收敛至较高水平并超过安全阈值范围,实现了重放攻击的检测。
(a) 无水印时检测效果
为比较不同时间窗口Tw下的检测率,在保持水印信号不变的情况下改变时间窗口大小。假设攻击策略不变,仍记录系统稳态数据并周期性重放,图5和图6分别为Tw=30 s和Tw=200 s时检测率的变化。从图5和图6可以看出,Tw=30 s时检测函数值快速收敛,但有一定的漏报率;而在Tw=200 s时卡方检测函数值将逐步收敛至一个较高水平,相较于小时间窗口具有更可靠的检测率。
图5 Tw=30 s时的检测结果
图6 Tw=200 s时的检测结果
4 结 论
(1) 核电厂SG液位控制系统具有强扰动、非线性、工况复杂的特点,经典的故障检测手段无法抵御攻击者精心设计的重放攻击;通过主动向执行器中添加水印信号从而检测重放攻击,在SG处于稳态工况下时,动态水印技术可以实现对重放攻击的实时检测。
(2) 考虑系统安全检测实时性的要求,在水印信号强度不变的情况下,调整检测窗口的大小可以同时兼顾检测率与检测实时性,通过选择合适的检测窗口可以在保证检测率的同时实现检测实时性。
(3) 之后的工作将进一步关注攻击检测与弹性控制的综合设计,同时将更多考虑工程因素,进一步提升动态水印技术的工程可实现性,从而保证SG液位控制系统的安全运行。