王雅妮 朱 翠 趙圣健
(北京信息科技大學信息與通信工程學院 北京 100085)
隨著計算機技術、通信技術和自動控制技術的不斷發(fā)展和融合,基于3C(Communication,Computer,Control)技術形成了一個實時感知、動態(tài)控制與服務融合的復雜系統(tǒng)[1-2],稱之為信息物理系統(tǒng)(Cyber-Physical System,CPS)。由于CPS的逐漸成熟,其被廣泛應用到諸多領域當中,與人們的生活密切相關。許多惡意攻擊者將注意力轉(zhuǎn)向CPS系統(tǒng),不但增加了系統(tǒng)的安全風險,而且造成了經(jīng)濟損失。比如2015年烏克蘭發(fā)生的停電事件[3],以色列等國家電網(wǎng)遭受惡意攻擊事件,中石化洛陽分公司DCS數(shù)據(jù)采集頻繁歸零事件,2017年5月“WannaCry”病毒造成全球多家大型工廠停產(chǎn)等。這些嚴重的安全事故造成了社會經(jīng)濟損失,引起了社會各界的高度重視。在眾多惡意的網(wǎng)絡攻擊[4-5]中,F(xiàn)DIA可以多次發(fā)起攻擊而不被發(fā)現(xiàn),并且FDIA更加巧妙、復雜、具有很高的隱蔽性,可以成功騙過普通的攻擊檢測機制,達到破壞關鍵數(shù)據(jù)信息的目的。因此研究FDIA下的信息物理系統(tǒng)安全具有現(xiàn)實意義。
對于虛假數(shù)據(jù)注入攻擊檢測方法的研究,文獻[6]基于卡爾曼濾波提出了χ2檢測方法,但是沒有考慮噪聲的時變特性,這樣會引起異常從而影響系統(tǒng)的檢測結(jié)果。文獻[7]提出狀態(tài)可達集的檢測方法,使用的傳統(tǒng)卡爾曼濾波算法仍未能解決實際噪聲的不確定性對系統(tǒng)的影響。文獻[8-9]提出了H∞-范數(shù)檢驗法,此方法通過量測殘差可以檢測隨機攻擊,但是無法檢測具有隱蔽性的FDIA。并且,檢驗設定的閾值會影響檢測精度。文獻[10]使用交互多模型卡爾曼濾波來估計系統(tǒng)狀態(tài),從處理系統(tǒng)參數(shù)變化角度考慮,可以提高估計精度,但是沒有解決噪聲的不確定性給系統(tǒng)帶來的影響。上述分析表明,使用傳統(tǒng)卡爾曼濾波無法解決噪聲的時變給系統(tǒng)帶來的影響,不僅使狀態(tài)誤差增大,甚至會出現(xiàn)濾波發(fā)散等情況,因此必須考慮噪聲的時變特性。常用的卡方檢測可以檢測出一些網(wǎng)絡攻擊,但是由于FDIA具有隱蔽性,可以繞過錯誤檢測機制使之檢測失敗,所以需要設計有效的檢測方法。本文基于自適應卡爾曼濾波算法提出新的攻擊檢測方法,可以有效地檢測FDIA中的隨機攻擊和隱蔽攻擊。
考慮如下線性離散系統(tǒng):
xk=Fk-1xk-1+Bkuk+wk
yk=Hkxk+vk
(1)
式中:xk∈Rnx是物理對象的狀態(tài)變量;yk∈Rny是傳感器獲得的觀測變量;nx,ny∈Z+;F表示狀態(tài)變量之間的增益矩陣;H表示觀測變量之間的增益矩陣,兩者都可隨時間發(fā)生變化;uk∈Rnx是控制變量;B表示控制變量之間的增益矩陣;wk∈Rnx、vk∈Rny分別是過程噪聲和量測噪聲,并且是互不相關的零均值高斯白噪聲,同時具有隨時間變化的過程噪聲協(xié)方差矩陣Qk和量測噪聲協(xié)方差矩陣Rk[11]。
假設式(1)在未受到攻擊之前處于穩(wěn)定的狀態(tài),攻擊者可以通過控制傳感器的一系列數(shù)據(jù)達到攻擊目的,同時假設攻擊者持續(xù)攻擊的時間為T。這里考慮FDIA中的隨機攻擊和隱蔽攻擊兩種情況。
在隨機攻擊的情況下,攻擊者實現(xiàn)攻擊最快的方法就是使其輸出錯誤,一般都采用直接破壞傳感器的量測數(shù)據(jù)的方法。模型如下:
(2)

