王雅妮 朱 翠 趙圣健
(北京信息科技大學(xué)信息與通信工程學(xué)院 北京 100085)
隨著計(jì)算機(jī)技術(shù)、通信技術(shù)和自動(dòng)控制技術(shù)的不斷發(fā)展和融合,基于3C(Communication,Computer,Control)技術(shù)形成了一個(gè)實(shí)時(shí)感知、動(dòng)態(tài)控制與服務(wù)融合的復(fù)雜系統(tǒng)[1-2],稱之為信息物理系統(tǒng)(Cyber-Physical System,CPS)。由于CPS的逐漸成熟,其被廣泛應(yīng)用到諸多領(lǐng)域當(dāng)中,與人們的生活密切相關(guān)。許多惡意攻擊者將注意力轉(zhuǎn)向CPS系統(tǒng),不但增加了系統(tǒng)的安全風(fēng)險(xiǎn),而且造成了經(jīng)濟(jì)損失。比如2015年烏克蘭發(fā)生的停電事件[3],以色列等國家電網(wǎng)遭受惡意攻擊事件,中石化洛陽分公司DCS數(shù)據(jù)采集頻繁歸零事件,2017年5月“WannaCry”病毒造成全球多家大型工廠停產(chǎn)等。這些嚴(yán)重的安全事故造成了社會(huì)經(jīng)濟(jì)損失,引起了社會(huì)各界的高度重視。在眾多惡意的網(wǎng)絡(luò)攻擊[4-5]中,F(xiàn)DIA可以多次發(fā)起攻擊而不被發(fā)現(xiàn),并且FDIA更加巧妙、復(fù)雜、具有很高的隱蔽性,可以成功騙過普通的攻擊檢測機(jī)制,達(dá)到破壞關(guān)鍵數(shù)據(jù)信息的目的。因此研究FDIA下的信息物理系統(tǒng)安全具有現(xiàn)實(shí)意義。
對于虛假數(shù)據(jù)注入攻擊檢測方法的研究,文獻(xiàn)[6]基于卡爾曼濾波提出了χ2檢測方法,但是沒有考慮噪聲的時(shí)變特性,這樣會(huì)引起異常從而影響系統(tǒng)的檢測結(jié)果。文獻(xiàn)[7]提出狀態(tài)可達(dá)集的檢測方法,使用的傳統(tǒng)卡爾曼濾波算法仍未能解決實(shí)際噪聲的不確定性對系統(tǒng)的影響。文獻(xiàn)[8-9]提出了H∞-范數(shù)檢驗(yàn)法,此方法通過量測殘差可以檢測隨機(jī)攻擊,但是無法檢測具有隱蔽性的FDIA。并且,檢驗(yàn)設(shè)定的閾值會(huì)影響檢測精度。文獻(xiàn)[10]使用交互多模型卡爾曼濾波來估計(jì)系統(tǒng)狀態(tài),從處理系統(tǒng)參數(shù)變化角度考慮,可以提高估計(jì)精度,但是沒有解決噪聲的不確定性給系統(tǒng)帶來的影響。上述分析表明,使用傳統(tǒng)卡爾曼濾波無法解決噪聲的時(shí)變給系統(tǒng)帶來的影響,不僅使?fàn)顟B(tài)誤差增大,甚至?xí)霈F(xiàn)濾波發(fā)散等情況,因此必須考慮噪聲的時(shí)變特性。常用的卡方檢測可以檢測出一些網(wǎng)絡(luò)攻擊,但是由于FDIA具有隱蔽性,可以繞過錯(cuò)誤檢測機(jī)制使之檢測失敗,所以需要設(shè)計(jì)有效的檢測方法。本文基于自適應(yīng)卡爾曼濾波算法提出新的攻擊檢測方法,可以有效地檢測FDIA中的隨機(jī)攻擊和隱蔽攻擊。
考慮如下線性離散系統(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表示觀測變量之間的增益矩陣,兩者都可隨時(shí)間發(fā)生變化;uk∈Rnx是控制變量;B表示控制變量之間的增益矩陣;wk∈Rnx、vk∈Rny分別是過程噪聲和量測噪聲,并且是互不相關(guān)的零均值高斯白噪聲,同時(shí)具有隨時(shí)間變化的過程噪聲協(xié)方差矩陣Qk和量測噪聲協(xié)方差矩陣Rk[11]。
假設(shè)式(1)在未受到攻擊之前處于穩(wěn)定的狀態(tài),攻擊者可以通過控制傳感器的一系列數(shù)據(jù)達(dá)到攻擊目的,同時(shí)假設(shè)攻擊者持續(xù)攻擊的時(shí)間為T。這里考慮FDIA中的隨機(jī)攻擊和隱蔽攻擊兩種情況。
在隨機(jī)攻擊的情況下,攻擊者實(shí)現(xiàn)攻擊最快的方法就是使其輸出錯(cuò)誤,一般都采用直接破壞傳感器的量測數(shù)據(jù)的方法。模型如下:
(2)
在隱蔽攻擊的情況下,攻擊者需要設(shè)計(jì)攻擊序列來克服防御機(jī)制,攻擊序列可以控制傳感器數(shù)據(jù),所以攻擊者必須了解系統(tǒng)的信息。模型如下:
(3)
對于式(1),未遭受攻擊時(shí)其估計(jì)誤差為:
(4)
當(dāng)系統(tǒng)遭受隱蔽攻擊時(shí),假設(shè)c是遭受攻擊時(shí)狀態(tài)向量的誤差,a是攻擊者設(shè)計(jì)的攻擊向量序列,此時(shí)系統(tǒng)的誤差為:
(5)
卡爾曼濾波(Kalman Filter,KF)[11]利用遞歸的思想對信號過去和當(dāng)前的狀態(tài)進(jìn)行估計(jì),還可以對將來的狀態(tài)進(jìn)行預(yù)測,是一種合理、實(shí)用和高效的狀態(tài)估計(jì)方法,已被廣泛應(yīng)用于解決實(shí)際工程問題中,可以對數(shù)據(jù)進(jìn)行有效處理。
傳統(tǒng)KF的思想是:預(yù)估階段用前一時(shí)刻的狀態(tài)估計(jì)值推算當(dāng)前時(shí)刻的狀態(tài),獲得先驗(yàn)估計(jì);更新階段是對預(yù)估階段得到的預(yù)測值進(jìn)行修正,獲得后驗(yàn)估計(jì)。通過不斷地“預(yù)測-實(shí)測-修正”的遞推順序,最終達(dá)到一個(gè)平穩(wěn)狀態(tài),其每一步的計(jì)算迭代公式如下:
(6)
(7)
(8)
式中:Kk為卡爾曼增益。
(9)
(10)
傳統(tǒng)KF要求噪聲特性是已知確定的,Qk和Rk是定值。由于在實(shí)際中一般只能得到近似的統(tǒng)計(jì)特征,忽略噪聲的時(shí)變會(huì)造成觀測系統(tǒng)的狀態(tài)誤差變大,還會(huì)出現(xiàn)濾波發(fā)散的問題,本文采用指數(shù)平滑法對噪聲系數(shù)進(jìn)行動(dòng)態(tài)調(diào)整。
指數(shù)平滑法是結(jié)合全期平均法和移動(dòng)平均法各自優(yōu)點(diǎn)的一種加權(quán)移動(dòng)平均法,進(jìn)一步加強(qiáng)了近期觀察值對預(yù)測值的作用,使預(yù)測值能夠迅速反映實(shí)際的變化。指數(shù)平滑法不舍棄過去的數(shù)據(jù),而是給予按照指數(shù)衰落的影響因子。一次指數(shù)平滑的預(yù)測模型為:
(11)
根據(jù)上述方法,分別對Qk和Rk加入調(diào)整,表示方法如下:
(12)
(13)
式中:αq、αr都是大于0、小于等于1的平滑因子;Δq表示k時(shí)刻過程噪聲的觀測值和先驗(yàn)估計(jì)值之間的殘差;Δr表示k時(shí)刻量測噪聲的觀測值和先驗(yàn)估計(jì)值之間的殘差。在卡爾曼濾波中,得到:
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
由以上公式可以看出,AKF考慮了實(shí)際噪聲的時(shí)變特性對系統(tǒng)的影響,通過數(shù)據(jù)實(shí)時(shí)更新達(dá)到實(shí)時(shí)修正噪聲的目的[12-13]。
(23)
(24)
(25)
(26)
由自適應(yīng)卡爾曼濾波的式(17)和式(22)得:
(27)
當(dāng)系統(tǒng)遭受隱蔽虛假數(shù)據(jù)注入攻擊時(shí)式(27)變?yōu)椋?/p>
(28)
由式(28)可知,由于攻擊向量的隱蔽性,即當(dāng)a=Hkc時(shí),卡方檢測失敗。
由3.1節(jié)可知,卡方檢測無法檢測具有隱蔽性的FDIA,所以需要設(shè)計(jì)有效的檢測新方法,本文采用卡方檢測和相似性檢測相結(jié)合的方法。
相似性檢測就是用來度量兩個(gè)事物之間相似程度的方法,兩個(gè)事物的相似性越大則表示它們越接近。計(jì)算方法有很多種,比如歐幾里得距離、馬氏距離、明氏距離、余弦相似性等,其中歐幾里得距離具有對稱性和三角不等性。所以采用歐幾里得距離來比較估計(jì)值和量測值之間的偏離程度,進(jìn)而判斷系統(tǒng)是否遭受惡意攻擊。
歐幾里得距離簡稱歐氏距離,通過計(jì)算系統(tǒng)的量測值和估計(jì)值之間歐氏距離的大小可以反映出兩者之間的相似程度,如果系統(tǒng)遭受到攻擊,則量測值和估計(jì)值之間的偏離程度會(huì)很大,歐氏距離的值會(huì)超出預(yù)設(shè)閾值。公式表示為:
similarity=d(x,y)=
(29)
(30)
結(jié)合卡方檢測和相似性檢測,檢測新方法流程如圖1所示。
圖1 攻擊檢測流程
由圖1可知,首先采用自適應(yīng)卡爾曼濾波算法處理數(shù)據(jù),獲得傳感器測量值和狀態(tài)估計(jì)值;然后將數(shù)據(jù)送入卡方檢測器中,通過比較目標(biāo)檢測函數(shù)和預(yù)設(shè)閾值的大小可以檢測出一些網(wǎng)絡(luò)攻擊;再將未檢測出的數(shù)據(jù)送入相似性檢測器中,計(jì)算量測值和估計(jì)值的相似性指標(biāo);最后將相似性指標(biāo)與預(yù)設(shè)閾值進(jìn)行比較,如果相似性指標(biāo)超出閾值則表示系統(tǒng)受到隱蔽FDIA,此時(shí)無須再次計(jì)算閾值,直接使用卡方檢測里的閾值即可。上述分析表明,在卡方檢測的基礎(chǔ)上結(jié)合相似性檢測的新方法可以有效檢測系統(tǒng)是否遭受隱蔽FDIA。
本節(jié)通過仿真驗(yàn)證本文方法的有效性??紤]FDIA中的隨機(jī)攻擊和隱蔽攻擊兩種情況,分別用卡方檢測和檢測新方法進(jìn)行攻擊檢測。在式(2)和式(3)下,假設(shè)系統(tǒng)在T=40 s時(shí)開始遭受持續(xù)攻擊,根據(jù)文獻(xiàn)[15-18]最后選取閾值為2.6來進(jìn)行判斷。
圖2是采用AKF下的隨機(jī)攻擊檢測結(jié)果,可以看出在T=40 s之后,檢測指標(biāo)超出預(yù)設(shè)閾值,說明本文方法可以有效地檢測出隨機(jī)攻擊;圖3是采用AKF下的隱蔽攻擊檢測結(jié)果,可以看出卡方檢測的指標(biāo)有波動(dòng)但是一直沒有超過預(yù)設(shè)閾值,所以檢測失敗,而本文方法可以快速、有效地檢測出具有隱蔽性的FDIA。
圖2 AKF下的隨機(jī)攻擊檢測
圖3 AKF下的隱蔽攻擊檢測
圖4是采用KF下的隨機(jī)攻擊檢測結(jié)果,與圖2進(jìn)行對比,可以發(fā)現(xiàn)采用KF時(shí),在T=40 s時(shí)未能檢測出攻擊,而采用AKF時(shí)能夠更快更迅速地檢測到攻擊。圖5是采用KF下的隱蔽攻擊檢測結(jié)果,與圖3進(jìn)行對比可以發(fā)現(xiàn),AKF下的檢測比KF下的檢測更加快速有效,并且在T=40 s以后,采用AKF可以全部檢測到攻擊的發(fā)生。由于KF下不能解決噪聲不確定的影響,所以會(huì)出現(xiàn)誤報(bào)的情況,采用AKF可以降低噪聲變化不確定的影響。
圖4 KF下的隨機(jī)攻擊檢測
圖5 KF下的隱蔽攻擊檢測
綜上所述,本文提出的基于AKF的檢測新方法不但可以有效地檢測FDIA中的隨機(jī)攻擊,還可以快速、有效地檢測出具有隱蔽性的FDIA。
針對FDIA的隨機(jī)攻擊和隱蔽攻擊,本文提出一種基于自適應(yīng)卡爾曼濾波的檢測新方法。通過分析發(fā)現(xiàn),常用的卡方檢測可以檢測出隨機(jī)攻擊,但是無法成功檢測隱蔽攻擊,所以在其基礎(chǔ)上結(jié)合了相似性檢測,由于傳統(tǒng)卡爾曼濾波不能解決實(shí)際噪聲的不確定性對系統(tǒng)的影響,采用指數(shù)平滑法加入了噪聲系數(shù)的動(dòng)態(tài)調(diào)整,利用自適應(yīng)卡爾曼濾波算法提出新的檢測方法。最后采用仿真實(shí)驗(yàn)驗(yàn)證了本文方法的有效性,結(jié)果表明本文方法可以快速、有效地檢測到系統(tǒng)是否遭受具有隱蔽性的FDIA。下一步工作考慮如何提高檢測精度,進(jìn)而利用預(yù)設(shè)閾值來縮短檢測時(shí)間,同時(shí)將檢測攻擊從單個(gè)傳感器定位到多個(gè)傳感器中。