王東風(fēng), 谷 赫, 黃 宇, 王嘉俊
(華北電力大學(xué) 自動(dòng)化系, 河北保定 071003)
蒸汽發(fā)生器(SG)液位控制系統(tǒng)是基于分散控制系統(tǒng)(DCS)實(shí)現(xiàn)過(guò)程的遠(yuǎn)程控制、信息傳輸、信息管理及信息分析,保證在核電廠運(yùn)行過(guò)程中SG液位維持在預(yù)先設(shè)定的程序液位附近,從而避免由于液位偏離導(dǎo)致的設(shè)備損壞。DCS在運(yùn)行過(guò)程中可能會(huì)出現(xiàn)信息泄漏的問(wèn)題,使得系統(tǒng)更容易受到來(lái)自多個(gè)角度的網(wǎng)絡(luò)攻擊,從而破壞系統(tǒng)的穩(wěn)定運(yùn)行,造成重大損失[1]。
攻擊者通常以破壞控制系統(tǒng)安全的4個(gè)維度為目的發(fā)起惡意攻擊,分別為機(jī)密性[2]、真實(shí)性[3]、完整性[4]及可用性[5]。拒絕服務(wù)(DoS)攻擊通過(guò)阻斷系統(tǒng)數(shù)據(jù)傳輸來(lái)破壞系統(tǒng)的完整性與可用性[6]。隱蔽攻擊在破壞系統(tǒng)機(jī)密性的基礎(chǔ)上精心設(shè)計(jì)隱蔽攻擊器,實(shí)現(xiàn)在控制與檢測(cè)系統(tǒng)中保持隱蔽的基礎(chǔ)上破壞閉環(huán)系統(tǒng)的穩(wěn)定性[7],從而破壞系統(tǒng)的真實(shí)性。重放攻擊不需要系統(tǒng)知識(shí),通過(guò)重放系統(tǒng)穩(wěn)態(tài)數(shù)據(jù),誘導(dǎo)控制器發(fā)出錯(cuò)誤指令,使系統(tǒng)開(kāi)環(huán)運(yùn)行,從而破壞系統(tǒng)真實(shí)性、完整性與可用性[8]。由于重放攻擊會(huì)重播穩(wěn)態(tài)數(shù)據(jù),因此在系統(tǒng)穩(wěn)定運(yùn)行時(shí)攻擊方具有對(duì)檢測(cè)器保持隱蔽的能力,傳統(tǒng)的檢測(cè)機(jī)制無(wú)法及時(shí)察覺(jué)攻擊,因此需要額外設(shè)計(jì)檢測(cè)策略。
為了保證控制系統(tǒng)的安全,國(guó)內(nèi)外學(xué)者致力于應(yīng)急分析、攻擊檢測(cè)與隔離、魯棒控制及信息驗(yàn)證。Liu等[9]考慮了設(shè)計(jì)物理水印信號(hào),用以抵御重放攻擊,將最優(yōu)水印信號(hào)的設(shè)計(jì)作為最優(yōu)化問(wèn)題,從而權(quán)衡檢測(cè)性能與控制性能。張正道等[10]基于輔助信息,向測(cè)量值中添加輔助信號(hào)從而補(bǔ)償控制性能的損失,保證了系統(tǒng)損失的控制性能只與當(dāng)前水印信號(hào)有關(guān)。針對(duì)模型不確定系統(tǒng),杜大軍等[11]分析了系統(tǒng)不確定項(xiàng)對(duì)傳統(tǒng)水印檢測(cè)方法的影響,基于誤差方差與過(guò)程噪聲一致性原理提出了一種噪聲與未知擾動(dòng)混合的信號(hào)檢測(cè)式。Porter等[12]針對(duì)一種廣義的重放攻擊,采用線性時(shí)變的動(dòng)態(tài)水印技術(shù)實(shí)現(xiàn)了重放攻擊的實(shí)時(shí)檢測(cè)。動(dòng)態(tài)水印技術(shù)將特殊信號(hào)輸入到系統(tǒng)之中,從而保護(hù)測(cè)量信號(hào),該方法能有效檢測(cè)網(wǎng)絡(luò)攻擊,然而針對(duì)防范重放攻擊能力較弱且不具備有效檢測(cè)能力的核電機(jī)組控制系統(tǒng)并未有進(jìn)一步研究。
筆者針對(duì)核電廠SG液位控制系統(tǒng),設(shè)計(jì)基于動(dòng)態(tài)水印技術(shù)的攻擊檢測(cè)方案,實(shí)現(xiàn)SG液位控制系統(tǒng)的安全控制。從理論上分析重放攻擊破壞系統(tǒng)的原理,查找重放攻擊策略可能存在的漏洞;將重放攻擊的影響建立為一個(gè)線性時(shí)變的動(dòng)態(tài)模型,并基于攻擊策略可能存在的漏洞,制定加入動(dòng)態(tài)水印信號(hào)的殘差檢測(cè)機(jī)制,采用χ2檢測(cè)器量化動(dòng)態(tài)水印技術(shù)對(duì)SG液位系統(tǒng)重放攻擊的檢測(cè)效益,分析水印信號(hào)對(duì)重放攻擊下系統(tǒng)狀態(tài)估計(jì)誤差與殘差的影響;對(duì)穩(wěn)定工況下的SG液位系統(tǒng)進(jìn)行數(shù)值仿真,驗(yàn)證動(dòng)態(tài)水印技術(shù)對(duì)重放攻擊檢測(cè)的有效性與實(shí)時(shí)性。
核電站SG位于一回路與二回路連接處,將一回路產(chǎn)生的熱量通過(guò)SG內(nèi)的工質(zhì)傳遞到二回路,產(chǎn)生蒸汽從而推動(dòng)汽輪機(jī)做功,如圖1所示。
圖1 核電站SG結(jié)構(gòu)
SG液位對(duì)核電廠的安全穩(wěn)定運(yùn)行十分重要。如果液位過(guò)低,可能導(dǎo)致暴露在高溫蒸汽之中的U形管破裂;如果液位過(guò)高,則進(jìn)入汽輪機(jī)的蒸汽濕度過(guò)高,易加速葉片老化,從而造成經(jīng)濟(jì)損失。同時(shí),SG液位的頻繁波動(dòng)也會(huì)對(duì)核電機(jī)組蓄熱過(guò)程造成影響,可能影響電網(wǎng)的安全穩(wěn)定[13]。SG液位控制系統(tǒng)的任務(wù)是在穩(wěn)態(tài)及瞬態(tài)工況下保證液位維持在預(yù)定范圍內(nèi),采用串級(jí)控制結(jié)構(gòu),內(nèi)回路用于抑制蒸汽擾動(dòng)對(duì)系統(tǒng)的影響,外回路則根據(jù)實(shí)際液位調(diào)整控制律,以蒸汽質(zhì)量流量qm和給水質(zhì)量流量qm,Q為輸入量,調(diào)節(jié)SG液位H。傳感器信號(hào)與控制信號(hào)通過(guò)變送器向被控對(duì)象、觀測(cè)器、檢測(cè)器及控制器傳輸。SG液位控制系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 蒸汽發(fā)生器液位控制系統(tǒng)結(jié)構(gòu)圖
假設(shè)核電站SG液位控制系統(tǒng)滿(mǎn)足線性時(shí)不變,噪聲信號(hào)均為滿(mǎn)足獨(dú)立同分布(identically distributed, i.i.d)的高斯隨機(jī)過(guò)程,則被控對(duì)象的輸入輸出關(guān)系可以表示為:
Hr=Pqqm,Qr+Pdqm,r+PwW
(1)
式中:Hr為實(shí)際液位;Pq、Pd與Pw分別為SG液位關(guān)于實(shí)際給水質(zhì)量流量qm,Qr、實(shí)際蒸汽質(zhì)量流量qm,r及過(guò)程擾動(dòng)W的線性時(shí)不變函數(shù)。
由于測(cè)量噪聲的影響,各位置傳感器的測(cè)量輸出結(jié)果可以表示為:
(2)
式中:Hm為液位測(cè)量值;qm,m為蒸汽質(zhì)量流量測(cè)量值;qm,Qm為給水質(zhì)量流量測(cè)量值;Vh為液位的測(cè)量噪聲;Vd為蒸汽質(zhì)量流量的測(cè)量噪聲;Vq為給水質(zhì)量流量的測(cè)量噪聲。
外回路反饋控制器根據(jù)液位測(cè)量值計(jì)算控制律uc1,內(nèi)回路反饋控制器根據(jù)蒸汽質(zhì)量流量測(cè)量值、給水質(zhì)量流量測(cè)量值及外回路控制律計(jì)算閥門(mén)開(kāi)度指令uc2。假設(shè)所設(shè)計(jì)的液位控制器具有良好的魯棒性,可以克服通信延遲對(duì)系統(tǒng)造成的影響,則控制律uc1與uc2的數(shù)學(xué)描述可以表示為:
uc1=C1mHm+C1refHref
(3)
uc2=C2uuc1+C2dqm,m-C2qqm,Qm
(4)
式中:Href為液位設(shè)定值;C1m和C1ref分別為液位控制器關(guān)于液位測(cè)量值Hm與液位設(shè)定值Href的線性時(shí)不變函數(shù);C2u、C2d和C2q分別為流量控制器對(duì)控制律uc1、蒸汽質(zhì)量流量測(cè)量值qm,m和給水質(zhì)量流量測(cè)量值qm,Qm的線性時(shí)不變函數(shù)。
聯(lián)立上述公式,當(dāng)測(cè)量噪聲Vd對(duì)蒸汽質(zhì)量流量測(cè)量值影響較小時(shí),有qm,m≈qm,r,近似得到SG液位關(guān)于調(diào)節(jié)量qm,m與qm,Qm的閉環(huán)傳遞函數(shù)。
Hr=(SPqFC2d+SPd)qm,m-SPqFC2qqm,Qm+SPqFC1refHref+YVh
(5)
式中:F為閥門(mén)的線性時(shí)不變函數(shù);S為蒸發(fā)器液位控制系統(tǒng)的閉環(huán)特征方程;Y為測(cè)量噪聲Vh對(duì)實(shí)際液位Hr的閉環(huán)傳遞函數(shù)。
液位測(cè)量值可以表示為:
Hm=(SPqFC2d+SPd)qm,m-SPqFC2qqm,Qm+SPqFC1refHref+SPwW+SVh
(6)
式中:I為適當(dāng)維數(shù)的單位矩陣。
可以看出,在系統(tǒng)未遭受網(wǎng)絡(luò)攻擊時(shí),SG液位控制系統(tǒng)穩(wěn)定工況下的Hr將受到蒸汽質(zhì)量流量測(cè)量值qm,m、給水質(zhì)量流量測(cè)量值qm,Qm、過(guò)程擾動(dòng)W以及液位測(cè)量噪聲Vh的共同影響。
針對(duì)控制系統(tǒng)的重放攻擊形式類(lèi)似于計(jì)算機(jī)安全中的欺騙攻擊,通過(guò)修改傳輸信號(hào)的測(cè)量數(shù)據(jù)來(lái)實(shí)現(xiàn)破壞控制系統(tǒng)的閉環(huán)控制、影響系統(tǒng)穩(wěn)定性并損壞系統(tǒng)被控對(duì)象的目的。攻擊者在侵入系統(tǒng)后,將在一段固定時(shí)間內(nèi)保持隱蔽,同時(shí)記錄各部位傳感器數(shù)據(jù),隨后重放記錄的傳感器測(cè)量值,并給予執(zhí)行機(jī)構(gòu)一個(gè)系統(tǒng)期望的控制律,從而給控制方展現(xiàn)一個(gè)虛假閉環(huán)系統(tǒng),破壞原系統(tǒng)完整性,使得控制方無(wú)法形成對(duì)系統(tǒng)的閉環(huán)控制。解決完整性問(wèn)題的方法之一是檢測(cè)信息序列的損壞數(shù)據(jù)或系統(tǒng)的惡意行為,在討論檢測(cè)方法之前有必要討論重放攻擊如何破壞傳感數(shù)據(jù)序列。
(7)
遭受重放攻擊的系統(tǒng)的虛假閉環(huán)傳遞函數(shù)可以近似表示為:
(8)
定義Wreplay=W-W′,則重放攻擊下SG液位與正常工作時(shí)的相對(duì)誤差受到Wreplay的影響。一方面,Wreplay的存在可能會(huì)導(dǎo)致系統(tǒng)狀態(tài)偏離設(shè)定值;另一方面,可以向系統(tǒng)中主動(dòng)注入額外隨機(jī)信號(hào),從而檢測(cè)重放攻擊,即為動(dòng)態(tài)水印技術(shù)。
圖3 基于動(dòng)態(tài)水印的控制系統(tǒng)主動(dòng)檢測(cè)方案
考慮系統(tǒng)狀態(tài)方程為:
(9)
式中:A為系統(tǒng)矩陣,A∈Rn×n;B為輸入矩陣,B∈Rn×p;C為輸出矩陣,C∈Rm×n;w(k+1)為系統(tǒng)過(guò)程噪聲;v(k)為測(cè)量噪聲。
卡爾曼濾波器狀態(tài)方程可以表示為:
(10)
χ2檢測(cè)器常用于壞值檢測(cè),在本檢測(cè)方案中用于處理卡爾曼濾波器的殘差r(k)。
(11)
φ(k)=CP(k)CT+R
(12)
式中:φ(k)為殘差r(k)在k時(shí)刻的期望方差。
則檢測(cè)結(jié)果描述為:
(13)
式中:g(k)為檢測(cè)函數(shù);Tw為窗口大小。
Tw=1時(shí),g(k)收斂于常數(shù)m,則
g(k)=Twm
(14)
定義檢測(cè)策略為:
(15)
式中:η為閾值,可以經(jīng)驗(yàn)選定,也可根據(jù)一定準(zhǔn)則設(shè)定,本文根據(jù)3σ準(zhǔn)則確定閾值。
定義重放攻擊下的虛擬系統(tǒng)來(lái)生成虛假數(shù)據(jù),值得注意的是,攻擊者仍采用記錄并重放系統(tǒng)穩(wěn)定數(shù)據(jù)的方式實(shí)現(xiàn)攻擊,所提虛擬系統(tǒng)只是為了便于分析檢測(cè)方案而提出的,不參與真實(shí)系統(tǒng)的運(yùn)行。虛假系統(tǒng)表示為:
(16)
(17)
式中:r′(i)為虛擬系統(tǒng)對(duì)真實(shí)變量r(i)的模擬值。
(18)
虛擬系統(tǒng)表示為:
(19)
式中:e′(k)為虛擬系統(tǒng)對(duì)真實(shí)變量e(k)的模擬值。
則有
(20)
聯(lián)立可得:
(21)
此時(shí),記虛擬系統(tǒng)的卡爾曼估計(jì)殘差r′(k)為:
(22)
重放攻擊下殘差記為r(k):
(23)
此時(shí),隨著時(shí)間的遞增,估計(jì)殘差由于水印的存在會(huì)與正常情況有一定偏差,虛擬系統(tǒng)無(wú)法知曉水印信息e(k),只能根據(jù)傳感器測(cè)量值將水印信息視為過(guò)程噪聲的一部分作為估計(jì)信息e′(k)。則隨著時(shí)間增加,殘差的形式可以表示為:
(24)
加入攻擊后,隨著時(shí)間遞增,殘差中將包含控制輸入的水印信息,有助于檢測(cè)重放攻擊。同時(shí),殘差滿(mǎn)足
(25)
在χ2檢測(cè)器中,卡方檢測(cè)值為:
E[rT(k)φ-1(k)r(k)]=Tw×tr{cov[r(k)]φ-1}=
(26)
卡方檢測(cè)值的期望輸出不會(huì)收斂于Twm,即在保證系統(tǒng)穩(wěn)定的情況下,檢測(cè)方案實(shí)現(xiàn)了重放攻擊的檢測(cè)。
通過(guò)數(shù)值仿真,在某穩(wěn)定負(fù)荷下針對(duì)重放攻擊下的SG液位控制系統(tǒng),對(duì)所提出的動(dòng)態(tài)水印技術(shù)進(jìn)行仿真研究,從而檢驗(yàn)動(dòng)態(tài)水印技術(shù)對(duì)控制系統(tǒng)中重放攻擊檢測(cè)的有效性。
根據(jù)分段線性SG液位模型,控制系統(tǒng)傳遞函數(shù)[15]為:
(27)
式中:H(s)為SG液位;s為拉普拉斯算子;G1為容積效應(yīng)下的幅值增益;G2和τ2分別為“虛假水位”現(xiàn)象下的幅值增益和阻尼系數(shù);G3、τ1和Tm分別為水位振蕩下的幅值增益、阻尼系數(shù)和振蕩周期。
根據(jù)表1中參數(shù),以采樣周期Ts=0.1 s將系統(tǒng)離散化,轉(zhuǎn)換得到其狀態(tài)空間為:
表1 SG液位控制系統(tǒng)的過(guò)程參數(shù)
x(k+1)=
(28)
(29)
式中:vh(k)為SG液位的測(cè)量噪聲。
其中,過(guò)程噪聲方差Q=10I,測(cè)量噪聲方差為10。質(zhì)量流量測(cè)量精度滿(mǎn)足±10 kg/s??梢杂?jì)算出卡爾曼濾波器的穩(wěn)態(tài)增益K和誤差協(xié)方差矩陣P分別為
(30)
(31)
現(xiàn)假設(shè)重放攻擊策略為:在系統(tǒng)穩(wěn)態(tài)運(yùn)行時(shí),記錄500~1 000 s內(nèi)的給水質(zhì)量流量、蒸汽質(zhì)量流量及液位數(shù)據(jù),并從2 000.1 s開(kāi)始周期性重復(fù)播放記錄的數(shù)據(jù)。
依據(jù)準(zhǔn)則確定閾值,保證誤報(bào)率維持在0.05以?xún)?nèi),采用移動(dòng)時(shí)窗法處理檢測(cè)函數(shù)值,以窗口大小Tw=100 s進(jìn)行樣本分析。需要注意的是,如果重放攻擊開(kāi)始時(shí)記錄階段狀態(tài)與系統(tǒng)狀態(tài)有較大差距,檢測(cè)結(jié)果會(huì)出現(xiàn)一個(gè)極大的跳變??紤]最壞情況,即假設(shè)攻擊方可以通過(guò)選取與記錄數(shù)據(jù)相近的時(shí)間段,并加入重放攻擊,從而抑制或消除跳變。
在系統(tǒng)穩(wěn)定的情況下,無(wú)水印方案的χ2檢測(cè)結(jié)果如圖4(a)所示。χ2檢測(cè)器無(wú)法檢測(cè)到重放攻擊,其檢測(cè)函數(shù)值均處于閾值范圍之內(nèi),檢測(cè)率等于誤報(bào)率,系統(tǒng)無(wú)法及時(shí)抵御重放攻擊。如果主動(dòng)加入方差為400的水印信號(hào)e(k),檢測(cè)結(jié)果如圖4(b)所示。由圖4(a)可知,在系統(tǒng)穩(wěn)態(tài)運(yùn)行且沒(méi)有攻擊時(shí),檢測(cè)器統(tǒng)計(jì)殘差信號(hào)并進(jìn)行分析與檢驗(yàn),沒(méi)有攻擊時(shí)檢測(cè)函數(shù)值維持在安全閾值以?xún)?nèi),當(dāng)重放攻擊發(fā)生時(shí),由于水印信號(hào)偏差對(duì)殘差有影響,檢測(cè)函數(shù)值逐步收斂至較高水平并超過(guò)安全閾值范圍,實(shí)現(xiàn)了重放攻擊的檢測(cè)。
(a) 無(wú)水印時(shí)檢測(cè)效果
為比較不同時(shí)間窗口Tw下的檢測(cè)率,在保持水印信號(hào)不變的情況下改變時(shí)間窗口大小。假設(shè)攻擊策略不變,仍記錄系統(tǒng)穩(wěn)態(tài)數(shù)據(jù)并周期性重放,圖5和圖6分別為T(mén)w=30 s和Tw=200 s時(shí)檢測(cè)率的變化。從圖5和圖6可以看出,Tw=30 s時(shí)檢測(cè)函數(shù)值快速收斂,但有一定的漏報(bào)率;而在Tw=200 s時(shí)卡方檢測(cè)函數(shù)值將逐步收斂至一個(gè)較高水平,相較于小時(shí)間窗口具有更可靠的檢測(cè)率。
圖5 Tw=30 s時(shí)的檢測(cè)結(jié)果
圖6 Tw=200 s時(shí)的檢測(cè)結(jié)果
(1) 核電廠SG液位控制系統(tǒng)具有強(qiáng)擾動(dòng)、非線性、工況復(fù)雜的特點(diǎn),經(jīng)典的故障檢測(cè)手段無(wú)法抵御攻擊者精心設(shè)計(jì)的重放攻擊;通過(guò)主動(dòng)向執(zhí)行器中添加水印信號(hào)從而檢測(cè)重放攻擊,在SG處于穩(wěn)態(tài)工況下時(shí),動(dòng)態(tài)水印技術(shù)可以實(shí)現(xiàn)對(duì)重放攻擊的實(shí)時(shí)檢測(cè)。
(2) 考慮系統(tǒng)安全檢測(cè)實(shí)時(shí)性的要求,在水印信號(hào)強(qiáng)度不變的情況下,調(diào)整檢測(cè)窗口的大小可以同時(shí)兼顧檢測(cè)率與檢測(cè)實(shí)時(shí)性,通過(guò)選擇合適的檢測(cè)窗口可以在保證檢測(cè)率的同時(shí)實(shí)現(xiàn)檢測(cè)實(shí)時(shí)性。
(3) 之后的工作將進(jìn)一步關(guān)注攻擊檢測(cè)與彈性控制的綜合設(shè)計(jì),同時(shí)將更多考慮工程因素,進(jìn)一步提升動(dòng)態(tài)水印技術(shù)的工程可實(shí)現(xiàn)性,從而保證SG液位控制系統(tǒng)的安全運(yùn)行。