在隱蔽攻擊的情況下,攻擊者需要設計攻擊序列來克服防御機制,攻擊序列可以控制傳感器數(shù)據(jù),所以攻擊者必須了解系統(tǒng)的信息。模型如下:
(3)

對于式(1),未遭受攻擊時其估計誤差為:
(4)

當系統(tǒng)遭受隱蔽攻擊時,假設c是遭受攻擊時狀態(tài)向量的誤差,a是攻擊者設計的攻擊向量序列,此時系統(tǒng)的誤差為:
(5)

卡爾曼濾波(Kalman Filter,KF)[11]利用遞歸的思想對信號過去和當前的狀態(tài)進行估計,還可以對將來的狀態(tài)進行預測,是一種合理、實用和高效的狀態(tài)估計方法,已被廣泛應用于解決實際工程問題中,可以對數(shù)據(jù)進行有效處理。
傳統(tǒng)KF的思想是:預估階段用前一時刻的狀態(tài)估計值推算當前時刻的狀態(tài),獲得先驗估計;更新階段是對預估階段得到的預測值進行修正,獲得后驗估計。通過不斷地“預測-實測-修正”的遞推順序,最終達到一個平穩(wěn)狀態(tài),其每一步的計算迭代公式如下:
(6)
(7)

(8)
式中:Kk為卡爾曼增益。
(9)
(10)
傳統(tǒng)KF要求噪聲特性是已知確定的,Qk和Rk是定值。由于在實際中一般只能得到近似的統(tǒng)計特征,忽略噪聲的時變會造成觀測系統(tǒng)的狀態(tài)誤差變大,還會出現(xiàn)濾波發(fā)散的問題,本文采用指數(shù)平滑法對噪聲系數(shù)進行動態(tài)調(diào)整。
指數(shù)平滑法是結(jié)合全期平均法和移動平均法各自優(yōu)點的一種加權移動平均法,進一步加強了近期觀察值對預測值的作用,使預測值能夠迅速反映實際的變化。指數(shù)平滑法不舍棄過去的數(shù)據(jù),而是給予按照指數(shù)衰落的影響因子。一次指數(shù)平滑的預測模型為:
(11)

根據(jù)上述方法,分別對Qk和Rk加入調(diào)整,表示方法如下:
(12)
(13)
式中:αq、αr都是大于0、小于等于1的平滑因子;Δq表示k時刻過程噪聲的觀測值和先驗估計值之間的殘差;Δr表示k時刻量測噪聲的觀測值和先驗估計值之間的殘差。在卡爾曼濾波中,得到:
(14)
(15)

(16)
(17)
(18)
(19)
(20)
(21)
(22)
由以上公式可以看出,AKF考慮了實際噪聲的時變特性對系統(tǒng)的影響,通過數(shù)據(jù)實時更新達到實時修正噪聲的目的[12-13]。

(23)
(24)
(25)



(26)
由自適應卡爾曼濾波的式(17)和式(22)得:
(27)
當系統(tǒng)遭受隱蔽虛假數(shù)據(jù)注入攻擊時式(27)變?yōu)椋?/p>
(28)
由式(28)可知,由于攻擊向量的隱蔽性,即當a=Hkc時,卡方檢測失敗。
由3.1節(jié)可知,卡方檢測無法檢測具有隱蔽性的FDIA,所以需要設計有效的檢測新方法,本文采用卡方檢測和相似性檢測相結(jié)合的方法。
相似性檢測就是用來度量兩個事物之間相似程度的方法,兩個事物的相似性越大則表示它們越接近。計算方法有很多種,比如歐幾里得距離、馬氏距離、明氏距離、余弦相似性等,其中歐幾里得距離具有對稱性和三角不等性。所以采用歐幾里得距離來比較估計值和量測值之間的偏離程度,進而判斷系統(tǒng)是否遭受惡意攻擊。
歐幾里得距離簡稱歐氏距離,通過計算系統(tǒng)的量測值和估計值之間歐氏距離的大小可以反映出兩者之間的相似程度,如果系統(tǒng)遭受到攻擊,則量測值和估計值之間的偏離程度會很大,歐氏距離的值會超出預設閾值。公式表示為:
similarity=d(x,y)=
(29)


