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

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

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

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

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

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

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

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

(23)
(24)
(25)



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


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

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

圖2 AKF下的隨機攻擊檢測

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

圖4 KF下的隨機攻擊檢測

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