楊 康, 王 瑞,, 關(guān) 永, 李曉娟,, 施智平, Xiaoyu SONG
1(輕型工業(yè)機(jī)器人與安全驗(yàn)證北京市重點(diǎn)實(shí)驗(yàn)室(首都師范大學(xué) 信息工程學(xué)院),北京 100048)
2(電子系統(tǒng)可靠性與數(shù)理交叉學(xué)科國(guó)家國(guó)際科技合作示范型基地(首都師范大學(xué)),北京 100048)
3(Portland State University, Portland 97230, OR 97230, USA)
信息物理系統(tǒng)(cyber-physical system,簡(jiǎn)稱CPS)在環(huán)境感知的基礎(chǔ)上實(shí)現(xiàn)了計(jì)算、網(wǎng)絡(luò)通信和物理元素的緊密結(jié)合[1].CPS改變了人們與周圍物理世界的相互作用和控制方式.與傳統(tǒng)的嵌入式系統(tǒng)相比,CPS具有智能化、控制精確、網(wǎng)絡(luò)開(kāi)放性等諸多優(yōu)點(diǎn).近年來(lái),隨著信息技術(shù)與控制技術(shù)的發(fā)展,CPS廣泛應(yīng)用于國(guó)家關(guān)鍵基礎(chǔ)設(shè)施和工業(yè)控制等領(lǐng)域,包括醫(yī)療系統(tǒng)、供水系統(tǒng)、國(guó)防和武器系統(tǒng)等[2,3].
隨著信息物理系統(tǒng)在安全攸關(guān)領(lǐng)域的應(yīng)用越來(lái)越廣泛,確保該系統(tǒng)的安全是很有必要的[4-6].因此,CPS的安全問(wèn)題也越來(lái)越受到人們的重視.攻擊者可能有不同的動(dòng)機(jī)去惡意破壞系統(tǒng),對(duì)系統(tǒng)造成不同程度的損壞,從性能上的輕微干擾到完全地控制系統(tǒng)[7].最近的工作表明,攻擊者可能通過(guò)車輛的車載通信協(xié)議或傳感器欺騙中的漏洞來(lái)劫持現(xiàn)代車輛[8,9].類似地,如Maroochy Water漏洞[10]和蠕蟲(chóng)Stuxnet能夠通過(guò)利用監(jiān)督控制和數(shù)據(jù)采集(SCADA)系統(tǒng)[11]中的弱點(diǎn)來(lái)禁用關(guān)鍵基礎(chǔ)設(shè)施.
隨著傳感器技術(shù)的迅速發(fā)展,現(xiàn)代CPS通常配備有測(cè)量相同物理變量的多個(gè)傳感器.例如,可以用GPS、輪編碼器、超聲波和IMU等傳感器來(lái)測(cè)量汽車的速度.融合這些傳感器的數(shù)據(jù)可以為控制器提供更準(zhǔn)確的估計(jì),這可能會(huì)對(duì)系統(tǒng)的性能和可靠性產(chǎn)生很大影響[12,13].即使這些傳感器的精度可能不同,但是融合它們的測(cè)量不僅能夠產(chǎn)生比任何單個(gè)傳感器更精確的估計(jì),而且還能夠增加系統(tǒng)對(duì)外部干擾的魯棒性[14,15].此外,具有不同精度和可靠性的不同傳感器降低了系統(tǒng)對(duì)特定傳感器的依賴性.Marzullo開(kāi)發(fā)了一種融合算法,利用多個(gè)傳感器的測(cè)量,產(chǎn)生包含真實(shí)值的融合間隔[15].在Marzullo提出的融合算法的基礎(chǔ)上,Ivanov等人通過(guò)引入傳感器傳輸時(shí)間表[16]和使用歷史測(cè)量[17]提出了一個(gè)精確和魯棒性的傳感器融合算法.
目前已經(jīng)存在許多關(guān)于傳感器攻擊檢測(cè)問(wèn)題的研究,大多數(shù)檢測(cè)惡意傳感器攻擊的方法都主要考慮概率傳感器的情況.例如,Kalman提出的卡爾曼濾波器,把假設(shè)的傳感器精度和已知的系統(tǒng)動(dòng)力學(xué)模型相結(jié)合,產(chǎn)生最佳線性估計(jì)[18].Kwon等人提出把卡爾曼濾波算法用于在檢測(cè)測(cè)量數(shù)據(jù)是否被篡改的同時(shí)執(zhí)行狀態(tài)估計(jì)[19].另外,Jayasimha等人提出通過(guò)測(cè)量數(shù)據(jù)協(xié)方差矩陣中的元素的變化來(lái)檢測(cè)和識(shí)別不良數(shù)據(jù)[20].然而,當(dāng)系統(tǒng)中存在瞬態(tài)故障時(shí),這些方法容易出現(xiàn)殘留污染和殘留淹沒(méi),將導(dǎo)致誤報(bào)或無(wú)法檢測(cè)到攻擊.這些方法的特點(diǎn)是以相同的方式處理瞬態(tài)故障和攻擊,因此忽略了傳感器有時(shí)可能由于臨時(shí)干擾而提供故障測(cè)量的事實(shí).瞬態(tài)故障是指?jìng)鞲衅髟诙虝r(shí)間內(nèi)提供錯(cuò)誤的測(cè)量并在不久之后消失.例如,在隧道中,GPS經(jīng)常暫時(shí)與衛(wèi)星失去連接.因此,不應(yīng)該把瞬態(tài)故障看作對(duì)系統(tǒng)的安全威脅.為了消除這些局限性,Park等人通過(guò)為每個(gè)傳感器提供一個(gè)瞬態(tài)故障模型來(lái)區(qū)分瞬態(tài)故障和攻擊,并利用成對(duì)傳感器關(guān)系開(kāi)發(fā)了一種當(dāng)存在瞬態(tài)故障時(shí)傳感器攻擊檢測(cè)和識(shí)別的方法[21].該方法的局限性在于它們僅考慮了兩個(gè)傳感器不相交的情況,忽略了它們相交時(shí)也可能提供有故障測(cè)量的事實(shí),致使有些攻擊不能被檢測(cè)出來(lái).例如,隱身攻擊.即,攻擊者有足夠的能力,為了保持不被檢測(cè)到,以最大化融合間隔,并使得任意兩個(gè)傳感器的間隔盡可能地相交.
本文主要解決 CPS的安全問(wèn)題,這通常涉及系統(tǒng)的最壞情況,因此,本文采用抽象傳感器模型.為了解決現(xiàn)有的攻擊檢測(cè)方法存在的一些局限性,本文提出了一種基于融合間隔和歷史測(cè)量的傳感器攻擊檢測(cè)和識(shí)別方法,并考慮了兩個(gè)傳感器間隔相交時(shí)的故障檢測(cè)問(wèn)題.該方法的核心思想是從不同角度考慮傳感器的測(cè)量,并為不同的傳感器建立不同的故障模型,結(jié)合融合間隔和歷史測(cè)量,利用兩個(gè)傳感器之間的不一致關(guān)系來(lái)檢測(cè)攻擊.此外,本文還提出了一種基于構(gòu)建ROC(receiver operating characteristic)曲線來(lái)選擇瞬態(tài)故障模型參數(shù)的方法.最后,本文從EV3機(jī)器人平臺(tái)上獲得真實(shí)的實(shí)驗(yàn)數(shù)據(jù)來(lái)評(píng)估算法的性能.通過(guò)獲取不同窗口和攻擊場(chǎng)景下超聲波和兩個(gè)大型電機(jī)的傳感器數(shù)據(jù),訓(xùn)練合適的瞬態(tài)故障模型,驗(yàn)證了本文提出的傳感器攻擊檢測(cè)和識(shí)別方法的檢測(cè)和識(shí)別性能,并分析了誤報(bào)情況.實(shí)驗(yàn)結(jié)果表明,本文提出的方法對(duì)各種攻擊類型都非常有效.特別是對(duì)于隱形攻擊,本文提出的算法的優(yōu)勢(shì)是顯而易見(jiàn)的,與現(xiàn)有的檢測(cè)算法相比,檢測(cè)的準(zhǔn)確率大約提高了90%以上.
本文第 1節(jié)介紹本工作的一些基礎(chǔ)知識(shí),包括系統(tǒng)模型、傳感器模型、瞬態(tài)故障模型以及攻擊模型.第 2節(jié)介紹兩種多傳感器融合算法.第 3節(jié)詳細(xì)闡述本文提出的基于融合間隔和歷史測(cè)量的傳感器攻擊檢測(cè)和識(shí)別方法,并提出一種基于構(gòu)建ROC曲線選擇瞬態(tài)故障模型參數(shù)的方法.為了增加算法的可讀性,第3節(jié)給出一種算法的實(shí)例.第4節(jié)通過(guò)EV3平臺(tái)驗(yàn)證算法的性能,并介紹在實(shí)際場(chǎng)景中瞬態(tài)故障模型的構(gòu)建.第5節(jié)總結(jié)本文工作并提出未來(lái)的研究方向.
為了更好地理解本文提出的基于融合間隔和歷史測(cè)量的傳感器攻擊檢測(cè)和識(shí)別方法,本節(jié)主要介紹本工作中的一些基礎(chǔ)知識(shí).首先介紹系統(tǒng)模型,并簡(jiǎn)單分析了在具有非線性系統(tǒng)模型的CPS中,本文提出的檢測(cè)算法的可擴(kuò)展性.之后介紹了本文使用的抽象傳感器的模型,詳細(xì)描述了傳感器間隔的構(gòu)建.然后介紹用來(lái)區(qū)分瞬態(tài)故障和攻擊的瞬態(tài)故障模型.最后介紹本文用到的3種攻擊類型:偏差攻擊、隨機(jī)攻擊和隱身攻擊.
本文考慮具有測(cè)量相同物理變量(例如,速度)的N個(gè)傳感器組成的CPS,利用多個(gè)傳感器產(chǎn)生的冗余信息為控制器提供更準(zhǔn)確的估計(jì)值.本文假設(shè) CPS在T(系統(tǒng)運(yùn)行的總時(shí)間)周期內(nèi)以周期性的方式查詢所有傳感器,不斷地獲取所有傳感器的測(cè)量,然后執(zhí)行傳感器融合算法和攻擊檢測(cè)算法.由于大多數(shù)CPS具有已知的動(dòng)力學(xué),本文假設(shè)CPS由一個(gè)離散線性時(shí)不變系統(tǒng)組成,其形式如下:
其中,xt=(xt1,xt2,xt3,...,xtn)∈Rn,表示在t時(shí)刻的狀態(tài);ut=(xt1,xt2,xt3,...,xtp)∈Rp,表示控制器在t時(shí)刻的輸入信號(hào);yt∈Rm為系統(tǒng)輸出,即傳感器的測(cè)量值;ωt∈Rq和vt∈Rl,分別表示系統(tǒng)干擾和測(cè)量噪聲;A、B、C屬于系統(tǒng)信息,A∈Rn×m和B∈Rn×p,分別為狀態(tài)矩陣和控制輸入矩陣,C∈Rm×n為輸出矩陣.
本文主要研究具有上述線性系統(tǒng)模型的 CPS中傳感器的攻擊檢測(cè)和識(shí)別問(wèn)題.然而,本文提出的傳感器攻擊檢測(cè)方法可以很容易地?cái)U(kuò)展到具有非線性系統(tǒng)模型的情況,如變速和轉(zhuǎn)彎的情況.擴(kuò)展思路主要有兩個(gè):(1) 根據(jù)實(shí)際的輸入調(diào)整瞬態(tài)故障模型.例如,可以使用查找表,該查找表包含系統(tǒng)在不同操作模式下訓(xùn)練的多個(gè)瞬態(tài)故障模型的參數(shù)值.即,每一個(gè)速度段給出一組瞬態(tài)故障模型參數(shù),針對(duì)不同的系統(tǒng)操作模式動(dòng)態(tài)地選擇合適的參數(shù).(2) 針對(duì)轉(zhuǎn)彎的情況.對(duì)于轉(zhuǎn)彎的瞬間,那個(gè)時(shí)刻點(diǎn)t不使用歷史測(cè)量,對(duì)于其他的時(shí)刻點(diǎn),本文提出的算法都是適用的.
如圖1所示,本文專注于一個(gè)廣泛使用的CPS架構(gòu),它的基本工作流程是:CPS通過(guò)傳感器實(shí)時(shí)地感知物理對(duì)象的變化,然后通過(guò)網(wǎng)絡(luò)把傳感器的測(cè)量信息發(fā)送給控制器.控制器中的計(jì)算單元根據(jù)多個(gè)傳感器的測(cè)量信息正確地認(rèn)識(shí)環(huán)境,并根據(jù)一定的算法做出相應(yīng)決策,再通過(guò)網(wǎng)絡(luò)將決策反饋給執(zhí)行器,最后由執(zhí)行器執(zhí)行該決策,進(jìn)而改變物理對(duì)象.在整個(gè)過(guò)程中,可能有些地方會(huì)受到惡意攻擊.例如,在通過(guò)網(wǎng)絡(luò)把傳感器的測(cè)量發(fā)送給控制器這個(gè)過(guò)程中,攻擊者可能會(huì)通過(guò)物理攻擊或網(wǎng)絡(luò)攻擊篡改傳感器的值,導(dǎo)致控制器收到的測(cè)量值是錯(cuò)誤的,這可能導(dǎo)致整個(gè)CPS不能正常運(yùn)行.要實(shí)現(xiàn)對(duì)CPS的精確控制,必須保證各種傳感器輸出真實(shí)可靠.因此,實(shí)現(xiàn)傳感器故障的快速準(zhǔn)確檢測(cè),對(duì)于提高CPS的安全可靠性具有十分重要的意義.本文結(jié)合CPS安全可靠性這一迫切需求,利用多傳感器冗余信息,開(kāi)展傳感器攻擊檢測(cè)和識(shí)別方法及應(yīng)用的研究.本文在控制器這里添加一種傳感器攻擊檢測(cè)方法,當(dāng)控制器收到傳感器的測(cè)量值時(shí),首先經(jīng)過(guò)攻擊檢測(cè)算法,判斷收到的值是否是正確的,然后再進(jìn)行下一步工作.
目前文獻(xiàn)中使用的傳感器模型大致分為概率傳感器模型和抽象傳感器模型兩類.在前者中,每個(gè)傳感器向控制器提供具有已知概率分布的被噪聲破壞的單個(gè)測(cè)量,如高斯分布.噪聲分布對(duì)更可能成為真正有價(jià)值的點(diǎn)賦予更多的權(quán)重.因此,概率傳感器模型非常適合分析預(yù)期的系統(tǒng)性能,但需要了解噪聲分布的知識(shí).其中,在錯(cuò)誤的噪聲假設(shè)條件下設(shè)計(jì)的檢測(cè)器會(huì)降低攻擊檢測(cè)的準(zhǔn)確性[22].在后者中,每個(gè)傳感器向控制器提供一個(gè)包含所有可能為真實(shí)值的點(diǎn)的間隔,這種類型的傳感器模型假定不知道區(qū)間上的噪聲分布,但即使在最壞的情況下,也可以構(gòu)造這些區(qū)間來(lái)包含未知的真實(shí)值.由于抽象測(cè)量是真實(shí)值的最壞情況界限,因此,它們非常適用于拜占庭故障和傳感器攻擊下系統(tǒng)運(yùn)行的最壞情況分析.
本文采用抽象傳感器模型.抽象間隔可以基于制造商關(guān)于傳感器的精度和規(guī)范以及諸如采樣抖動(dòng)和同步誤差的物理限制來(lái)構(gòu)造.在本文中,每個(gè)傳感器圍繞其自身測(cè)量構(gòu)造一個(gè)區(qū)間[Si(t)–δi,Si(t)+δi],用SiF(t) 表示.其中,Si(t)是傳感器Si在t時(shí)刻的測(cè)量值,δi是傳感器的誤差界限(即,誤差精度).傳感器Si的間隔大小為2δi.間隔大小反映了傳感器的精度,小的間隔意味著獲得的測(cè)量具有較高的可信度.另外,傳感器Si在時(shí)間t的真實(shí)值由τi(t)表示(通常是未知的).有時(shí)傳感器可能會(huì)提供錯(cuò)誤的測(cè)量,如果t時(shí)刻Si的測(cè)量值偏離真實(shí)值,并且其偏離值大于δi,則Si(t)被稱為故障測(cè)量.用謂詞F(Si,t)表示傳感器Si在t時(shí)刻提供了錯(cuò)誤的測(cè)量.故障測(cè)量的定義形式化為如下定義.
定義1(故障測(cè)量).
傳感器Si的瞬態(tài)故障模型是一個(gè)三元組(δi,fi,wi),其中,δi是誤差界限;(fi,wi)是瞬態(tài)閾值,其指定在任何大小為wi的窗口中,Si可以提供至多fi個(gè)錯(cuò)誤測(cè)量.瞬態(tài)閾值用于定義瞬態(tài)故障和非瞬態(tài)故障之間的邊界.如果Si不違反其瞬態(tài)閾值,則稱為瞬態(tài)故障,由謂詞TF(Si,t)表示,否則稱為非瞬態(tài)故障.
定義2(瞬態(tài)故障).
其中,如果Si在t時(shí)刻提供了故障的測(cè)量,則F′(Si,t)=1.否則,F′(Si,t)=0;如果(t≥wi),則從第 1 輪檢測(cè)開(kāi)始累加,即t′=1.
本文把永久性故障和惡意攻擊都形式化為非瞬態(tài)故障,以相同的方式對(duì)待它們.當(dāng)然,也可能存在符合瞬態(tài)故障模型的攻擊,這將留作以后的工作,本文僅考慮表現(xiàn)為非瞬態(tài)故障的攻擊.因此,如果傳感器Si在整個(gè)系統(tǒng)操作期間至少出現(xiàn)1次非瞬態(tài)故障,則稱Si受到了攻擊,用謂詞A(Si,t)表示.
定義3(攻擊).
其中,T是系統(tǒng)運(yùn)行的總時(shí)間.
目前,攻擊者一般有物理攻擊和網(wǎng)絡(luò)攻擊兩種攻擊手段.物理攻擊是指通過(guò)損壞或替換傳感器來(lái)完成,或通過(guò)其他物理手段引入偏差來(lái)實(shí)現(xiàn)[23].網(wǎng)絡(luò)攻擊是指通過(guò)利用其軟件中的漏洞或用一個(gè)全新的版本替換其代碼來(lái)危害傳感器.因此,攻擊者可以通過(guò)網(wǎng)絡(luò)訪問(wèn)傳感器,甚至不需要物理接近.在現(xiàn)代傳感器中也可以利用在其他嵌入式系統(tǒng)中可能發(fā)生的任何軟件缺陷.
如第 1.1節(jié)中所述,本文假設(shè)系統(tǒng)中的傳感器通過(guò)共享總線進(jìn)行通信.因此,通過(guò)獲得對(duì)傳感器的控制,攻擊者能夠獲得當(dāng)前輪次的所有傳感器測(cè)量以及之前所有傳感器發(fā)送到總線上的歷史測(cè)量數(shù)據(jù).本文假設(shè)攻擊者可以代表?yè)p壞的傳感器發(fā)送任何測(cè)量,并且最壞情況下攻擊者具有無(wú)限的計(jì)算能力和全系統(tǒng)知識(shí),包括傳感器的規(guī)范、采用的傳感器融合算法和攻擊檢測(cè)算法等.由于每個(gè)傳感器的輸出是一個(gè)間隔,那么,攻擊者的目標(biāo)是通過(guò)篡改某些傳感器的值,使其間隔最大化,從而降低了所提供的測(cè)量的置信度,使系統(tǒng)處于不安全狀態(tài).由于CPS的性質(zhì)和體系結(jié)構(gòu),攻擊者可以利用物理層和網(wǎng)絡(luò)層的弱點(diǎn).根據(jù)攻擊者不同的攻擊目的,本文考慮3種攻擊類型.
(1) 偏差攻擊(bias attack).攻擊者為被攻擊的傳感器添加一個(gè)偏差值Δ,其中,Δ=2δmax,δmax是指所有傳感器中最大的誤差精度.W=(w1,w2,w3,…,wT),即窗口的大小即為系統(tǒng)的總運(yùn)行時(shí)間T.對(duì)t=1,2,…,T,有
(2) 隨機(jī)攻擊(random attack).該攻擊類型與偏差攻擊非常相似,其主要區(qū)別在于,該攻擊是為t時(shí)刻被攻擊的傳感器添加一個(gè)隨機(jī)的偏差,偏差的范圍是(0,2δmax).當(dāng)添加的偏差值很小時(shí),系統(tǒng)很難發(fā)現(xiàn)此攻擊.顯然,隨機(jī)攻擊比偏差攻擊更難被檢測(cè)到.
(3) 隱身攻擊(stealth attack).攻擊者用一個(gè)新的測(cè)量代替當(dāng)前時(shí)刻的測(cè)量值,最大化融合間隔的大小并盡可能地使任意兩個(gè)傳感器的間隔相交.這類攻擊是在假設(shè)攻擊者已知系統(tǒng)所使用的融合算法、所有測(cè)量數(shù)據(jù)以及傳感器的規(guī)范等知識(shí)的前提下所設(shè)計(jì)的攻擊.其攻擊的目的是盡可能地保持不被檢測(cè)到.該攻擊類型是 3種攻擊類型中危害性和隱蔽性最強(qiáng)的.
本節(jié)介紹一種基于抽象傳感器模型的融合算法,該算法由 Marzullo在 1990年提出[15].該算法的輸入是N個(gè)傳感器的間隔和一個(gè)數(shù)字f,其中,f表示系統(tǒng)中被破壞的傳感器數(shù)目的上限.算法的輸出是一個(gè)間隔,在本文中稱為融合間隔,其跨越包含至少N-f個(gè)間隔中的最小到最大點(diǎn).由于存在至多f個(gè)損壞的傳感器,至少存在N-f個(gè)正確的傳感器,因此真實(shí)值可以在任何N-f個(gè)間隔組中.最后,算法輸出包含所有這樣的組的最小間隔.
融合間隔的計(jì)算步驟如下:首先,我們對(duì)所有傳感器的下界和上界分別以升序和降序進(jìn)行排序,結(jié)果分別存放在str_start和str_end數(shù)組中.然后,我們按照數(shù)組下標(biāo)(從0開(kāi)始)從小到大的順序開(kāi)始掃描str_start,直到掃描到融合間隔的下界l與所有傳感器的交點(diǎn)共N-f個(gè)為止,這個(gè)數(shù)值就是融合間隔的下界l.按同樣的方法掃描str_end,得到融合間隔的上界h.
在上述經(jīng)典的傳感器融合算法的基礎(chǔ)上,本文提出了一種改進(jìn)的傳感器融合算法,其核心思想是利用歷史測(cè)量來(lái)減小融合間隔的大小,從而提高融合間隔的精確度.
如第 1.1節(jié)所述,CPS具有已知的系統(tǒng)動(dòng)力學(xué)模型,因此,可以通過(guò)系統(tǒng)動(dòng)力學(xué)方程來(lái)使用歷史測(cè)量以改進(jìn)融合算法.本文將歷史測(cè)量加入到融合算法中的基本思路是:把t-1時(shí)刻的所有傳感器(共N個(gè))的測(cè)量,通過(guò)動(dòng)力學(xué)方程映射到t時(shí)刻,這時(shí),t時(shí)刻就有 2N個(gè)測(cè)量值,此時(shí)發(fā)生故障的傳感器的數(shù)量最大是 2f,然后使用經(jīng)典的融合算法計(jì)算融合間隔.在添加過(guò)去的測(cè)量之后,改進(jìn)的融合算法仍然需要滿足兩個(gè)標(biāo)準(zhǔn):(1) 在包含真實(shí)值的前提下,融合間隔盡可能地小.(2) 融合間隔不大于未使用歷史測(cè)量時(shí)獲得的融合間隔.
為了比較上述兩種融合算法,本文考慮了超聲波傳感器受到隨機(jī)攻擊的情況,分別使用兩種融合算法來(lái)計(jì)算融合間隔.實(shí)驗(yàn)結(jié)果如圖 3所示.從圖中可以看出,使用歷史測(cè)量的融合算法得到的融合間隔永遠(yuǎn)不會(huì)大于不使用歷史測(cè)量的融合算法得到的融合間隔.該現(xiàn)象說(shuō)明,歷史測(cè)量的使用確實(shí)可以縮小融合間隔的大小,提高融合算法的精確度.
由于真實(shí)值通常是不知道的,因此很難確定哪個(gè)傳感器提供了錯(cuò)誤的測(cè)量值.Marzullo在1990年提出基于抽象傳感器的融合算法的同時(shí),也提出了一種基于融合間隔的傳感器攻擊檢測(cè)方法.該方法的主要思想是讓每個(gè)傳感器與融合間隔進(jìn)行比較,任何不與融合間隔相交的傳感器都是故障的.
證明:在故障傳感器數(shù)量有限的情況下,融合算法會(huì)產(chǎn)生一個(gè)包含真值的融合區(qū)間.由于真實(shí)值不可能存在于兩個(gè)不相交的區(qū)間中,因此,如果傳感器Si的間隔不與融合區(qū)間相交,則意味著Si一定是故障的.
本節(jié)描述了本文提出的用于傳感器攻擊檢測(cè)和識(shí)別問(wèn)題的改進(jìn)的成對(duì)不一致(boosted pairwise inconsistency,簡(jiǎn)稱 BPI)算法.該方法在基于 PI方法[21]的基礎(chǔ)上考慮了融合間隔和歷史測(cè)量,并解決了當(dāng)兩個(gè)傳感器的間隔相交時(shí)傳感器的攻擊檢測(cè)和識(shí)別問(wèn)題.
本文提出的傳感器攻擊檢測(cè)和識(shí)別方法基于傳感器之間的成對(duì)不一致關(guān)系.本節(jié)首先介紹兩個(gè)關(guān)鍵概念,即傳感器之間的成對(duì)不一致類型:弱不一致性和強(qiáng)不一致性.該部分建立在假設(shè)真實(shí)值通常不知道的前提下,因此不知道哪些傳感器提供了正確的測(cè)量.然而,已知的是傳感器測(cè)量之間的相互關(guān)系,本文正是利用這種相互關(guān)聯(lián)的信息來(lái)檢測(cè)和識(shí)別攻擊.兩個(gè)傳感器Si和Sj之間的第1種關(guān)系是弱不一致性,由謂詞WI(Si,Sj,t)表示.如果當(dāng)且僅當(dāng)其中一個(gè)傳感器提供了故障的測(cè)量,那么兩個(gè)傳感器在給定的回合中是弱不一致性的.
定義5(弱不一致性).
由于真實(shí)值是未知的,這個(gè)條件通常很難驗(yàn)證.因此,該定義不能用于判斷兩個(gè)傳感器是否是弱不一致性.然而,因?yàn)檎鎸?shí)值不能位于兩者中,因此,如果兩個(gè)傳感器的間隔彼此不相交,則它們中的一個(gè)必須已經(jīng)提供了錯(cuò)誤的測(cè)量.
由上述弱不一致性的定義可知,瞬態(tài)故障和攻擊可能在單個(gè)回合中都表現(xiàn)出弱不一致性.因此,本文引入強(qiáng)不一致性來(lái)消除兩者之間的歧義.如果兩個(gè)傳感器中至少有一個(gè)是非瞬態(tài)故障(傳感器不符合其瞬態(tài)故障模型),那么這兩個(gè)傳感器之間存在強(qiáng)不一致性.形式化地,有如下定義.
定義6(強(qiáng)不一致性).
與弱不一致性的定義類似,因?yàn)椴恢勒鎸?shí)值,很難判斷Si是否是非瞬態(tài)故障.特別地,如果兩個(gè)傳感器在給定的窗口中頻繁地發(fā)生弱不一致,那么它們變得強(qiáng)不一致.
引理1.給定傳感器Si、Sj和時(shí)間t,
注意,如果t 3.1.1 弱不一致檢測(cè) 弱不一致檢測(cè)方法是本文提出的傳感器攻擊檢測(cè)和識(shí)別方法的核心部分,是提高攻擊檢測(cè)和識(shí)別性能的關(guān)鍵步驟.由于2015年P(guān)ark等人提出的基于PI的攻擊檢測(cè)方法僅考慮了兩個(gè)傳感器不相交的情況,忽略了兩個(gè)傳感器相交時(shí)也可能存在故障的情況,并且該方法無(wú)法檢測(cè)和識(shí)別到隱身攻擊.針對(duì)這些情況,本文提出了一種新的弱不一致檢測(cè)方法來(lái)解決這些問(wèn)題.本文提出的弱不一致檢測(cè)方法分為兩步. (1) 兩個(gè)測(cè)量不相交. 首先比較當(dāng)前時(shí)刻(t)任意兩個(gè)傳感器的測(cè)量,如果兩個(gè)傳感器的測(cè)量不相交,則至少有一個(gè)傳感器提供了故障測(cè)量,即它們?cè)趖時(shí)刻是弱不一致關(guān)系. 然后融合過(guò)去和當(dāng)前的測(cè)量,將所有傳感器的測(cè)量從t–1時(shí)刻映射到t時(shí)刻,在t時(shí)刻共2N個(gè)測(cè)量.最后在t時(shí)刻比較任意兩個(gè)測(cè)量值,注意,不包括同一個(gè)傳感器不同時(shí)刻的兩個(gè)測(cè)量.如果這兩個(gè)測(cè)量不相交,那么這兩個(gè)傳感器之間存在弱不一致關(guān)系. (2) 兩個(gè)測(cè)量相交. 當(dāng)兩個(gè)測(cè)量相交時(shí),主要是從不同的角度利用融合間隔和歷史測(cè)量來(lái)判斷故障. 第1步:首先計(jì)算t時(shí)刻的融合間隔,讓每個(gè)傳感器和融合間隔進(jìn)行比較,如果兩個(gè)傳感器Si和Sj均不與融合間隔相交,并且這兩個(gè)傳感器的測(cè)量相交,則Si和Sj是弱不一致關(guān)系. 第2步:結(jié)合歷史測(cè)量進(jìn)行判斷.首先計(jì)算t–1時(shí)刻的融合間隔,將每個(gè)傳感器在t–1時(shí)刻的測(cè)量與該融合間隔進(jìn)行比較;然后把t–1時(shí)刻的測(cè)量映射到t時(shí)刻,再進(jìn)行兩兩比較.當(dāng)滿足下列條件時(shí),說(shuō)明傳感器Si和Sj是弱不一致關(guān)系. 算法1給出了具體實(shí)現(xiàn).第1行~第8行實(shí)現(xiàn)了在t時(shí)刻任何兩個(gè)測(cè)量之間的比較,并將不一致性信息存儲(chǔ)在弱不一致數(shù)組中.第9行將所有傳感器的測(cè)量值從時(shí)間t–1時(shí)刻映射到t時(shí)刻.第10行調(diào)用融合算法計(jì)算融合間隔.第 11行實(shí)現(xiàn)了當(dāng)前時(shí)刻和歷史的傳感器測(cè)量之間的比較.第 12行完成了單個(gè)傳感器和融合間隔的比較,并將這些傳感器的信息存儲(chǔ)在不一致數(shù)組中.使用弱不一致檢測(cè)方法最終會(huì)得到一個(gè)弱不一致數(shù)組,里面存放了在每一個(gè)時(shí)刻存在弱不一致關(guān)系的傳感器的信息.這些信息將會(huì)在傳感器的攻擊檢測(cè)和識(shí)別中用到. 3.1.2 強(qiáng)不一致檢測(cè) 本小節(jié)通過(guò)采用上述的不一致概念來(lái)展示本文提出的傳感器攻擊檢測(cè)方法.由定義 6可知,如果兩個(gè)傳感器之間存在強(qiáng)不一致關(guān)系,則說(shuō)明兩個(gè)傳感器中至少有一個(gè)是非瞬態(tài)故障.因此,由定義3攻擊的定義可知,如果存在時(shí)間t≤T,使得傳感器Si和Sj是強(qiáng)不一致的,則說(shuō)明系統(tǒng)中存在被攻擊的傳感器.其中,T是系統(tǒng)運(yùn)行的總時(shí)間. 引理2(攻擊檢測(cè)). 其中,如果SI(Si,Sj,t)存在,則SI′(Si,Sj,t)=1;否則,SI′(Si,Sj,t)=0. 上述的攻擊檢測(cè)方法僅考慮檢測(cè)系統(tǒng)中是否存在傳感器被攻擊,并沒(méi)有考慮哪個(gè)傳感器被攻擊的問(wèn)題.在本小節(jié)中,為了確定哪個(gè)傳感器受到攻擊,本文假設(shè)系統(tǒng)中至多有s(s<N–1)個(gè)傳感器受到攻擊.本文提出的攻擊識(shí)別方法是:累積強(qiáng)不一致信息,在強(qiáng)不一致對(duì)中,如果傳感器Si出現(xiàn)的次數(shù)超過(guò)s,則稱Si被攻擊了. 引理3.給定傳感器Si和時(shí)間t,用degree(Si,t)表示在t時(shí)刻與Si存在強(qiáng)不一致關(guān)系的傳感器的數(shù)量. 證明:假設(shè)有n(n>s)個(gè)傳感器和Si相連,與Si相連的傳感器用Sj表示.由于Si和Sj是強(qiáng)不一致關(guān)系,如果Si沒(méi)有被攻擊,那么Sj必須被攻擊.此時(shí),共有n個(gè)傳感器受到攻擊,這與最多有s個(gè)傳感器被攻擊的假設(shè)相矛盾.證畢. 本文提出的 BPI方法需要精確的瞬態(tài)故障模型.現(xiàn)在的制造商一般會(huì)提供傳感器的瞬態(tài)故障規(guī)范.盡管制造商有時(shí)候會(huì)提供算法所需要的全部參數(shù),但對(duì)應(yīng)不同的應(yīng)用場(chǎng)景和需求,這些參數(shù)可能并不是最佳的(例如,在被高建筑物包圍的環(huán)境中使用 GPS).此外,針對(duì)不同的傳感器攻擊算法,有些參數(shù)制造商可能無(wú)法提供,比如本文提出的BPI算法的參數(shù)fi.那么,就有必要基于經(jīng)驗(yàn)數(shù)據(jù)來(lái)開(kāi)發(fā)瞬態(tài)故障模型.因此,本節(jié)提出一種通過(guò)構(gòu)建ROC曲線來(lái)選擇瞬態(tài)故障模型參數(shù)的新方法,用于抽象傳感器的攻擊檢測(cè). 受試者工作特征曲線為ROC曲線(receiver operating characteristic curve).通常,該曲線的橫軸是假陽(yáng)性概率(false positive rate),縱軸是真陽(yáng)性概率(true positive rate),其目的主要是用來(lái)選擇最佳的界限值.將多個(gè)實(shí)驗(yàn)得到的ROC曲線繪制到同一個(gè)坐標(biāo)中,就能很直觀地看出,ROC曲線的最左上角的點(diǎn)表示錯(cuò)誤率最少且準(zhǔn)確率最高,意味著該點(diǎn)對(duì)應(yīng)的閾值是最好的. 本文提出的選擇瞬態(tài)故障模型參數(shù)方法的思想是:從實(shí)際的實(shí)驗(yàn)平臺(tái)上獲取大量的實(shí)驗(yàn)數(shù)據(jù)(傳感器的值),把這些數(shù)據(jù)應(yīng)用到攻擊檢測(cè)算法中(BPI方法),從而得到不同場(chǎng)景下傳感器的攻擊識(shí)別率和誤報(bào)率.然后把各個(gè)場(chǎng)景得到的 ROC曲線繪制到同一個(gè)坐標(biāo)系中.找到識(shí)別率最高、誤報(bào)率最小的點(diǎn),即圖中最左上角的點(diǎn),該點(diǎn)對(duì)應(yīng)的參數(shù)就是最佳的參數(shù).然而,由于每個(gè)參數(shù)對(duì)應(yīng)的值可能有無(wú)數(shù)多個(gè),不可能把每一個(gè)參數(shù)的每個(gè)值都進(jìn)行實(shí)驗(yàn)來(lái)得到其對(duì)應(yīng)的識(shí)別率和誤報(bào)率.因此,在進(jìn)行實(shí)驗(yàn)之前,需要篩選出這些參數(shù)可能的取值范圍,然后再取這些范圍內(nèi)的點(diǎn)進(jìn)行實(shí)驗(yàn),最終確定參數(shù)的取值.在第1.3節(jié)中提出的瞬態(tài)故障模型有3個(gè)參數(shù).參數(shù)δi使用制造商提供的值,另外兩個(gè)參數(shù)fi和wi使用本文提出的基于構(gòu)建 ROC曲線選擇參數(shù)的方法進(jìn)行確定.其基本步驟如下. (1) 初步篩選參數(shù),選擇若干個(gè)值作為fi的候選值.根據(jù)受到攻擊的傳感器數(shù)量,本文考慮 3種攻擊情況:只有一個(gè)傳感器受到攻擊,另外兩個(gè)傳感器沒(méi)有故障;一個(gè)傳感器受到攻擊,另外兩個(gè)傳感器僅有一個(gè)傳感器存在瞬時(shí)故障;一個(gè)傳感器受到攻擊,另外兩個(gè)傳感器均存在瞬時(shí)故障.通過(guò)對(duì)無(wú)攻擊無(wú)故障的傳感器數(shù)據(jù)添加上面 3種攻擊和故障,會(huì)得到一些訓(xùn)練數(shù)據(jù).此外,分別用fi–1和fi+1代替3種類型的攻擊中的fi來(lái)形成一系列新的訓(xùn)練集.通過(guò)實(shí)驗(yàn)得到不同fi對(duì)應(yīng)的識(shí)別率和誤報(bào)率.最后,本文選擇幾個(gè)誤報(bào)率較小但識(shí)別率還能接受的fi作為候選值.這樣做雖然不能保證攻擊檢測(cè)率最大,但可以保證誤報(bào)率最小. (2) 根據(jù)第 1.4節(jié)中設(shè)計(jì)的攻擊模型,為原始數(shù)據(jù)(無(wú)攻擊、無(wú)故障的傳感器數(shù)據(jù))添加 3種類型的攻擊.針對(duì)(1)中選取的每個(gè)候選值進(jìn)行實(shí)驗(yàn),獲得對(duì)應(yīng)窗口的誤報(bào)率和識(shí)別率后,構(gòu)建 ROC曲線,然后確定最終的參數(shù)值.本文選取參數(shù)的具體細(xì)節(jié)將在第4.1節(jié)中加以詳細(xì)介紹. 本小節(jié)主要是想通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)進(jìn)一步解釋上述傳感器攻擊檢測(cè)和識(shí)別算法.為了便于解釋,本文使用一個(gè)不一致圖G(V,E)來(lái)描述該算法.在不一致圖中,每個(gè)傳感器對(duì)應(yīng)一個(gè)頂點(diǎn),兩個(gè)頂點(diǎn)之間的關(guān)系代表它們之間的不一致關(guān)系.如果該關(guān)系是弱不一致關(guān)系,則該圖表示弱不一致圖,用WI_Graph表示;如果該關(guān)系是強(qiáng)不一致關(guān)系,則該圖表示強(qiáng)不一致圖,用SI_Graph表示.該不一致圖的定義如下. 定義7(不一致圖). 本文設(shè)計(jì)了如圖4所示的實(shí)例,圖中有4個(gè)傳感器,窗口W=5,垂直虛線表示真實(shí)值(未知).假設(shè)系統(tǒng)中傳感器S1和S4受到攻擊(最多有2個(gè)傳感器被攻擊).注意,不要求被攻擊的傳感器在每一輪次中均受損,但需要滿足在給定窗口中是非瞬態(tài)故障,每個(gè)傳感器的瞬態(tài)故障模型見(jiàn)表1. Table 1 The parameters of the transient fault model in the example of Fig.4表1 圖4實(shí)例中對(duì)應(yīng)的瞬態(tài)故障模型的參數(shù) 根據(jù)第3.1.1節(jié)介紹的弱不一致檢測(cè)算法,得到如WI_Graph所示的弱不一致關(guān)系圖.從圖中可以看出,系統(tǒng)在每一輪次中都檢測(cè)到了弱不一致對(duì).在t=1時(shí),傳感器S1和S2之間存在弱不一致關(guān)系,這意味著這兩個(gè)傳感器至少有一個(gè)提供了錯(cuò)誤的測(cè)量.到t=3為止,S1和S2之間共出現(xiàn)了3次弱不一致關(guān)系.根據(jù)第3.1.2節(jié)介紹的強(qiáng)不一致檢測(cè)方法可知,S1和S2之間存在強(qiáng)不一致關(guān)系,這意味著系統(tǒng)中存在攻擊,其他類似.該實(shí)例中所有傳感器的強(qiáng)不一致關(guān)系如圖 4中的SI_Graph所示.SI_Graph中的虛線代表在之前的檢測(cè)中已經(jīng)出現(xiàn)過(guò)該強(qiáng)不一致對(duì).雖然,在t=3時(shí),檢測(cè)到系統(tǒng)中存在攻擊,但此時(shí)無(wú)法判斷哪個(gè)傳感器受到了攻擊.直到t=5時(shí),發(fā)現(xiàn)傳感器S1和S4的度均為3,大于2,根據(jù)第3.2節(jié)中給出的攻擊識(shí)別算法可以識(shí)別出在t=5時(shí)S1和S4均受到了攻擊. 本節(jié)從EV3機(jī)器人平臺(tái)上獲取實(shí)際的實(shí)驗(yàn)數(shù)據(jù)來(lái)評(píng)估BPI算法的性能.首先介紹實(shí)驗(yàn)的基本設(shè)置,之后介紹瞬態(tài)故障模型的參數(shù)選擇問(wèn)題,然后評(píng)估幾種算法的攻擊檢測(cè)和識(shí)別性能,最后分析誤報(bào)的原因. 本文的實(shí)驗(yàn)平臺(tái)選擇 LEGO EV3地面車輛,如圖 5所示.EV3是 2013年 LEGO公司開(kāi)發(fā)的第三代MINDSTORMS機(jī)器人.它可以安裝多個(gè)傳感器,包括超聲波、電機(jī)(內(nèi)嵌角度傳感器)、陀螺儀、顏色傳感器等.根據(jù)需求,本文使用2個(gè)大型電機(jī)和1個(gè)超聲波傳感器來(lái)測(cè)量EV3的速度.這3個(gè)傳感器均可提供10Hz的測(cè)量. 為了獲得魯棒的瞬態(tài)故障模型參數(shù),本文根據(jù)第 3.3節(jié)提出的參數(shù)選擇方法選擇最終的實(shí)驗(yàn)參數(shù).具體是,根據(jù)制造商提供的測(cè)量誤差設(shè)置傳感器的瞬態(tài)故障模型的參數(shù)δi.對(duì)某個(gè)確定的窗口wi,通過(guò)真實(shí)的訓(xùn)練數(shù)據(jù)來(lái)確定fi的值.本文首先以0.7m/s的恒定速度驅(qū)動(dòng)EV3機(jī)器人直線運(yùn)動(dòng),每個(gè)傳感器收集400個(gè)測(cè)量數(shù)據(jù).利用第 3.3節(jié)提出的參數(shù)選擇方法進(jìn)行實(shí)驗(yàn),為了模擬真實(shí)的攻擊情形,窗口wi中每個(gè)傳感器提供的故障數(shù)是隨機(jī)的.根據(jù)實(shí)驗(yàn)結(jié)果,本文建立了如圖6所示的ROC曲線來(lái)確定fi的值.ROC曲線的x軸表示誤報(bào)率(誤報(bào)的數(shù)量/識(shí)別的總數(shù)量),y軸表示識(shí)別率((識(shí)別的總數(shù)-誤報(bào)的總數(shù))/測(cè)試總數(shù)).為了避免混淆,圖6中不包括w400的情況.從圖中可以看出,左上角的數(shù)據(jù)點(diǎn)具有更高的識(shí)別率、更低的誤報(bào)率,該點(diǎn)對(duì)應(yīng)的fi是最佳閾值.表 2總結(jié)了可變窗口大小的故障模型參數(shù),其中,wi表示窗口大小為i的檢測(cè)器. Table 2 Fault models for the sensors on EV3表2 EV3上瞬態(tài)故障模型的參數(shù) 為了評(píng)估本文在第3節(jié)中介紹的BPI算法,本節(jié)首先在平坦的地面上以恒定的速度驅(qū)動(dòng)EV3來(lái)收集每個(gè)傳感器的數(shù)據(jù).本文收集了20次來(lái)自EV3設(shè)備上的未被攻擊的傳感器數(shù)據(jù),其中,所有傳感器以10Hz平均采樣40s,因此,每個(gè)傳感器有400個(gè)測(cè)量值. 本文假設(shè)在固定窗口中,攻擊者對(duì)3個(gè)抽象傳感器中的1個(gè)進(jìn)行攻擊,具體哪一個(gè)傳感器被攻擊是未知的.同時(shí),對(duì)于被攻擊的傳感器,本文添加第1.4節(jié)中設(shè)計(jì)的3種攻擊類型.注意,被攻擊的傳感器不要求在每一輪中都提供故障的測(cè)量,每個(gè)窗口中傳感器提供故障測(cè)量的數(shù)量是隨機(jī)的,但需要保證在給定窗口中是非瞬態(tài)故障.此外,在所有的檢測(cè)數(shù)據(jù)中,其他傳感器可能存在瞬態(tài)故障,也可能不存在瞬態(tài)故障.表3給出了不同窗口和攻擊場(chǎng)景下3種攻擊檢測(cè)和識(shí)別方法的檢測(cè)率.其中,KF方法是一種基于卡爾曼濾波器的傳感器攻擊檢測(cè)方法.從表中可以看出,本文提出的BPI算法能夠比已有的算法檢測(cè)到更多的攻擊.對(duì)于3種攻擊,BPI方法在任何窗口中都比PI和KF方法更加魯棒,并且隨著窗口大小的增加,BPI方法逐漸達(dá)到穩(wěn)態(tài)檢測(cè)率.對(duì)于偏差攻擊,KF方法與BPI的檢測(cè)性能相近,BPI檢測(cè)器的平均檢測(cè)率比PI檢測(cè)器大約高25%,比KF方法高約2%.然而,對(duì)于隨機(jī)攻擊,KF方法的檢測(cè)性能明顯低于BPI方法,小窗口中BPI檢測(cè)器比PI檢測(cè)器平均約高53%,在大窗口中約高35%,平均比KF方法高14%.特別地,對(duì)于隱身攻擊來(lái)說(shuō),BPI方法的優(yōu)勢(shì)是顯而易見(jiàn)的.現(xiàn)有方法的檢測(cè)率幾乎是0,而B(niǎo)PI方法能夠檢測(cè)到攻擊,其檢測(cè)率平均能達(dá)到90%以上.PI方法不能檢測(cè)到隱形攻擊,是因?yàn)殡[身攻擊的特點(diǎn)就是盡可能地最大化融合間隔并使當(dāng)前時(shí)刻任意兩個(gè)傳感器之間的間隔盡可能地相交.而 PI方法恰好是基于兩個(gè)傳感器之間的間隔不相交來(lái)判斷故障的,所以,基于PI的方法無(wú)法檢測(cè)到這種攻擊.基于KF的方法在大的窗口中偶爾可以檢測(cè)到攻擊,但檢測(cè)率僅有 0.01%左右.并且,其誤報(bào)率很高,這將在下一小節(jié)中詳細(xì)加以介紹. Table 3 Detection rate表3 檢測(cè)率 本文提出的 BPI算法的識(shí)別性能與檢測(cè)性能幾乎相同,但是識(shí)別比檢測(cè)需要花費(fèi)更長(zhǎng)的時(shí)間.表 4顯示了不同窗口和攻擊情形下 3種傳感器攻擊檢測(cè)方法的識(shí)別率.這些結(jié)果表明,對(duì)于偏差攻擊和隨機(jī)攻擊,除了 KF方法外,其他兩種方法的識(shí)別率通常隨窗口大小而有所改善.從表 4(a)可以看出,對(duì)于偏差攻擊,BPI方法的識(shí)別率大約平均比PI方法高30%左右,僅比基于卡爾曼的方法高3.3%左右.對(duì)于隨機(jī)攻擊來(lái)說(shuō),BPI方法大約平均比PI方法高49%左右,比基于KF的方法約高14%左右.從表4(b)可以看出,基于KF的方法對(duì)于隨機(jī)攻擊的識(shí)別性能明顯降低.這是由于,隨機(jī)攻擊為被攻擊的傳感器在被攻擊的時(shí)刻隨機(jī)添加一個(gè) 0~0.7的一個(gè)偏差值,當(dāng)這個(gè)偏差值較小時(shí),由于測(cè)量值和估計(jì)值的偏差比較小,就會(huì)導(dǎo)致 KF方法無(wú)法檢測(cè)到故障.特別地,從表 4(c)中可以看出,對(duì)于隱身攻擊,基于PI的方法的識(shí)別率為0,基于KF的方法的識(shí)別率在大的窗口中偶爾能夠檢測(cè)到1次攻擊,僅0.01%左右,并且其誤報(bào)非常高.然而,本文提出的BPI方法平均可達(dá)到93%. Table 4 Identification rate表4 識(shí)別率 表5總結(jié)了不同窗口大小中 3種方法的誤報(bào)率.實(shí)驗(yàn)結(jié)果表明,3種方法都存在誤報(bào),這可能是由于這些窗口中存在瞬態(tài)故障的原因.此外,我們注意到,BPI方法的誤報(bào)率略高于PI方法.主要原因是瞬態(tài)故障的存在不能保證每輪被損壞的傳感器數(shù)量不超過(guò)f,即無(wú)法保證融合間隔一定包含真實(shí)值.此外,由于使用傳感器歷史測(cè)量,在某些攻擊情形中可能由于從根據(jù)歷史測(cè)量預(yù)測(cè)的當(dāng)前測(cè)量不夠準(zhǔn)確,導(dǎo)致誤報(bào)增加.然而,從表中可以看出,KF方法的誤報(bào)率非常高.其出現(xiàn)誤報(bào)的原因主要是由于瞬態(tài)故障的存在,導(dǎo)致KF方法產(chǎn)生殘留污染和殘余淹沒(méi),從而造成誤報(bào).此外,需要注意的是,對(duì)于偏差攻擊和隨機(jī)攻擊,KF方法的誤報(bào)率與BPI相近,但對(duì)于隱身攻擊,其誤報(bào)率能達(dá)到50%以上. Table 5 False rate表5 誤報(bào)率 本文研究了在存在瞬態(tài)故障時(shí)CPS的安全問(wèn)題.首先在Marzullo提出的經(jīng)典融合算法的基礎(chǔ)上,通過(guò)融入歷史測(cè)量提出了一種改進(jìn)的融合算法,該算法可以得到更精確的融合間隔,具有更強(qiáng)的魯棒性.此外,本文結(jié)合歷史測(cè)量和融合間隔提出了一種新穎的傳感器攻擊檢測(cè)和識(shí)別方法,用于具有測(cè)量相同物理變量的多個(gè)傳感器的CPS.并且,提出了一種基于構(gòu)建ROC曲線的方法來(lái)選擇瞬態(tài)故障模型.最后在EV3平臺(tái)上獲得實(shí)際的實(shí)驗(yàn)數(shù)據(jù),驗(yàn)證了算法的性能,并與現(xiàn)有的基于卡爾曼濾波器的方法和基于 PI的方法進(jìn)行了比較.實(shí)驗(yàn)結(jié)果表明,該算法在各種攻擊場(chǎng)景下均優(yōu)于現(xiàn)有的算法.基于本文的評(píng)估,未來(lái)的工作包括嘗試使用形式化驗(yàn)證方法來(lái)驗(yàn)證所提出算法的正確性,并將該算法部署在實(shí)際系統(tǒng)上進(jìn)行工業(yè)實(shí)踐.3.2 攻擊識(shí)別
3.3 瞬態(tài)故障模型參數(shù)選擇
3.4 傳感器攻擊檢測(cè)實(shí)例
4 實(shí)驗(yàn)評(píng)估
4.1 實(shí)驗(yàn)設(shè)置
4.2 檢測(cè)性能分析
4.3 識(shí)別性能分析
4.4 誤報(bào)分析
5 總 結(jié)