閆 安,宋運忠
(河南理工大學(xué)電氣工程與自動化學(xué)院,河南 焦作 454000)
近年來,隨著反饋控制系統(tǒng)的網(wǎng)絡(luò)組件的增加,使得系統(tǒng)越來越容易受到攻擊。關(guān)于系統(tǒng)安全性的研究愈發(fā)得到重視。所以,在系統(tǒng)中嵌入防御機制,能夠減少攻擊對系統(tǒng)的影響,對確??刂葡到y(tǒng)的穩(wěn)定性、安全性具有重要的意義[1-2]。經(jīng)典的閉環(huán)控制系統(tǒng)結(jié)構(gòu)如圖1所示,包括傳感器,監(jiān)督器,執(zhí)行器和被控對象4部分。我們采用離散事件系統(tǒng)理論來對該系統(tǒng)進行建模。假設(shè)執(zhí)行器和傳感器的通訊線路可以被攻擊者注入錯誤信號,就可能引發(fā)安全事故。本文主要考慮啟動執(zhí)行器的攻擊(即,AE攻擊)情況。在某些情況下,一部分事件是比較脆弱的,因而能被攻擊者更改,從而損害系統(tǒng)的安全性。而通常,該攻擊是不能被直接觀察到的。
圖1 閉環(huán)控制系統(tǒng)的結(jié)構(gòu)Fig.1 Closed-loop control system architecture
本文的工作是對網(wǎng)絡(luò)系統(tǒng)中的異常/入侵檢測工作的補充[3-5]。不關(guān)注攻擊者是如何滲透的,只關(guān)注檢測攻擊及其對控制系統(tǒng)的影響。
在文獻[6]中,作者研究了離散事件的監(jiān)控系統(tǒng)的入侵檢測和預(yù)防,并設(shè)計了在正常運行和攻擊后都達到規(guī)范的監(jiān)控器。其重點是尋找語言條件,在這種語言條件下,監(jiān)督器可以在達到給定規(guī)范的同時防止出現(xiàn)攻擊時的不安全行為,被稱為禁用語言,它與本文提到的安全可控性條件有幾個相似之處。入侵檢測和預(yù)防的問題與容錯監(jiān)控問題有關(guān),容錯監(jiān)控問題在文獻[7-10]中研究得很好,其中魯棒監(jiān)控器被設(shè)計為即使在系統(tǒng)出現(xiàn)故障時也能保持規(guī)范。
本文的主要工作如下:首先,本文基于文獻[11]給出了AE攻擊下監(jiān)控系統(tǒng)的數(shù)學(xué)模型和在線檢測攻擊的防御策略。之后,引入AE安全可控性的定義,并給出了診斷器算法,以驗證系統(tǒng)的AE安全可控性。最后,基于AE安全可控性,提出了修復(fù)系統(tǒng)的算法。
通常將一個被控對象模型設(shè)為一個確定有限狀態(tài)自動機,建模為五元組G=(X,E,f,x0,Xm)。其中,X是有限狀態(tài)集,E為事件集,f:X×E*→X表示轉(zhuǎn)移函數(shù),x0為初始狀態(tài),Xm為標(biāo)記狀態(tài)集。G生成的語言記為L(G)={s∈E*:f(x0,s) is defined},其產(chǎn)生的標(biāo)記語言為Lm(G)={s∈E*:f(x0,s)∈Xm}。當(dāng)給定事件集E′?E,狀態(tài)集x∈X時,那么關(guān)于E′?E和x∈X的可到達的狀態(tài)的集合定義為Reach(G,x,E′)={x′∈X:(?s∈E′*)[f(x,s)=x′]}。在狀態(tài)x處的G的活躍事件集定義為ΓG(x)。
1)Po(ε)=ε
2)Po(σ)=σσ∈Eo
3)Po(σ)=εσ∈Euo
4)Po(sσ)=Po(s)Po(σ)s∈E*,σ∈E
所有的映射和逆映射運算都可以擴展到整個語言上。當(dāng)s′為s的嚴格前綴時,記作s′
圖2 處于攻擊下的閉環(huán)控制系統(tǒng)結(jié)構(gòu)Fig.2 The control system architecture under attack
處于攻擊下的模型如圖2所示。被控對象為G,由部分可觀的監(jiān)督器Sp控制。設(shè)E為G的事件集,執(zhí)行器可控事件集為Ec?E,而傳感器由可觀事件集為Eo?E。監(jiān)督器通過從集合E到集合Eo的映射來觀測被控對象的可觀事件的發(fā)生。模塊A表示攻擊者,它可以訪問Ec的子集,用Ec,v?Ec表示脆弱的執(zhí)行器事件集合。該集合是基于系統(tǒng)設(shè)計預(yù)定義的。GD模塊是檢測攻擊的模塊,即入侵檢測模塊。
首先,構(gòu)筑一個受到AE攻擊的閉環(huán)模型,并采用兩種算子對攻擊行為進行建模:膨脹[14]和壓縮運算[15]。
其具體的性質(zhì)為
1)D(ε)={ε}
2)D(σ)={σ}σ∈EEc,v
3)D(σ)={σ,σa}σ∈Ec,v
4)D(sσ)=D(s)D(σ)s∈E*,σ∈E
具體性質(zhì)為
1)C(ε)=ε
2)C(σ)=σσ∈E
上述的膨脹和壓縮操作都可以應(yīng)用到整個語言,即
D(L)=∪s∈LD(s),C(La)=∪sa∈LaC(sa)
在算法1[11]中描述了受到AE攻擊的閉環(huán)系統(tǒng)。其中H為監(jiān)督器Sp的有限狀態(tài)機實現(xiàn)。
算法1AE攻擊的模型算法
輸入:G=(X,E,f,x0)和H=(XH,E,fH,x0,H):被控對象和監(jiān)督器各自的標(biāo)準實現(xiàn)Eo,Ec和Ec,v:可觀,可控和易受攻擊的事件集合
輸出:處于AE攻擊下的閉環(huán)系統(tǒng)GM=(XM,Ea,fM,x0,M)
1)構(gòu)造Ga=(X,Ea,fa,x0)其中fa(x,σa):=f(x,C(σa)),f(x,C(σa))!
2)構(gòu)造Ha=(XH,Ea,fHa,x0)其中
3)計算GM=Ha||Ga
其中,“!”表示已定義,“∨”表示未定義。
一個被控對象如圖3a所示,其中Ec=Ec,v=,狀態(tài)D為不安全的狀態(tài)。監(jiān)督器的實現(xiàn)如圖3b所示,此處,監(jiān)督器只能在狀態(tài)B處中止事件b,防止被控對象到達不安全的狀態(tài)D。通過算法1構(gòu)建了系統(tǒng)受到AE攻擊之后的模型,ba表示攻擊事件。圖3c為受到攻擊后的被控對象模型,圖3d為受到攻擊的監(jiān)督器模型。受到攻擊后的系統(tǒng)GM如圖3e所示。系統(tǒng)最終通過不可控事件c到達了不安全狀態(tài)D。
圖3 例1Fig.3 Example 1
在例1中,AE攻擊時,被控對象可能會偏離監(jiān)督器執(zhí)行的規(guī)范并達到不安全的狀態(tài)。對此,可以設(shè)計一個攻擊檢測模塊在攻擊行為后將系統(tǒng)切換到“安全模式”。在某些情況下,由于系統(tǒng)本身設(shè)計的缺陷,該策略可能無法保證系統(tǒng)的安全性。本文將所有不安全狀態(tài)的集合視為一個狀態(tài)。這與Sp所實現(xiàn)的原始規(guī)范K完全不同。雖然假定所有Sp/G達到的所有狀態(tài)都是安全的,但這并不是說Sp/G不能達到的狀態(tài)是不安全的。用Xf表示不安全的狀態(tài)。Xf是X的子集,它捕獲的是對被控對象造成物理傷害的狀態(tài)。
該算法基于文獻[16]的“安全可控性”和“禁止語言”。通過利用上一節(jié)的模型GM,將攻擊檢測問題描述為故障診斷問題,其中故障事件是攻擊者對脆弱事件的攻擊。本文設(shè)計了一個入侵檢測模塊以監(jiān)視被控對象的輸出,并在攻擊被檢測到的時候通知監(jiān)督器,終止所有行為。
定義1AE安全可控性
圖4 AE安全可控性定義Fig.4 The definition of AE safety controllability
GM的構(gòu)造程序和AE安全可控性的定義中的條件可以得到推論1。
為了測試一個系統(tǒng)是否是AE安全可控的,本文提供了一個依賴于診斷器[17-18]自動機的算法程序。
該診斷器驗證的問題是是否能在被控對象達到不安全狀態(tài)之前檢測到攻擊和監(jiān)督器能否禁用事件以阻止被控對象達到Xf。AE安全可控性是基于文獻[16]提出的,所以此處要引入診斷器中首次進入某些確定狀態(tài)集的定義。
定義2首次進入的確定狀態(tài)的集合
設(shè)Gd=(Qd,Eo,fd,q0,d)為由給定的被控對象和相應(yīng)的標(biāo)簽自動機構(gòu)造的診斷器。
定義:QYN={q∈Qd:qis uncertain},QN={q∈Qd:qis normal},QY={q∈Qd:qis certain}。
則首次進入確定狀態(tài)的集合是:
FC={q∈QY:(?q′∈QYN,?σ∈Eo)[fd(q′,σ)=q]}。
由此可以引出算法2,基于診斷器的算法,用于測試AE安全可控性。
算法2檢測AE安全可控性的診斷器算法
輸出: AE安全可控性∈{true,false}。
1)構(gòu)造Gl=GM||Al,其中Al如圖5所示;
2)計算診斷器Gd=Obs(Gl,Ea,uo),其中Ea,uo=Euo∪D(Ec,v∩Euo);
4)AE安全可控性=false;
5)else根據(jù)定義5計算FC;
7) AE安全可控性=false;
8)else;
11) AE安全可控性=false;
12)elseAE安全可控性=true。
注意,診斷器總是會檢測到σ∈Ec,v∩Eo中對脆弱事件的攻擊,因為對應(yīng)的σa是可觀的。然而,在這種情況下,被控對象仍然可能通過不可控和受攻擊的執(zhí)行器事件達到不安全狀態(tài),違反AE安全可控性。因此,定義1中的條件仍然需要測試,如算法2所述。
例1中,在圖3e中展示AE攻擊下的閉環(huán)系統(tǒng)。此處按照算法2來測試系統(tǒng)是否為AE安全可控的,得到的Gl如圖6所示。
圖5 標(biāo)簽自動機AlFig.5 Label Automata Al
圖6 自動機GlFig.6 Automata Gl
基于算法2,當(dāng)一個系統(tǒng)不能滿足AE安全可控性時,我們能夠按照一定的規(guī)則對該系統(tǒng)進行修改,使其能夠滿足該AE安全可控性條件。由此,提出了算法3。
算法3修復(fù)系統(tǒng)AE安全可控性的算法
輸入:違反AE安全可控性的系統(tǒng)
輸出:滿足AE安全可控性的系統(tǒng)
endwhile
2)根據(jù)定義2計算FC
endwhile
4)計算Xuc
endwhile
算法3是基于算法2所建立的,通過對算法2的逐步補充驗證而構(gòu)造。
例1中,我們在圖3e中展示AE攻擊下的閉環(huán)系統(tǒng)。此處按照算法3來修復(fù)系統(tǒng),如圖7所示。經(jīng)過算法3檢測,可以得知其是在第5)步中,違反了判斷條件,此處,可以通過添加一個可控且可觀的事件d使得系統(tǒng)滿足AE安全可控性。如圖7所示。
圖7中的虛線箭頭表示事件將不會發(fā)生,從而避免了系統(tǒng)進入到不安全的狀態(tài)。
圖7 修改后的滿足AE安全可控性的系統(tǒng)Fig.7 Modified system that meets the safety and controllability of AE
圖8 一段有檢測器和紅綠燈的鐵路Fig.8 A railway line with light and detector
可控事件集為Ec={a1,b1,a2,b2,a4,b4},可觀事件集為Eo={a1,b1,a3,b3,a4,b4,a5,b5}??刂颇繕?biāo)是希望兩列車在通過這一段路時,為了保證不碰撞,不允許兩列車同時出現(xiàn)在同一路段(僅指S1-S4)。
圖9 被控對象的模型和Sp的標(biāo)準實現(xiàn)Fig.9 The plant mode and the standard realization of P-supervisor
圖10是受到AE攻擊的監(jiān)督器和閉環(huán)系統(tǒng)。
圖10 受到AE攻擊的監(jiān)督器和閉環(huán)系統(tǒng)Fig.10 The supervisor and closed-loop systems under AE-attack
圖11 修復(fù)后的閉環(huán)系統(tǒng)Fig.11 The repaired closed-loop systems
顯然,通過上述的舉措,使得該段軌道即使是在受到AE攻擊時,也能夠保持安全性。
本文主要研究了離散事件系統(tǒng)中的入侵檢測,防御以及修復(fù)問題。基于受到AE攻擊的系統(tǒng)模型,引入了AE安全可控性的定義,得到了一種能夠?qū)ο到y(tǒng)的AE安全可控性進行檢測的診斷器算法。并在檢測后禁用所有可控事件,防止系統(tǒng)到達不安全狀態(tài)。最后,當(dāng)系統(tǒng)不滿足AE安全可控性時,提出了一種修復(fù)算法,使其確保了系統(tǒng)的安全可控。