王 勇, 武津園, 陳雪鴻, 程彥喆, 劉麗麗
(1.上海電力大學, 上海 200090; 2.國家工業(yè)信息安全發(fā)展研究中心, 北京 100040;3.東南大學, 江蘇 南京 210000;4.華電電力科學研究院有限公司國家能源分布式能源技術研發(fā)(實驗)中心, 浙江 杭州 310030)
電網(wǎng)具有系統(tǒng)規(guī)模大、結構層次復雜、對實時性要求嚴格的特點。隨著電網(wǎng)智能化的發(fā)展,電網(wǎng)對信息技術的依賴度逐步提高[1]。傳感設備和集成的通信網(wǎng)絡使系統(tǒng)具有實時感知、信息服務和動態(tài)控制的功能[2]。對現(xiàn)場設備的數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)中數(shù)據(jù)質(zhì)量的監(jiān)視和控制,直接影響控制中心的決策[3]。
計算機在促進電力調(diào)度、優(yōu)化決策的同時,其自身的安全漏洞問題也會帶來安全威脅[4-5]。文獻[6]于2009年首次提出虛假數(shù)據(jù)注入攻擊(False Data Injection Attack,FDIA)。它是一種典型的網(wǎng)絡攻擊方式[7],通過破壞數(shù)據(jù)的完整性以干擾決策,成功躲避壞數(shù)據(jù)檢測機制,達到危及電力系統(tǒng)安全的目的。作為針對基礎工業(yè)控制系統(tǒng)的一種新型攻擊方式,其攻擊原理、檢測算法、防御措施及安全評估方法亟待研究[8-9]。文獻[10]提出了卷積神經(jīng)網(wǎng)絡,從網(wǎng)絡數(shù)據(jù)報文中學習入侵攻擊特征,進而實時檢測虛假數(shù)據(jù)的注入。文獻[11-12]使用支持向量機的方法,將歷史數(shù)據(jù)投影至低維空間,消除了數(shù)據(jù)之間的相關性,將注入的虛假數(shù)據(jù)與正常數(shù)據(jù)分離。上述兩種基于機器學習的檢測方法可以實現(xiàn)FDIA的檢測,但需要一定量的歷史數(shù)據(jù)作為訓練樣本,且實驗的準確性在一定程度上與文獻所提出的檢測器的訓練結果相關。文獻[13]提出了基于量測數(shù)據(jù)相關性和新息圖法來檢測惡意數(shù)據(jù),并對新息圖法的應用提出了優(yōu)化措施。文獻[14]提出了基于數(shù)據(jù)關系圖的檢測方法,當存在虛假數(shù)據(jù)注入攻擊時,根據(jù)狀態(tài)關系圖出現(xiàn)的新的狀態(tài)節(jié)點和分支,判斷并識別虛假數(shù)據(jù)注入攻擊的攻擊點。上述兩種基于圖論的檢測方法中,文獻[13]針對的是傳統(tǒng)的不良數(shù)據(jù),文獻[14]則將圖論的方法引入到虛假數(shù)據(jù)注入攻擊中,在生成數(shù)據(jù)關系圖時,仍需要一定量的數(shù)據(jù)進行預先訓練。文獻[15]證明了常用的卡方檢測器無法檢測出隱蔽虛假數(shù)據(jù)注入攻擊,由此進一步提出基于RQ自適應動態(tài)估計的卡爾曼濾波器,并對注入攻擊提出了檢測判斷的方法。文獻[16]基于擴展卡爾曼濾波的方法,提出了一種針對虛假數(shù)據(jù)注入攻擊的檢測方法。上述兩種基于卡爾曼濾波的方式可以較好地實現(xiàn)對系統(tǒng)的實時跟蹤。本文借鑒了此類思想,搭建了卡爾曼濾波的狀態(tài)估計器,并改進了檢測算法。
本文在電力系統(tǒng)狀態(tài)估計模型的基礎上,分析了虛假數(shù)據(jù)注入攻擊的原理,在IEEE-14節(jié)點系統(tǒng)中完成虛假數(shù)據(jù)注入攻擊實驗,以驗證傳統(tǒng)針對不良數(shù)據(jù)的檢測方法的局限性,并設計了一種基于卡爾曼濾波理論的檢測方案。
FIDA是一種針對電力系統(tǒng)狀態(tài)估計的有蓄謀的一種攻擊。
以直流模型線性化為基礎的狀態(tài)估計模型可表示為
z=Hx+e
(1)
式中:z——量測量;
H——系統(tǒng)參數(shù)矩陣,是常數(shù)矩陣,由電力系統(tǒng)的拓撲和線路阻抗決定;
x——有待估計的狀態(tài)量;
e——測量時的誤差。
通過加權最小二乘法(Weighted Least Squares,WLS)或其他算法求解函數(shù)得到估計表達式。估計表達式與閾值的關系是衡量系統(tǒng)是否存在不良數(shù)據(jù)的標準。即
J(x)min=(z-Hx)T·W(z-Hx)
(2)
式中:W——加權矩陣。
測量值中可能帶有壞數(shù)據(jù)。為了避免可能源自故障傳感器或拓撲誤差等原因的不良測量,需要將J(x)與閾值τ進行比較。如果J(x)小于閾值τ,則認為沒有不良數(shù)據(jù),反之要剔除相應的壞數(shù)據(jù)對系統(tǒng)重新進行狀態(tài)估計。
上述機制被文獻[6]引入FDIA后遭到破壞。該攻擊可以躲避殘差檢測,使狀態(tài)估計器誤認為這些測量數(shù)據(jù)仍然是好數(shù)據(jù),達到操縱狀態(tài)估計準確性的目的,破壞電網(wǎng)穩(wěn)定運行甚至從中謀取非法的經(jīng)濟利益[17-19]。
在原始量測量中加入非零攻擊矢量a
a=(a1,a2,a3,…,am)T
(3)
導致新的量測量za=z+a產(chǎn)生偏差。za發(fā)送到狀態(tài)估計器將導致狀態(tài)估計結果帶有偏差,即
(4)
式中:c——非零的向量;
將攻擊矢量構造為a=Hc,則
(5)
卡爾曼濾波算法是通過系統(tǒng)的輸入輸出,利用系統(tǒng)狀態(tài)方程,實現(xiàn)對系統(tǒng)狀態(tài)最優(yōu)估計的一種算法[20]。在連續(xù)變化且?guī)г肼暤南到y(tǒng)中運用卡爾曼濾波算法,具有占用存儲內(nèi)存較小、處理速度快等特點,適用于處理實時問題[21]。在已知模型的條件下,由于初始的誤差、噪聲變化、外界干擾等一些原因,使得輸出變量和狀態(tài)變量存在誤差。該算法通過比較對象和模擬系統(tǒng)的輸出,將其差值反饋到估計量中,實時修正模擬系統(tǒng)中的狀態(tài)變量??柭鼮V波原理如圖1所示。
圖1 卡爾曼濾波原理
文獻[22]的研究表明,電力系統(tǒng)中的攻擊或故障總是反映在電壓、電流或相位的變化上。文獻[23]從三相電壓公式推導得到了單測量節(jié)點的狀態(tài)空間模型。本文假設單點攻擊,使用單測點模型,動態(tài)方程為
x(t+1)=Ax(t)+w(t)
(6)
式中:t——時刻;
x(t)——系統(tǒng)狀態(tài),x(t)=[AcosφAsinφ]T;
w(t)——系統(tǒng)誤差,滿足均值為零、標準差為σ的高斯白噪聲。
基于卡爾曼濾波的狀態(tài)估計器流程如圖2所示。
圖2 狀態(tài)估計器結構流程
主要步驟的公式如下。
(1)時間更新
(7)
P(t|t-1)=AP(t-1)AT+Q
(8)
式中:Q——過程噪聲;
P——濾波方差值。
(2)量測值更新
(9)
式中:K(t)——卡爾曼增益;
y(t)——電壓輸出;
C(t)——協(xié)方差矩陣。
FDIA模型為
y=C(t)x(t)+v(t)+λya(t)
(10)
其中λ與攻擊位置有關。線路拓撲中存在較為脆弱的節(jié)點,在不同位置上的攻擊,理論上引發(fā)的后果會不同。故在式(10)中引入位置變量,便于對不同脆弱級的節(jié)點加以區(qū)別。ya(t)表示攻擊者構造的攻擊向量。當有攻擊發(fā)生時,測量輸出產(chǎn)生變化,量測的變化量再作用到狀態(tài)估計量中,導致狀態(tài)估計量也產(chǎn)生偏差。
當無攻擊發(fā)生時,盡管觀測器存在估計誤差,但觀測值和系統(tǒng)狀態(tài)在小范圍內(nèi)基本一致;當有FDIA時,檢測目標函數(shù)f(t)將逐漸增大,并超過一定的檢測閾值r。
考慮用如下的目標函數(shù)進行檢測
(11)
根據(jù)檢測目標函數(shù)與閾值r相比較可知:f(t)≥r,系統(tǒng)存在攻擊;f(t) 在IEEE-14系統(tǒng)下進行實驗。在沒有發(fā)生FDIA的情況下,實驗結果如圖3所示。 圖3 沒有FDIA時的目標函數(shù) 由圖3可知,在沒有FDIA的情況下,系統(tǒng)不會發(fā)生誤報,經(jīng)過4次迭代,目標函數(shù)收斂;標準化殘差法和目標函數(shù)極值法的檢測結果中均未顯示虛假數(shù)據(jù)。 利用matpower 4.0仿真數(shù)據(jù)包中IEEE-14拓撲結構下的潮流數(shù)據(jù),修改量測點數(shù)值的大小。 此時在1#數(shù)據(jù)編號位置,注入虛假數(shù)據(jù),修改其值為1,檢測結果如圖4所示。 由圖4可知,盡管存在虛假數(shù)據(jù),在測量數(shù)據(jù)編號關于標準化殘差和目標函數(shù)極值的圖中均未顯示檢測出虛假數(shù)據(jù)。 圖4 有FDIA時的檢測結果1 此外,在上述情況下,注入虛假數(shù)據(jù)的位置不變,修改其值為2,虛假數(shù)據(jù)注入下的檢測結果如圖5所示。 由圖5可知,在測量數(shù)據(jù)編號關于標準化殘差和目標函數(shù)極值的圖中均有虛假數(shù)據(jù)的標注,表示檢測出了虛假數(shù)據(jù)。但是由于攻擊設置在1#數(shù)據(jù)編號位置,測量數(shù)據(jù)編號關于標準化殘差的圖中標記在27#位置,測量數(shù)據(jù)編號關于目標函數(shù)極值的圖中標記在26#位置,所以仍無法有效且正確地檢測出虛假數(shù)據(jù)注入攻擊。 圖5 有FDIA時的檢測結果2 為驗證本文所提算法的可行性,利用MATLAB軟件,在三相電壓模型上進行仿真實驗。仿真實驗采用的仿真參數(shù)如表1所示。 表1 仿真參數(shù) 在沒有FDIA時,卡爾曼濾波狀態(tài)估計器對系統(tǒng)的狀態(tài)觀測結果如圖6所示。 由圖6可知,盡管輸入信號中混有隨機高斯白噪聲,卡爾曼濾波器仍可以較好地實現(xiàn)對系統(tǒng)的實時狀態(tài)跟蹤。 圖6 沒有FDIA時估計器對系統(tǒng)的狀態(tài)觀測結果 在0.2 s時觸發(fā)FDIA,卡爾曼濾波狀態(tài)估計器對系統(tǒng)的狀態(tài)觀測結果如圖7所示。 圖7 有FDIA時估計器對系統(tǒng)的狀態(tài)觀測結果 由圖7可知,在有FDIA的作用下,卡爾曼濾波器的輸出信號出現(xiàn)較大的波動。 在系統(tǒng)沒有虛假數(shù)據(jù)與有虛假數(shù)據(jù)攻擊兩種狀態(tài)下進行檢測效果對比,如圖8所示。由圖8可知:沒有FDIA時,盡管存在噪聲信號,檢測目標函數(shù)可以穩(wěn)定在零附近,不存在幅值上的較大變動;有FDIA時,檢測曲線發(fā)生明顯的變化,并很快超過檢測閾值,檢測有效。 圖8 兩種狀態(tài)下的檢測效果對比 本文對FDIA的原理、狀態(tài)估計的模型進行了分析,對以殘差方程為基礎的標準殘差檢測法和目標函數(shù)極值法進行了攻擊驗證;提出了一種針對FDIA問題的檢測方法,能夠在無需歷史數(shù)據(jù)訓練的情況下,短時間內(nèi)檢測到FDIA的發(fā)生,并進行了驗證。后續(xù)考慮進一步提高狀態(tài)估計器的抗噪能力,并對攻擊點進行辨識。此外,對FDIA的研究一直是智能電網(wǎng)領域的重要課題,還有待學者們進一步的探究。4 實驗驗證
4.1 沒有FDIA檢測
4.2 有FDIA檢測
5 仿真分析
5.1 沒有FDIA時的狀態(tài)觀測
5.2 有FDIA時的狀態(tài)觀測
5.3 兩種狀態(tài)下的檢測效果對比
6 結 語