羅小元 潘雪揚 王新宇,2 關(guān)新平
智能電網(wǎng)是一種新型的電網(wǎng),它采用先進的通信網(wǎng)絡(luò)技術(shù)和控制技術(shù)來支持更高效的能源安全傳輸和分配.然而,由于智能電網(wǎng)系統(tǒng)的復(fù)雜性和開放性,智能電網(wǎng)中進行數(shù)據(jù)交換的信息網(wǎng)絡(luò)成為易受到惡意攻擊的對象[1?2].例如,2016 年,黑客攻擊烏克蘭國家電力部門致使國內(nèi)發(fā)生了一次大規(guī)模的停電事件[3],造成嚴重經(jīng)濟損失.因此,智能電網(wǎng)的攻擊檢測研究具有重要意義.
隱蔽假數(shù)據(jù)攻擊是目前惡意攻擊的典型代表,攻擊者對傳感器節(jié)點注入精心設(shè)計的錯誤數(shù)據(jù),接收錯誤數(shù)據(jù)的控制中心,繼而做出錯誤決策破壞系統(tǒng)的穩(wěn)定性[4].在文獻[5]中,拒絕服務(wù)攻擊旨在中斷電力網(wǎng)絡(luò)通信信道的可用性.文獻[6]構(gòu)建了一種對智能電網(wǎng)中以完整性和可用性為目標的攻擊分類方法.文獻[7]解決了在電力網(wǎng)絡(luò)中攻擊檢測和拓撲隔離的問題.文獻[8]提出了一種算法來識別要操作的智能電表的最優(yōu)數(shù)目,從而找到最優(yōu)攻擊策略,其目的是干擾電網(wǎng)系統(tǒng)的狀態(tài)估計,影響其穩(wěn)定性.文獻[9]設(shè)計了具有隱蔽特性的虛假數(shù)據(jù)攻擊,它可以使攻擊前后殘差基本不變,因此,基于卡方檢測器的檢測技術(shù)是無效的.近年來,隱蔽性攻擊檢測成為了研究熱點之一.
針對智能電網(wǎng)遭受虛假數(shù)據(jù)注入攻擊的檢測問題,近年來有了很多成果.文獻[10]中,以電機的電壓模型為研究對象,使用卡爾曼濾波(Kalman filter,KF)技術(shù)得到該系統(tǒng)的殘差序列,通過計算攻擊前后殘差序列之間的Bhattacharyya 距離來判斷系統(tǒng)中是否存在攻擊.該文獻的不足之處有兩點:1) Bhattacharyya 距離無法辨別虛假數(shù)據(jù)注入攻擊前后兩個殘差序列的相似性,因為虛假數(shù)據(jù)注入攻擊前后殘差保持不變;2)該電壓模型是線性的,對于實際中存在的大多數(shù)的非線性系統(tǒng),該檢測算法是失效的.文獻[11]使用卡爾曼濾波技術(shù)得到系統(tǒng)的狀態(tài),從系統(tǒng)狀態(tài)角度考慮設(shè)計檢測算法,提出歐幾里德檢測方法,該方法可以檢測隱蔽假數(shù)據(jù)注入攻擊.該文獻的不足之處是,系統(tǒng)方程對于噪聲是線性的,即該噪聲是加性噪聲,當系統(tǒng)方程對于噪聲是非線性的時候,噪聲經(jīng)過非線性變換,不再服從高斯分布,也就無法設(shè)計閾值,無法檢測攻擊.文獻[12]中,攻擊者可能會緩慢改變多個傳感器的測量值,因此上述統(tǒng)計異常檢測不會檢測到個別受損的測量值,所以提出檢測思想,這些測量值組合起來會導(dǎo)致狀態(tài)變量遠離其真值,然而,文中作出假設(shè),控制中心收集到的測量值都是服從高斯分布的,并基于此性質(zhì)設(shè)計了雙邊假設(shè)檢驗檢測攻擊.該文獻的不足之處是,電網(wǎng)系統(tǒng)中的參數(shù)僅會在特定情況下服從高斯分布,而這種情況并不常見,且建模時沒有考慮噪聲,所以該文中的檢測算法局限性較大.
因此,根據(jù)虛假數(shù)據(jù)注入攻擊的特性,考慮系統(tǒng)非線性和噪聲統(tǒng)計特性未知情況,本文提出一種基于自適應(yīng)平方根無跡卡爾曼濾波器 (Unscented Kalman filter,UKF) 的智能電網(wǎng)隱蔽假數(shù)據(jù)攻擊檢測方法.該算法可以有效地、穩(wěn)定地應(yīng)用于非線性系統(tǒng)中對系統(tǒng)狀態(tài)作出估計,依據(jù)系統(tǒng)狀態(tài)設(shè)計檢測算法檢測攻擊,并從檢測指標的角度與現(xiàn)有算法進行對比.最后進行仿真實驗,實驗結(jié)果證明,所提出的基于該算法的攻擊檢測方法可以準確地給出狀態(tài)估計值,從而檢測出隱蔽攻擊.
圖1 3 總線電網(wǎng)模型Fig.1 3-bus grid model
式中,δi表示總線的相角,mi為轉(zhuǎn)動慣量,di為阻尼系數(shù),ui為控制輸入信號,ηi是過程噪聲,Pij是從總線i到j(luò)的有功功率流
式中,V表示總線電壓,bij表示總線i,j之間的電納.
引入角速度ω,將上式改寫為一階微分方程組的形式,即
每一條總線都安裝有傳感器,將總線的數(shù)據(jù)傳輸回控制中心,系統(tǒng)輸出方程為
式中,yi表示總線i的輸出向量,ρ是測量噪聲.
針對上述系統(tǒng),本文采用歐拉離散化方法[13],即對于一個非線性系統(tǒng)
離散化后的形式為
采樣間隔值τ取值充分小以保證高階項 O (τ2) 忽略不計,本文中τ=0.1 s.
對式 (2) 使用上述歐拉離散化算法對該系統(tǒng)離散化,得到
其中,fo(·) 表示關(guān)于x的非線性函數(shù),將xk?1+τf(xk?1) 合并在一起,Bo=τB,η=τ?.
假設(shè)η和ρ是互不相關(guān)的非零均值高斯白噪聲,統(tǒng)計特性為
式中,Q是非負定矩陣,R是正定矩陣,δkj是Krone cher-δ函數(shù),即
假設(shè)一個惡意的第三方想要破壞第1.1 節(jié)中描述的系統(tǒng)的完整性.本文主要考慮虛假數(shù)據(jù)注入攻擊.
假設(shè)攻擊者具有系統(tǒng)知識,知道系統(tǒng)矩陣,控制矩陣,測量矩陣,可以控制一系列系統(tǒng)中的傳感器數(shù)據(jù).
考慮假數(shù)據(jù)注入攻擊模型描述為
式中,Γ=diag{γ1,···,γn}代表傳感器選擇矩陣,T是攻擊的時間范圍,當γi=1 時,代表第i個傳感器遭受攻擊,否則γi=0 .且ya(k) 是攻擊者精心構(gòu)建的攻擊向量序列,攻擊框圖如圖2 所示.
圖2 系統(tǒng)遭受攻擊框圖Fig.2 block diagram of system under attack
在隱蔽假數(shù)據(jù)注入攻擊情況下,在所考慮的攻擊模型中,攻擊者構(gòu)造攻擊序列注入傳感器,在該序列下,狀態(tài)差值最終將發(fā)散到∞,而不會觸發(fā)卡方檢測器.該攻擊序列滿足以下性質(zhì)[9]:
其中,xa(k)和ra(k) 是遭受攻擊時系統(tǒng)的狀態(tài)變量和殘差.對攻擊者克服檢測機制的隱蔽性進行分析[4].由輸出方程可得
式中,a表示攻擊信號,表示狀態(tài)估計值,c表示狀態(tài)變化量.由式(9)知,當a=Hc時,ra=r,從輸出殘差角度考慮,實現(xiàn)了隱蔽性.
由上述分析可知,從輸出殘差角度無法實現(xiàn)攻擊檢測.所以,需要借助濾波器從系統(tǒng)狀態(tài)入手,利用狀態(tài)差值檢測攻擊信號.本文考慮通過基于自適應(yīng)平方根無跡卡爾曼濾波器的方法,從系統(tǒng)狀態(tài)入手來檢測此種攻擊.
本文提出將噪聲估計環(huán)節(jié)[14]加入到無跡卡爾曼濾波算法中,實現(xiàn)對于噪聲統(tǒng)計特性的在線估計,同時改變標準UKF 中狀態(tài)誤差協(xié)方差矩陣的迭代方式來保證濾波器的穩(wěn)定性.
本小節(jié)給出平方根無跡變換的實現(xiàn)方式.
步驟 1.利用k?1 時刻的估計狀態(tài)及狀態(tài)誤差協(xié)方差矩陣來計算sigma 采樣點ξi,并給出其權(quán)值Wm,i和Wc,i.
步驟 2.計算sigma 點通過非線性函數(shù)的傳播結(jié)果
式(10)是無跡變換中的計算誤差協(xié)方差矩陣的公式,平方根無跡變換將式(10)換為
假設(shè)噪聲是非零均值的高斯噪聲,本文使用的是Sage-Husa 噪聲估計器,通過極大后驗估計原理,獲得次優(yōu)噪聲估計值,噪聲估計部分可參考文獻[14].
對于系統(tǒng)(6),系統(tǒng)方程是非線性的,輸出方程是線性的,所以噪聲估計器為
本節(jié)用到了MATLAB 中的3 個函數(shù),分別為:qr 函數(shù),cholupdate 函數(shù),diag 函數(shù).
1)qr(·) 表示QR 分解,A∈Rm×l,[Q,R]=qr(A),該函數(shù)生成m×l上三角形矩陣R和m×m酉矩陣Q,從而,A=Q×R.
2)R1=cholupdate(R,x),返回A+xx′的上三角Cholesky 因子,x是具有合適長度的一個列向量,其中,R=chol(A)是A的原始Cholesky 分解因子.
3) d iag{·}函數(shù),D=diag{v},返回以向量v的元素為主對角線的對角矩陣.x=diag{A},返回A的主對角線元素的列向量.對于式(22)中最外側(cè)的diag{·},返回一個對角矩陣,主對角線元素是每一次迭代得到的噪聲矩陣主對角線元素的平方根的實時估計值.
自適應(yīng)平方根無跡卡爾曼濾波(Adaptive square-root UKF,ASRUKF)算法的具體步驟如下.
步驟 1.初始化(k=1):
注1.Sage-Husa 噪聲估計器不能同時處理過程噪聲和測量噪聲都未知的情況,否則會造成濾波發(fā)散,故上述算法假設(shè)測量噪聲的均值和方差均是已知的[15].
注2.式(14) 的最后一個子式中,±表示當Wc,1>0時,取正;反之,取負,以保證根號下不出現(xiàn)負數(shù)[16].
本小節(jié)給出自適應(yīng)平方根無跡卡爾曼濾波算法的估計誤差保持隨機有界性的充分條件,并給出證明.
對于非線性電網(wǎng)系統(tǒng)(6)
式中
其中,βk=diag{β1k,···,βnk}為未知的矩陣,其作用是彌補建模一階線性化引起的模型誤差.
對于式(24)中的輸出方程,定義
那么自適應(yīng)平方根無跡卡爾曼濾波算法的狀態(tài)估計誤差將是均方有界的,即自適應(yīng)平方根無跡卡爾曼濾波器穩(wěn)定.
證明.選擇函數(shù)
因此,自適應(yīng)平方根無跡卡爾曼濾波算法狀態(tài)估計誤差將是均方有界的,即自適應(yīng)平方根無跡卡爾曼濾波器是穩(wěn)定的. □
注3.因為誤差序列是隨機過程,是該隨機過程的均值函數(shù),隨機有界指該隨機過程有界.即對于任意時刻k,對于服從高斯分布的噪聲ω,定理1 確保了誤差的2 范數(shù)平方的期望值是有界的,即上限α的值由定理1 確定.
本節(jié)分析了文獻[6],[10?11]中所使用的檢測方法的不足之處.提出一種新的檢測方法,利用中心極限定理設(shè)計新的檢測算法,依據(jù)隨機變量的統(tǒng)計特性提出雙邊假設(shè)檢驗法檢測攻擊,從誤檢率方面對本文算法給出分析,并與巴氏系數(shù)檢測算法[10]、歐幾里德檢測算法[11]進行對比與分析.
文獻[6] 針對虛假數(shù)據(jù)注入攻擊,構(gòu)造了CUSUM 算法來檢測攻擊.該算法步驟如下:
文獻[6]中假設(shè)噪聲服從高斯分布,可知χt服從χ2分布.F(·) 表示χ2分布的概率分布函數(shù),pt表示χ2分布的上(右)尾概率,α表示系統(tǒng)給定的上(右)尾概率用于檢驗yt是否是異常值.根據(jù)χ2分布的上α分位點性質(zhì),當yt是異常值時,st >0;當yt是正常值時,st ≤0 .當yt是異常值時,gt的值會隨時間累積直到超過檢測閾值h(h的確定參考文獻[6]),此時發(fā)出警報.該算法通過引入h,避免了歐氏檢測算法那種僅考慮誤檢率的閾值設(shè)計方法,在誤檢率和誤檢周期之間做到了平衡,既降低了噪聲的影響,又可以盡快檢測出攻擊.
但是,該算法實質(zhì)上是依賴與噪聲的高斯分布特性,即,實質(zhì)上還是χ2檢測,所以在遇到本文所研究的攻擊時,攻擊前后的殘差基本保持不變,因此該算法是不可用的.
文獻[10]中針對具有隱蔽性的復(fù)數(shù)域攻擊,提出一種檢測思想,濾波器在不受攻擊下工作和濾波器在錯誤數(shù)據(jù)注入攻擊下工作會產(chǎn)生兩個服從高斯分布的殘差序列,通過計算上述兩個服從高斯分布的殘差序列的巴氏相似性系數(shù)DB來判斷攻擊是否發(fā)生.
當物理系統(tǒng)的基本動力學(xué)用線性系統(tǒng)和高斯統(tǒng)計特性的噪聲進行建模時,在正常操作期間,殘差序列vo遵循零均值高斯分布vo=N(ro,So),攻擊發(fā)生后殘差序列
Bhattacharyya 距離無法辨別虛假數(shù)據(jù)注入攻擊前后兩個殘差序列的相似性,因為虛假數(shù)據(jù)注入攻擊前后殘差保持不變.除此之外,該檢測法的前提是線性系統(tǒng),因為線性運算雖然會改變系統(tǒng)中隨機變量的均值和方差但并不會改變隨機變量服從高斯分布的特性,對于本文所研究的非線性系統(tǒng),這種方法是不可用的.
目前存在的檢測方法大多是在加性噪聲的基礎(chǔ)上提出的,在文獻[11]中,假設(shè)過程方程和量測方程相對于噪聲是線性的,即
文獻[11]中, 歐氏檢測法的閾值和誤檢率正是基于噪聲項的附加性得到的, 因為噪聲并不參與到非線性變換中, 所以噪聲的特性就是假設(shè)的正態(tài)分布的3σ特性, 使用正態(tài)分布的3σ原則設(shè)計閾值. 只有在這種前提下, 歐氏距離檢測算法才是正確的. 實際上, 過程和量測方程相對于噪聲也可能是非線性的,即
在這種情況下,歐氏距離檢測法的閾值設(shè)計思想是行不通的,因為噪聲不再作為附加項,而是直接參與到非線性變換中.此時,噪聲不再服從正態(tài)分布,統(tǒng)計特性未知,因此閾值無法設(shè)計.
綜上,本文提出一種檢測思想: 在攻擊未發(fā)生時,利用本文提出的非線性濾波方法,根據(jù)總線i上傳感器在時間范圍 [t0,tk] 收集到的測量數(shù)據(jù)獲得系統(tǒng)狀態(tài)估計值,進而獲得后驗狀態(tài)誤差值,此時并不知道狀態(tài)誤差這個隨機變量服從什么分布,而且也不用對該隨機變量的統(tǒng)計特性作出假設(shè).本文將時間區(qū)間 [t0,tk] 分成l個小區(qū)間,對每一個小區(qū)間包含的使用中心極限定理[18]構(gòu)造隨機變量,得到l個,i ∈l,這l個隨機變量是服從標準正態(tài)分布的,當攻擊發(fā)生時,會偏離標準整體分布,從而達到檢測攻擊的目的.
本文所提出的檢測方法從系統(tǒng)內(nèi)部狀態(tài)誤差入手,不受限于傳感器參數(shù)的概率分布未知所帶來的影響,不受限于加性噪聲和非加性噪聲的情況,可以成功地完成攻擊檢測,并從數(shù)學(xué)角度給出了誤檢率與閾值之間的關(guān)系.
1)當系統(tǒng)正常運行時
其中,q和r分別表示系統(tǒng)遭受攻擊后均值和方差的變化.本文使用m和υ作為系統(tǒng)正常行為的度量.接下來,建立了一對閾值Tl和Th,用于檢測系統(tǒng)是否遭受攻擊,Tl=m ?kυ,Th=m+kυ,表示允許偏離原數(shù)據(jù)的最大范圍.當隨機變量S[Tl,Th] 時,則確定系統(tǒng)遭受攻擊[19].基于此,提出一個雙邊假設(shè)檢驗
式中,H0代表系統(tǒng)沒有遭受攻擊,H1代表系統(tǒng)遭受攻擊.
誤檢率PF的定義是攻擊沒有發(fā)生卻宣布攻擊發(fā)生的概率,即SN(m,υ),同時,|.
本節(jié)驗證本文設(shè)計的自適應(yīng)平方根無跡卡爾曼濾波算法估計狀態(tài)及所提出檢測算法檢測攻擊有效性,并與歐幾里得檢測方法進行對比.仿真參數(shù)和初始值為m=[8.9,8.8,8.5],d=[3.1,3.4,3.7],u=[6.3,1.6,8.5]T,B=[03×3;diag{1/m}].
為了最小化由噪聲引起的誤報率,歐幾里得檢測法的閾值設(shè)計采用 3σ準則(σ是噪聲信號的標準差),那么得到先驗閾值f=3σ=0.3.
對于模型(6),未遭受攻擊時的狀態(tài)估計,從圖3可以看出,ASRUKF 濾波器的濾波性能很好,濾波精度很高.
圖3 ASRUKF 下的狀態(tài)估計Fig.3 State estimation in ASRUKF
1) 歐幾里得檢測法[11].由圖 4可知,在迭代步數(shù)k=30 時刻對系統(tǒng)注入攻擊,在k=80 時刻成功檢測到攻擊,歐幾里得檢測法可以成功檢測出虛假數(shù)據(jù)注入攻擊.
圖4 兩種檢測方法針對隱蔽假數(shù)據(jù)攻擊Fig.4 Two detection methods for covert false data attack
2) 巴氏相似性系數(shù)檢測法[10].巴氏系數(shù)范圍為0 到1 之間.越接近0,證明兩序列越相似.由圖5可知,巴氏相似性系數(shù)無法辨別虛假數(shù)據(jù)注入攻擊前后兩個殘差序列的相似性,不可以檢測出虛假數(shù)據(jù)注入攻擊.
圖5 巴氏相似性系數(shù)Fig.5 Bhattacharyya coefficient
3) 本文所提的檢測方法.首先,使用分位數(shù)–分位數(shù)(Quantile-quantile,Q-Q)圖來確定前面根據(jù)中心極限定理構(gòu)造的分布可以近似為高斯分布.因為根據(jù)中心極限定理,隨機變量的數(shù)量越多,它們的和也越近似服從高斯分布.然而,考慮實際情況,取無限多的獨立隨機變量是不符合實際的,所以在近似高斯分布的同時,要盡量選取較少的獨立隨機變量.要利用Q-Q 圖鑒別樣本數(shù)據(jù)是否近似于高斯分布,只需觀察Q-Q 圖上的點是否近似地在一條直線附近.
本文的檢測算法選取了T=30 個獨立隨機變量參與運算,由圖6 可知,數(shù)據(jù)的分布非常接近直線,這證明的分布可以視為高斯分布.
圖6 S 的Q-Q圖Fig.6 Quantile-quantile plot of S
由圖7 可以看出,本文的檢測算法對于隱蔽假數(shù)據(jù)攻擊的有效性,在迭代步數(shù)k=30 處注入攻擊,選取30 個迭代步驟下的隨機變量構(gòu)造出Sx?,所以在k=60處超過了閾值,實現(xiàn)了攻擊檢測.
圖7 本文提出的攻擊檢測方法Fig.7 Attack detection proposed in this paper
圖8 給出了誤檢率隨k變化的曲線.從圖8 可知,一個算法的誤檢率過高,是因為閾值設(shè)置得太低,導(dǎo)致攻擊之外的因素也會使得被檢測的量超過閾值.隨著k值增大,閾值變高,誤檢率自然隨之下降.
在圖8 中,當k=3 時,誤檢率PF=0.0027,除此之外,由圖4 可知,歐氏檢測法檢測到攻擊所用時間是 ?k=50;由圖8 可知,檢測到攻擊所用時間是 ?k=30,檢測用時更短.
圖8 誤檢率PFFig.8 False alarm ratePF
綜上,對比三種檢測方法可知,本文提出的檢測方法可以成功檢測攻擊不受限于傳感器參數(shù)統(tǒng)計特性未知所帶來的影響,不受限于加性噪聲和非加性噪聲的情況,對于實際系統(tǒng)的適用性更強.
本文研究了智能電網(wǎng)系統(tǒng)中虛假數(shù)據(jù)注入攻擊的檢測問題.針對非線性系統(tǒng),噪聲統(tǒng)計特性未知的情況,本文使用自適應(yīng)平方根無跡卡爾曼濾波算法對系統(tǒng)內(nèi)部狀態(tài)和噪聲作出估計.針對傳感器參數(shù)統(tǒng)計特性未知和非加性噪聲的情況,利用中心極限定理構(gòu)造出符合正態(tài)分布的隨機變量,基于該隨機變量提出了一種攻擊檢測方法,并從評價指標的角度對算法進行分析,該算法對于實際系統(tǒng)的適用性更強.