(30)
結(jié)合卡方檢測和相似性檢測,檢測新方法流程如圖1所示。

圖1 攻擊檢測流程
由圖1可知,首先采用自適應卡爾曼濾波算法處理數(shù)據(jù),獲得傳感器測量值和狀態(tài)估計值;然后將數(shù)據(jù)送入卡方檢測器中,通過比較目標檢測函數(shù)和預設閾值的大小可以檢測出一些網(wǎng)絡攻擊;再將未檢測出的數(shù)據(jù)送入相似性檢測器中,計算量測值和估計值的相似性指標;最后將相似性指標與預設閾值進行比較,如果相似性指標超出閾值則表示系統(tǒng)受到隱蔽FDIA,此時無須再次計算閾值,直接使用卡方檢測里的閾值即可。上述分析表明,在卡方檢測的基礎上結(jié)合相似性檢測的新方法可以有效檢測系統(tǒng)是否遭受隱蔽FDIA。
本節(jié)通過仿真驗證本文方法的有效性。考慮FDIA中的隨機攻擊和隱蔽攻擊兩種情況,分別用卡方檢測和檢測新方法進行攻擊檢測。在式(2)和式(3)下,假設系統(tǒng)在T=40 s時開始遭受持續(xù)攻擊,根據(jù)文獻[15-18]最后選取閾值為2.6來進行判斷。
圖2是采用AKF下的隨機攻擊檢測結(jié)果,可以看出在T=40 s之后,檢測指標超出預設閾值,說明本文方法可以有效地檢測出隨機攻擊;圖3是采用AKF下的隱蔽攻擊檢測結(jié)果,可以看出卡方檢測的指標有波動但是一直沒有超過預設閾值,所以檢測失敗,而本文方法可以快速、有效地檢測出具有隱蔽性的FDIA。

圖2 AKF下的隨機攻擊檢測

圖3 AKF下的隱蔽攻擊檢測
圖4是采用KF下的隨機攻擊檢測結(jié)果,與圖2進行對比,可以發(fā)現(xiàn)采用KF時,在T=40 s時未能檢測出攻擊,而采用AKF時能夠更快更迅速地檢測到攻擊。圖5是采用KF下的隱蔽攻擊檢測結(jié)果,與圖3進行對比可以發(fā)現(xiàn),AKF下的檢測比KF下的檢測更加快速有效,并且在T=40 s以后,采用AKF可以全部檢測到攻擊的發(fā)生。由于KF下不能解決噪聲不確定的影響,所以會出現(xiàn)誤報的情況,采用AKF可以降低噪聲變化不確定的影響。

圖4 KF下的隨機攻擊檢測

圖5 KF下的隱蔽攻擊檢測
綜上所述,本文提出的基于AKF的檢測新方法不但可以有效地檢測FDIA中的隨機攻擊,還可以快速、有效地檢測出具有隱蔽性的FDIA。
針對FDIA的隨機攻擊和隱蔽攻擊,本文提出一種基于自適應卡爾曼濾波的檢測新方法。通過分析發(fā)現(xiàn),常用的卡方檢測可以檢測出隨機攻擊,但是無法成功檢測隱蔽攻擊,所以在其基礎上結(jié)合了相似性檢測,由于傳統(tǒng)卡爾曼濾波不能解決實際噪聲的不確定性對系統(tǒng)的影響,采用指數(shù)平滑法加入了噪聲系數(shù)的動態(tài)調(diào)整,利用自適應卡爾曼濾波算法提出新的檢測方法。最后采用仿真實驗驗證了本文方法的有效性,結(jié)果表明本文方法可以快速、有效地檢測到系統(tǒng)是否遭受具有隱蔽性的FDIA。下一步工作考慮如何提高檢測精度,進而利用預設閾值來縮短檢測時間,同時將檢測攻擊從單個傳感器定位到多個傳感器中。