999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于信息流和狀態(tài)流融合的工控系統(tǒng)異常檢測算法

2018-11-13 05:07:14鄭為民石志強孫利民
計算機研究與發(fā)展 2018年11期
關(guān)鍵詞:設(shè)備檢測信息

楊 安 胡 堰 周 亮 鄭為民 石志強 孫利民

1(物聯(lián)網(wǎng)信息安全技術(shù)北京市重點實驗室(中國科學院信息工程研究所) 北京 100093) 2(中國科學院大學網(wǎng)絡(luò)空間安全學院 北京 100049) 3(北京科技大學計算機與通信工程學院 北京 100083) 4(中國電力科學研究院 北京 100192) 5 (中國科學院信息工程研究所 北京 100093) (yangan@iie.ac.cn)

工業(yè)控制系統(tǒng)(industrial control system, ICS)是一類用于工業(yè)生產(chǎn)的控制系統(tǒng)的統(tǒng)稱,它包含監(jiān)視控制與數(shù)據(jù)采集系統(tǒng)(supervisory control and data acquisition, SCADA)、分布式控制系統(tǒng)和其他一些常見于工業(yè)部門與關(guān)鍵基礎(chǔ)設(shè)施的小型控制系統(tǒng)(如可編程邏輯控制器)等[1].ICS廣泛應(yīng)用社會的各行各業(yè)中,包括機械制造、石油石化等工業(yè)生產(chǎn)企業(yè)以及污水處理、核電系統(tǒng)等基礎(chǔ)設(shè)施. 目前,內(nèi)部惡意人員、敵對企業(yè)、國家級組織等攻擊者日益增多,自動化工具、零日漏洞等攻擊技術(shù)迅猛發(fā)展,ICS的安全直接關(guān)系到企業(yè)的正常運轉(zhuǎn)和國家的安全穩(wěn)定.

隨著ICS的開放化和標準化,其與外部網(wǎng)絡(luò)的聯(lián)系越來越緊密,業(yè)務(wù)處理更加方便.然而其脆弱點也更多地暴露到互聯(lián)網(wǎng)中,導致所受到的網(wǎng)絡(luò)攻擊也急劇增加.序列攻擊是針對ICS的一種特殊攻擊.該攻擊依賴控制流程、被控物理設(shè)備的知識,試圖對物理世界造成最大化的破壞.該攻擊主要針對由寫、執(zhí)行等操作組成的周期性操作序列.它通過將正常操作以非正常次序出現(xiàn),使目標設(shè)備出現(xiàn)問題.

目前針對序列攻擊的主要檢測算法是通過旁路監(jiān)聽ICS中的信息流,從中捕獲、提取操作命令以形成操作命令序列,進而采用有限狀態(tài)機、Markov模型等數(shù)學檢測模型,正確構(gòu)建多個操作之間正常合理的對應(yīng)關(guān)系,從操作次序上識別異常操作.

然而上述檢測模型嚴重依賴于數(shù)據(jù)的完整性和真實性.由于ICS在設(shè)計之初未考慮安全性,且與互聯(lián)網(wǎng)緊密關(guān)聯(lián),易遭受攻擊.攻擊者可通過注入、阻斷、篡改操作命令等方式,偽造虛假的操作序列,導致檢測算法產(chǎn)生漏報,造成檢測算法的失效.

為解決上述問題,本文引入設(shè)備狀態(tài)流的思想.設(shè)備狀態(tài)流是利用大量不同的感知信息表示系統(tǒng)設(shè)備的實時狀態(tài),其與信息流相互獨立,可保證設(shè)備狀態(tài)流不受數(shù)據(jù)篡改的影響,保證數(shù)據(jù)的真實性、獨立性.

因此,本文根據(jù)ICS與物理環(huán)境的緊密關(guān)系,提出一種新型的序列攻擊檢測算法ADISF(anomaly detection based on information flow and state flow fusion),將信息流(控制系統(tǒng))和設(shè)備狀態(tài)流(設(shè)備狀態(tài))相融合,以實現(xiàn)對序列攻擊的精確檢測.該算法針對操作序列,以概率后綴樹(probabilistic suffix tree, PST)的思想檢測操作次序的異常;依據(jù)樹中節(jié)點所攜帶的設(shè)備狀態(tài)變化屬性信息,采用閾值匹配方法判斷該節(jié)點(操作)前、后設(shè)備狀態(tài)取值及其變化差值的合法性,實現(xiàn)對操作時序異常的檢測;依據(jù)樹中節(jié)點所攜帶的設(shè)備狀態(tài)發(fā)展趨勢屬性信息,采用閾值匹配和自回歸(auto regressive, AR)模型方法,判斷該節(jié)點與下個節(jié)點之間的設(shè)備狀態(tài)取值變化形式,以及時發(fā)現(xiàn)操作間隔中的設(shè)備狀態(tài)異常.

本文的主要貢獻有3點:

1) 提出了信息流和設(shè)備狀態(tài)流相融合的序列攻擊檢測算法,可防止虛假操作對檢測結(jié)果的影響;

2) 提出了全操作周期的異常檢測機制,在傳統(tǒng)操作次序異常檢測的基礎(chǔ)上,利用設(shè)備狀態(tài)流維度識別操作時序異常的操作,并增加對操作間隔中的異常檢測,擴充了傳統(tǒng)序列攻擊檢測的檢測范圍;

3) 依據(jù)該算法實現(xiàn)了雙流檢測方案,并在燃氣管網(wǎng)系統(tǒng)測試床中驗證了該檢測算法的有效性.

1 相關(guān)工作

目前針對序列攻擊檢測的研究,大多是從工業(yè)控制網(wǎng)絡(luò)中提取操作序列,采用確定性或概率性檢測方法,檢測操作次序.

確定性檢測方式是基于訓練數(shù)據(jù)構(gòu)建唯一的、無隨機成分的檢測模型,如有限狀態(tài)機. Sekar等人[2]將傳統(tǒng)有限狀態(tài)機擴展到傳輸層協(xié)議,實現(xiàn)對TCP和UDP等協(xié)議的檢測;Krueger等人[3]針對會話序列,利用n-grams算法分析消息間的相似性以形成事件狀態(tài)空間,并形成最小的確定性有限狀態(tài)機(deterministic finite automaton, DFA),實現(xiàn)對正常網(wǎng)絡(luò)通信行為規(guī)則的建模;此外,Goldenberg等人[4]將確定性有限狀態(tài)機擴展到應(yīng)用層,實現(xiàn)對高周期性的Modbus協(xié)議的檢測.

概率性檢測方法是采用概率統(tǒng)計的方法計算各個操作出現(xiàn)的概率,以構(gòu)建ICS的操作概率模型,常用的有貝葉斯模型和Markov模型.Yoon等人[5]采用PST,針對Modbus協(xié)議的請求/應(yīng)答序列進行建模,并根據(jù)實時計算結(jié)果與閾值的偏移程度識別異常;Caselli等人[6]針對工控協(xié)議(Modbus, IEC104)、日志文件和運行變量,分別采用離散Markov鏈進行建模,并采用帶權(quán)重的距離公式計算實時偏移量以識別異常.

此外,部分研究者還依據(jù)網(wǎng)絡(luò)數(shù)據(jù),從其他角度檢測攻擊.Sommer等人[7]從網(wǎng)絡(luò)通信中實時提取物理位置、傳感器取值等可編程邏輯控制器(pro-grammable logic controller, PLC)的運行變量,采用自回歸模型或變量取值范圍匹配,對這些變量值進行監(jiān)控.Xiao等人[8]提出一個位于SCADA系統(tǒng)之上的工作流層,采用模擬器檢測下發(fā)的控制命令,識別已知攻擊;監(jiān)控物理層狀態(tài)信息,利用系統(tǒng)健康檢查識別潛在威脅.

本節(jié)所述方案均是在網(wǎng)絡(luò)數(shù)據(jù)安全可靠的前提下提出的.目前工業(yè)控制網(wǎng)絡(luò)較為脆弱,易受攻擊,導致檢測失效.本文提出了基于信息流和設(shè)備狀態(tài)流相融合的序列攻擊檢測算法,將獨立的設(shè)備狀態(tài)流信息融入到信息流中,從次序和時序2個維度檢測操作序列的異常.該方法在操作序列次序檢測的基礎(chǔ)上,實現(xiàn)了操作序列時序異常的檢測,提升了對序列攻擊的檢測精度.

2 背 景

2.1 序列攻擊

在實際工業(yè)生產(chǎn)中,存在明確的操作順序以及嚴格的時限要求,用于確保系統(tǒng)正常的生產(chǎn)過程;一旦操作出現(xiàn)問題,會導致業(yè)務(wù)邏輯混亂,破壞生產(chǎn)流程的穩(wěn)定,從而造成設(shè)備損害、資源浪費,甚至人員傷害.

序列攻擊可分為2類:基于次序的攻擊和基于時序的攻擊.基于次序的攻擊是將消息、命令以非法、惡意的次序發(fā)送;基于時序的攻擊是將消息、命令在非法的時間內(nèi)發(fā)送.

Carcano等人[9]列舉了一個基于次序的序列攻擊實例.他們選用一條輸氣管道,其壓強由2個開關(guān)V1和V2控制.他們通過2條錯位的合法控制消息,將系統(tǒng)置于危險狀態(tài).具體來講,攻擊者訪問該網(wǎng)絡(luò)并向PLC注入寫消息,導致V2完全關(guān)閉且V1完全打開,迫使輸氣量及管道壓強最大化.在此操作中,每條命令在獨立檢測時都是合法的,但將它們以特定順序發(fā)送會導致系統(tǒng)進入臨界狀態(tài).

美國總統(tǒng)關(guān)鍵基礎(chǔ)設(shè)施保護委員會的報告中提及了一個基于時序的攻擊實例.該攻擊場景是一個配水部門,其輸水管道由大量閥門進行控制.一旦這些閥門快速開關(guān),則會形成水錘效應(yīng),導致大量管道同時破裂.因此,攻擊者可給PLC發(fā)送異常速率的合法寫命令序列,命令這些閥門以異常速率進行開關(guān)操作,迫使水流在慣性等因素的作用下,對閥門和管道產(chǎn)生正常工作壓強幾十倍以上的瞬時壓強,造成閥門損壞或管道破裂.

2.2 序列攻擊檢測

基于PST的檢測算法是針對序列攻擊的一種常用的、基于樹的檢測算法,其結(jié)構(gòu)較為靈活,易于擴展,且便于進行故障診斷與排除.PST本質(zhì)上是一個變階的Markov模型[10],其假設(shè)當前操作僅與前多個操作有關(guān).該算法在功能上避免了單階Markov模型因跳轉(zhuǎn)概率相同而產(chǎn)生的節(jié)點跳轉(zhuǎn)誤判問題,并避免了N階Markov模型復雜的訓練過程;在性能上,避免了因Markov模型的訓練時間復雜度隨階次的增加呈指數(shù)形式增長而導致的內(nèi)存爆炸問題,且其學習時間相對于隱馬爾可夫模型(hidden Markov model, HMM)[11]有著顯著的降低.

PST是一個非空的樹,用于表示某個序列P=(P1P2…Pm…),Pm∈C的概率特征,其中C表示該序列的符號集.該樹上的邊為C中的某個符號標記,且某個節(jié)點發(fā)出的邊的符號標記各不相同.該樹上的節(jié)點表示一個符號串Q,其中根節(jié)點為ROOT,其余節(jié)點的Q是從該節(jié)點回溯到根節(jié)點所經(jīng)過的邊生成的.此外每個節(jié)點還存儲一個概率向量,它是該節(jié)點符號串的下個符號出現(xiàn)的條件概率.圖1是由“ABRAFAGABRA”序列生成的深度為2的PST.

Fig. 1 PST trained by “ABRAFAGABRA”圖1 由“ABRAFAGABRA”訓練生成的PST

在檢測過程中,由于訓練數(shù)據(jù)中可能存在噪音或少量異常數(shù)據(jù),故PST主要采用閾值比較的方法,將周期性操作中出現(xiàn)概率較小的操作序列認為是異常.針對獲取到的操作Pm,根據(jù)L長度的歷史操作序列HP=(Pm-LPm-L+1…Pm-1),計算概率p(Pm|HP)并與預先給定的閾值θ(多為經(jīng)驗值)進行比較,若小于則認為異常,產(chǎn)生警報.

Fig. 2 ADISF tree structure圖2 ADISF樹形結(jié)構(gòu)

3 ADISF模型

ADISF模型是借鑒了PST的理念,用于描述、存儲操作序列、操作執(zhí)行時的設(shè)備狀態(tài)變化和操作之后的設(shè)備狀態(tài)發(fā)展趨勢的一個樹形結(jié)構(gòu).該樹中的邊為操作集合中的某個操作,樹上的節(jié)點表示由該節(jié)點到根節(jié)點所經(jīng)過的邊所組成的操作序列.此外,對每個節(jié)點構(gòu)造了復雜的屬性集合,用于存儲操作序列信息、操作與設(shè)備狀態(tài)之間的關(guān)聯(lián)性以及設(shè)備狀態(tài)自身的發(fā)展趨勢,利于實現(xiàn)對序列攻擊的檢測.圖2是由本算法生成的ADISF模型實例,其中僅以節(jié)點F為例顯示其屬性信息.

在本文中,我們以操作序列及其出現(xiàn)概率表示信息流數(shù)據(jù).同時,我們采用由多個狀態(tài)信息組成的狀態(tài)向量表示設(shè)備狀態(tài),其值主要由傳感器數(shù)值組成,分別表示液位、溫度、流速等含義.

具體來說,本文樹上各節(jié)點的屬性集合由五大部分組成,包括了信息流相關(guān)的下一跳狀態(tài)向量及其轉(zhuǎn)移概率向量,以及設(shè)備狀態(tài)流相關(guān)的狀態(tài)集合、權(quán)重向量、特征變換對應(yīng)集合,如圖3所示.其中根據(jù)狀態(tài)信息類型的不同,設(shè)備狀態(tài)流相關(guān)的屬性又可劃分成離散和連續(xù)2個子屬性.具體來說,屬性集合包括:

1) 下一跳狀態(tài)向量.表示所有可能的下一跳節(jié)點狀態(tài)信息.

2) 下一跳的轉(zhuǎn)移概率向量.表示從當前狀態(tài)跳轉(zhuǎn)到對應(yīng)下一跳節(jié)點的發(fā)生概率,其每個向量元素取值為

p′=n′m′,

(1)

其中,m′為當前節(jié)點狀態(tài)的出現(xiàn)次數(shù),n′為對應(yīng)下一跳節(jié)點狀態(tài)的出現(xiàn)次數(shù).

3) 狀態(tài)信息集合.執(zhí)行對應(yīng)操作前、后的所有合法的狀態(tài)信息集合.本文根據(jù)該狀態(tài)信息的取值個數(shù)與閾值的比較,將其劃分為離散和連續(xù)2個類型,以采用不同的分析方法:

① 離散狀態(tài)信息集合.記錄由操作前、后的離散狀態(tài)信息向量sfdb,k=(fdb,1,fdb,2,…,fdb,z)和sfda,k=(fda,1,fda,2,…,fda,z)組成的前離散狀態(tài)信息集合SFdb={sfdb,1,sfdb,2,…,sfdb,q}和后離散狀態(tài)信息集合SFda={sfda,1,sfda,2,…,sfda,r},其中f表示某一離散狀態(tài)信息,z表示離散狀態(tài)信息的個數(shù),q和r分別表示前、后離散狀態(tài)信息向量的個數(shù).此外,該操作執(zhí)行后到下個操作執(zhí)行前,對應(yīng)的離散狀態(tài)信息向量應(yīng)保持不變,故無需記錄離散狀態(tài)信息在操作執(zhí)行后的變化情況.

② 連續(xù)狀態(tài)信息變化集合. 根據(jù)特征采集時間又可分為2類.Ⅰ)針對操作執(zhí)行時的連續(xù)狀態(tài)信息取值的變化情況,計算操作前、后連續(xù)狀態(tài)信息向量的平均差值sfcb=(fc,1,fc,2,…,fc,v),其中v表示連續(xù)狀態(tài)信息個數(shù),fc,i表示第i個連續(xù)狀態(tài)信息的平均差值;確定操作前、后連續(xù)狀態(tài)信息向量的固定取值情況sfcbf=(fcbf,1,fcbf,2,…,fcbf,v)和sfcaf=(fcaf,1,fcaf,2,…,fcaf,v),其中fcbf,i和fcaf,i表示第i連續(xù)狀態(tài)信息的前、后固定取值.Ⅱ)針對操作執(zhí)行后的連續(xù)狀態(tài)信息的變化情況,形成連續(xù)狀態(tài)信息變化趨勢向量Ca=(ca,1,ca,2,…,ca,v),其中ca,i表示該段時間對應(yīng)的第i個連續(xù)狀態(tài)信息值的變化趨勢.

4) 權(quán)重向量.表示各狀態(tài)信息取值的變化情況.對于離散狀態(tài)信息集合,采用變量Wd表示離散狀態(tài)信息向量在操作執(zhí)行前后的數(shù)值變化情況,包括無變化、一一對應(yīng)、一對多、多對一和多對多這5種情況.對應(yīng)連續(xù)狀態(tài)信息變化集合,采用Wc=(wc,1,wc,2,…,wc,v)表示各連續(xù)狀態(tài)信息在該時間間隔中的數(shù)值變化情況,包括操作執(zhí)行前后數(shù)值固定、操作執(zhí)行前后無變化和操作執(zhí)行前后有變化這3種情況;采用Wcl=(wcl,1,wcl,2,…,wcl,v)表示各連續(xù)狀態(tài)信息在該操作執(zhí)行后的數(shù)值變化趨勢,包括操作執(zhí)行后穩(wěn)定、操作執(zhí)行后特定波動、操作執(zhí)行后隨機波動這3種情況.

5) 信息變換對應(yīng)集合.表示該時刻各狀態(tài)信息的前后狀態(tài)取值的對應(yīng)情況.對于離散狀態(tài)信息,表示操作執(zhí)行前、后2個離散狀態(tài)信息集合的對應(yīng)情況CSF;對于連續(xù)狀態(tài)信息,表示其后續(xù)變化趨勢對應(yīng)的AR模型參數(shù)集ARcl或者取值范圍SCcl.

Fig. 3 Node attribute of ADISF圖3 ADISF節(jié)點屬性列表

4 基于信息流和狀態(tài)流融合的ICS檢測算法

ADISF檢測算法首次將設(shè)備狀態(tài)信息融入序列攻擊檢測中,在操作次序檢測基礎(chǔ)上,利用存儲于ADISF模型的操作執(zhí)行前后的設(shè)備狀態(tài)數(shù)值的合法變化關(guān)系,檢測操作時序的合理性.同時針對傳統(tǒng)序列檢測算法無法檢測操作間隔中的異常問題,本算法在操作執(zhí)行后實時跟蹤檢測設(shè)備狀態(tài)的發(fā)展變化,結(jié)合ADISF模型存儲的設(shè)備狀態(tài)合法變化趨勢數(shù)據(jù),采用AR和閾值匹配方法及時發(fā)現(xiàn)設(shè)備異常,從整體上兼顧了ICS所有的運轉(zhuǎn)時間,彌補了現(xiàn)有操作序列檢測在檢測范圍上的不足,也縮短了序列攻擊檢測的異常識別時間.

如圖4所示,該檢測算法主要由2部分組成:模型的訓練和實時數(shù)據(jù)檢測.

Fig. 4 Overview of ADISF圖4 ADISF算法架構(gòu)圖

4.1 ADISF模型訓練

ADISF算法從訓練數(shù)據(jù)中提取相應(yīng)的操作序列以及實時設(shè)備狀態(tài)信息,先根據(jù)操作序列采用信息熵確定ADISF樹的深度,再構(gòu)建ADISF.構(gòu)建ADISF又可分為:1)根據(jù)操作序列,從根節(jié)點開始,構(gòu)建ADISF樹形結(jié)構(gòu);2)在樹中各節(jié)點中添加狀態(tài)信息以及對應(yīng)的數(shù)值變化;3)提取該操作與下一個操作之間的狀態(tài)向量集合,并采用閾值分析和AR模型確定該間隔中各狀態(tài)信息取值的變化趨勢.

4.1.1 ADISF深度確定

ADISF的深度是該樹可匹配的最長序列長度,其值的設(shè)定很大程度上決定檢測的準確性.若深度過深,導致計算和存儲開銷呈指數(shù)增長,且久遠、無用的歷史數(shù)據(jù)會消耗大量的檢測時間,降低檢測效率和實時性;若深度過淺,則需要匹配的序列段長度短,易造成誤判,影響檢測精度.

由于ICS的業(yè)務(wù)流程多存在周期性,故樹的深度可設(shè)為對應(yīng)業(yè)務(wù)流程的周期值.在缺少相關(guān)信息的情況下,操作員可通過分析多周期的操作命令序列獲得周期值.除少量由于操作員臨時操作調(diào)整等原因?qū)е轮芷陂L短發(fā)生變化,絕大多數(shù)操作仍按照業(yè)務(wù)流程以固定周期的形式執(zhí)行.因此,通過尋找對應(yīng)操作變化最小的間隔長度,可較為精準地確定周期值.

信息熵是用來描述信源的不確定度,當信源的不確定性越大、越混亂,信息熵即越大;反之亦然.故本文依據(jù)信息熵的思想,針對不同長度間隔形成的多個操作集合,選取熵值最小的操作集合對應(yīng)的長度間隔為周期值.具體計算過程如下所示:

1) 將采集到的、長度為lP的操作序列P按照不同的長度l=1,2,…,lP2劃分成多個操作子集,其中每個子集SPl={Pl,P2×l,…,Po×l}是由間隔為l的操作組成的集合(算法1行②).

2) 針對各個SPl,分別計算其對應(yīng)的信息熵El,形成向量EN=(E1,E2,…,ElP2)(算法1行③).

3) 選取EN中最小值El對應(yīng)的固定長度l作為該序列的周期長度(算法1行⑤).

算法1. 序列周期長度計算算法.

為了準確全面地對滑坡位移特征進行研究,本次選取滑坡監(jiān)測初始的約2.5個水文年作為代表性時間段(見圖3)。分析該滑坡位移與庫水及降雨間的相關(guān)性發(fā)現(xiàn),該滑坡的位移明顯增加現(xiàn)象并非發(fā)生在強降雨時期,而是庫水位強烈波動時期。由此可知,該滑坡的主控外因是庫水位波動,即在后續(xù)數(shù)值模擬研究中,忽略降雨對滑坡變形的影響是合理的。

輸入:操作序列P、序列長度lP;

輸出:周期長度L.

② 生成集合SPl;

③ 計算集合SPl的熵值;

④ end for

⑤ 確定周期長度L.

4.1.2 構(gòu)建ADISF

1) 利用操作序列P,從根節(jié)點開始,依次計算各候選子節(jié)點的概率向量,逐層建立候選子節(jié)點,直到樹的最大深度,并在各節(jié)點中記錄下一跳狀態(tài)向量Next_state和其轉(zhuǎn)移概率向量Probability(算法2行①).

2) 根據(jù)設(shè)備狀態(tài)信息序列OS,確定各設(shè)備狀態(tài)信息的類型,生成狀態(tài)類型向量TO(算法2行②);針對ADISF各節(jié)點,從設(shè)備狀態(tài)信息序列OS中,提取該節(jié)點對應(yīng)的操作執(zhí)行前、后的狀態(tài)集合Ob,Oa,以及該操作與下個操作之間的設(shè)備狀態(tài)序列D(算法2行④);根據(jù)TO的取值將狀態(tài)信息劃分為2類并分別進行分析:

① 離散狀態(tài)信息向量Od

從集合Ob和Oa中提取Od對應(yīng)的Odb和Oda,計算SFdb和SFda及其之間的對應(yīng)關(guān)系CSF,以此確定權(quán)重Wd(一對一、一對多、多對一、多對多)(算法2行⑤).

② 各連續(xù)狀態(tài)信息Oci

Ⅰ) 從Ob,Oa,D中提取Oci對應(yīng)的部分Ocb,i,Oca,i,Di;判斷Ocb,i和Oca,i各自的取值個數(shù),確定是否為定值;計算Oci對應(yīng)的fc,i,并將其與對應(yīng)的連續(xù)狀態(tài)信息變化閾值向量τcm中的τcm,i進行比較,以確定wc,i(算法2行⑦).

Ⅱ) 計算Oci的變化趨勢ca,i,并與其對應(yīng)的連續(xù)狀態(tài)信息趨勢閾值向量τlm中的τlm,i進行比較,確定wcl,i(算法2行⑧).其中l(wèi)c是Di的長度,d1,i是Di的第1個取值.

(2)

Ⅲ) 根據(jù)Di和wcl,i等信息判斷Oci是否適用于AR模型,若適用則訓練對應(yīng)AR模型的參數(shù)集ARcl,i;否則記錄SCcl,i用于閾值檢測(算法2行⑨).

算法2. ADISF訓練算法.

輸入:操作序列P、操作序列長度lP、設(shè)備狀態(tài)信息序列OS;

輸出:生成的ADISF樹ADISF-tree.

① 生成ADISF的樹形結(jié)構(gòu)ADISF-tree;

② 確定各狀態(tài)信息的類型;

③ for每個樹節(jié)點p_n

④ 提取節(jié)點前后狀態(tài)信息集合;

⑤ 針對離散狀態(tài)信息,生成狀態(tài)信息集合、權(quán)重向量及信息變換對應(yīng)集合;

⑥ for每個連續(xù)狀態(tài)信息Oci

⑦ 判斷節(jié)點前、后信息向量的相關(guān)取值及權(quán)重;

⑧ 確定其后續(xù)變化趨勢及權(quán)重信息;

⑨ 確定后續(xù)變化趨勢的對應(yīng)關(guān)系;

⑩ end for

4.2 實時檢測

當算法訓練結(jié)束后,即可利用已構(gòu)建出的ADISF模型,針對實時捕獲的雙流數(shù)據(jù),判斷是否存在序列攻擊或設(shè)備狀態(tài)的異常. 其核心思想是將實時捕獲的操作和設(shè)備狀態(tài)信息作為輸入,判斷ADISF中是否存在對應(yīng)的跳轉(zhuǎn)節(jié)點,以及跳轉(zhuǎn)條件和變化趨勢是否正確,若出現(xiàn)錯誤,即認為產(chǎn)生操作次序、時序或設(shè)備狀態(tài)的異常,以此檢測當前命令是否合乎業(yè)務(wù)流程.

本算法在剛開始檢測或檢測出異常時會清空歷史操作序列,此時在捕獲到第1個操作之前的設(shè)備狀態(tài)信息均無法確定其對應(yīng)的ADISF節(jié)點信息,只能將其過濾.因此在無歷史操作序列情況下,只能簡單地檢測操作時序、次序的合法性;而在有歷史操作序列情況下,可精確地檢測操作次序、時序和設(shè)備狀態(tài)的異常.故本算法根據(jù)歷史操作序列是否為空,將檢測流程分為起始檢測、后續(xù)實時檢測2部分.其具體流程如下:

判斷歷史操作序列的內(nèi)容,若歷史操作序列為空,執(zhí)行起始檢測;若存在歷史操作序列,則執(zhí)行后續(xù)實時檢測.

起始檢測:

1) 過濾捕獲到的數(shù)據(jù),直到獲取到第1個操作P_T_C,在ADISF-tree中確定其對應(yīng)的節(jié)點,判斷是否為非法操作(算法3行②~⑤).

2) 當對應(yīng)操作正常時,認為該操作P_T_C前一時刻的狀態(tài)信息是正常的,故獲取該操作前、后對應(yīng)的狀態(tài)信息向量OBb和OBa,判斷各狀態(tài)信息(操作時序)是否正確.

① 針對離散狀態(tài)信息向量Od,根據(jù)其權(quán)重取值Wd在信息變換對應(yīng)集合中提取對應(yīng)集合CSF,并以此對應(yīng)向量判斷該離散狀態(tài)信息Od在操作前后的變化是否合法.

② 針對連續(xù)狀態(tài)信息Oci,根據(jù)其權(quán)重取值wc,i選取對應(yīng)的fcbf,i,fcaf,i,fc,i,以此判斷該連續(xù)狀態(tài)信息Oci在操作前、后的取值和其差值是否合法(算法3行⑦~).

后續(xù)實時檢測:

1) 根據(jù)當前時刻t獲取到的數(shù)據(jù)類型判斷檢測對象(算法3行).若被檢測對象是設(shè)備狀態(tài),則在ADISF中找到對應(yīng)節(jié)點,針對各狀態(tài)信息,執(zhí)行步驟2;若被檢測對象是具體操作,則執(zhí)行步驟3.

2) 針對離散狀態(tài)信息向量Od,判斷其取值是否保持一致,若不一致則產(chǎn)生異常警報;針對連續(xù)狀態(tài)信息Oci,根據(jù)對應(yīng)的權(quán)重取值wcl,i及連續(xù)狀態(tài)信息變化趨勢ca,i,提取信息變換對應(yīng)集合中的AR模型參數(shù)集ARcl,i或取值范圍SCcl,i,并采用AR模型閾值匹配方法判斷提取的連續(xù)狀態(tài)信息是否合法.當所有狀態(tài)信息均檢測完畢后結(jié)束對該數(shù)據(jù)的檢測(算法3行~).

3) 根據(jù)當前指令Pm,獲取長度為L的歷史指令序列HP=(Pm-L…Pm-2Pm-1)(算法3行),計算從歷史序列跳轉(zhuǎn)到當前操作的跳轉(zhuǎn)概率βt,判斷操作序列的次序是否合法.若βt>λmin(λmin為指令跳轉(zhuǎn)概率閾值)則認為序列正常,否則產(chǎn)生序列異常警報(算法3行~).跳轉(zhuǎn)概率可計算為

βt=p(Pm|HP).

(3)

4) 采用起始檢測中的步驟2檢測操作時序是否合法(算法3行~).

算法3. 實時檢測算法.

輸入:ADISF樹ADISF-tree、實時操作序列P_T、設(shè)備狀態(tài)信息序列O_T、當前檢測節(jié)點p_n、檢測時刻t;

輸出:序列檢測結(jié)果Result.

① ifp_n=?

② 獲取第1個操作P_T_C;

③ 檢測首個操作的合法性;

④ if操作節(jié)點檢測異常

⑤ 在Result中寫入警報信息并結(jié)束檢測;

⑥ else

⑦ 獲取該操作執(zhí)行前后狀態(tài)信息;

⑧ 檢測操作執(zhí)行前后的狀態(tài)信息;

⑨ if操作節(jié)點前后狀態(tài)值變化異常

⑩ 在Result中寫入警報信息并結(jié)束檢測;

Fig. 5 Overview of GPNS testbed圖5 燃氣管網(wǎng)測試床的架構(gòu)圖

5 實驗與結(jié)果

5.1 實驗環(huán)境

本文中我們構(gòu)建了一個燃氣管網(wǎng)測試床(gas pipe network system, GPNS),如圖5所示.該燃氣管網(wǎng)系統(tǒng)的目標是將天然氣從門站傳送到居民住所中.其物理環(huán)境由1個模仿門站的氣泵,一段壓力管道,3個壓力轉(zhuǎn)換器,4個閥門,多個用于監(jiān)測壓力、流速和溫度的傳感器組成.其中,氣泵為物理環(huán)境提供高壓氣體;氣體管道分為3部分,分別為高壓管道、中壓管道和低壓管道,每段管道通過1對壓力轉(zhuǎn)換器和開關(guān)來控制氣體壓強的降低;多個傳感器負責收集管道的溫度、流速和壓力等狀態(tài)信息.此外,該場景還利用2個PLC和1個操作員控制站來控制整個合法的業(yè)務(wù)流程.其業(yè)務(wù)流程由2個部分組成:

1) 正常情況.打開氣泵生成高壓;依次打開所有閥門,構(gòu)建從門站到居民住所的氣體管道輸送路徑;打開所有壓力轉(zhuǎn)換器使氣體壓強降低到居民可使用的范圍.

2) 泄漏.當管道損壞(由泄漏閥模擬實現(xiàn))后發(fā)生燃氣泄漏,對應(yīng)壓力急劇下降,導致距該損壞處最近的2個閥門以及氣泵立即關(guān)閉;當管道修復(同樣由泄漏閥模擬實現(xiàn))后,打開氣泵,壓力逐漸恢復正常,進而相繼打開關(guān)閉的閥門,恢復管道的連通.

5.2 攻擊數(shù)據(jù)生成及系統(tǒng)參數(shù)設(shè)置

為測試ADISF的檢測效果,我們針對其檢測對象,將序列攻擊細分為3種:

1) 操作次序變更攻擊.即改變合法操作序列,常見攻擊方法包括增加新的操作、阻斷正常操作的下發(fā)、改變部分操作的次序以及篡改操作指令的內(nèi)容等.該攻擊類型主要針對ADISF節(jié)點的次序檢測.

2) 操作時序變更攻擊.即調(diào)整操作指令的時序,在系統(tǒng)保持正常的情況下,使操作執(zhí)行在合法時間段之外,導致操作執(zhí)行時對應(yīng)的設(shè)備狀態(tài)不在合理范圍內(nèi)(例如應(yīng)在100℃時停止加熱的鍋爐,且其溫度允許范圍為0~100℃.但因受到攻擊,它在80℃時就停止了加熱).該攻擊類型主要針對ADISF節(jié)點的狀態(tài)檢測.

3) 操作滯后攻擊(又稱為操作間隔攻擊).是操作時序變更攻擊中的一個特例,它主要通過延誤操作指令的下發(fā),致使設(shè)備的狀態(tài)在等待下個操作的過程中發(fā)生了異常.該攻擊類型主要針對ADISF節(jié)點的操作間隔狀態(tài)檢測.

具體實現(xiàn)方面,本文在GPNS實際運行中,通過改變閥門開關(guān)順序來實現(xiàn)操作次序變更攻擊;通過調(diào)整閥門開關(guān)執(zhí)行時的設(shè)備狀態(tài)流信息來實現(xiàn)操作時序變更攻擊和操作滯后攻擊.

在實驗中,我們采用基于HMM的檢測算法、基于PST的檢測算法和ADISF共3種檢測方法進行對比實驗. 其中,依據(jù)先驗知識以及經(jīng)驗,PST和ADISF均采用以下參數(shù)進行訓練:λc=10,τcm=(τcm,1,τcm,2,…,τcm,v)=(0.5,0.5,…,0.5),τlm=(τlm,1,τlm,2,…,τlm,v)=(0.6,0.6,…,0.6),λmin=0.7.基于HMM的檢測算選取相關(guān)參數(shù):隱狀態(tài)個數(shù)Qh=4,連續(xù)觀測量個數(shù)Ohc=6,離散觀測量個數(shù)Ohd=11,正常匹配閾值βlog_min=-850.

5.3 度量標準

異常檢測系統(tǒng)的性能主要采用誤報率和漏報率2個指標進行分析.其中,誤報率是將正常行為誤判斷為異常行為的概率;漏報率是將異常行為誤判斷為正常行為的概率[12].本文延續(xù)采用這2個指標評價ADISF的性能.

5.4 實驗和結(jié)果

本節(jié)我們通過2個實驗來驗證ADISF的檢測全面性和檢測高效性.

5.4.1 序列周期判定

第1個實驗用來驗證利用信息熵計算序列周期長度的準確性.

根據(jù)對GPNS測試床設(shè)計、實現(xiàn)方案的分析,我們獲知該測試床的理論周期長度Lt=10.在實際循環(huán)運行中,其周期長度在9~12之間波動.為此我們采用信息熵方法進行周期測量.表1是不同周期長度下的熵值,我們可以看到長度lt=10時對應(yīng)熵值最小,即該間隔長度下的操作最為穩(wěn)定、一致.故該方法確定的周期長度L=10與理論值吻合.

Table 1 Entropy Value of Different Length 表1 不同周期長度下的熵值

5.4.2 ADISF檢測精度

第2個實驗是通過對3種序列攻擊的檢測效果驗證ADISF的檢測精度.具體實驗流程如下:

首先構(gòu)建了3個攻擊庫分別對應(yīng)3種序列攻擊,每個攻擊庫包括20個不同的攻擊實例;然后在測試床長達1 h、大約1 200條記錄左右的正常運行中,選取前0.5 h作為訓練數(shù)據(jù),并在后0.5 h的不同時刻中注入上述所有攻擊以產(chǎn)生測試數(shù)據(jù);最終我們記錄所有信息流和設(shè)備狀態(tài)流的相關(guān)數(shù)據(jù),形成實驗數(shù)據(jù).

表2是采用系統(tǒng)參數(shù)設(shè)置的3種檢測算法在此實驗數(shù)據(jù)中的識別率.表3和圖6是這3種檢測算法針對實驗數(shù)據(jù)、通過調(diào)節(jié)系統(tǒng)參數(shù)形成的受試者工作特征曲線(receiver operating characteristic curve, ROC)及相關(guān)數(shù)據(jù).

Table 2 Recognition Rate of Three Detection Algorithms Under Different Attacks

Table 3 Detection Results for Sequence Attack Detection表3 針對序列攻擊的檢測結(jié)果

從表2、表3和圖6中我們可發(fā)現(xiàn)基于HMM的檢測算法對3種攻擊的識別能力較差.該算法可識別因異常、非法操作而導致的非法設(shè)備狀態(tài),但因受Markov特性的影響,不易根據(jù)歷史操作序列,從多個合法狀態(tài)跳轉(zhuǎn)中選取正確的狀態(tài)跳轉(zhuǎn)對象,影響對序列攻擊的識別.同時該算法需要對離散狀態(tài)信息和連續(xù)狀態(tài)信息分別構(gòu)建HMM模型,其隱狀態(tài)變化的一致性也影響對序列攻擊的檢測精度.

Fig. 6 ROC curves of different attack圖6 針對不同攻擊的ROC曲線

此外基于PST的檢測算法主要針對操作序列的次序進行檢測,與ADISF算法一樣均能較高地檢測出第1種攻擊且二者無明顯檢測性能差異;然而后2種攻擊中的操作序列次序未發(fā)生變化,故其無法識別這2種攻擊,其檢測性能與本文提出的ADISF算法有較大的差距.因此,本算法在序列攻擊檢測精度方面優(yōu)于基于PST的檢測算法和基于HMM的檢測算法,能全面地檢測序列攻擊.

從圖6中我們可發(fā)現(xiàn)本算法針對3種序列攻擊,除對指令滯后攻擊的檢測效果較差外,其他2種攻擊的檢測精度較好.其主要原因分為2部分:1)當該算法檢測到異常時,為保證對后續(xù)數(shù)據(jù)檢測的準確性,舍棄其保存的歷史數(shù)據(jù),重新開始檢測.這導致該時刻到下一個操作之間的數(shù)據(jù)被忽略,影響對指令滯后攻擊的檢測.2)生成的AR模型不精確,易產(chǎn)生誤報和漏報,影響整體的檢測準確率.

此外本算法主要用于識別與正常操作序列有異的序列,無法區(qū)分該異常產(chǎn)生的根本原因(內(nèi)部人員故意為之、正常的業(yè)務(wù)調(diào)節(jié)或誤操作等)以及具體的攻擊類型(如重放攻擊、命令注入攻擊等).

6 總 結(jié)

本文聚焦ICS中特有的序列攻擊,針對傳統(tǒng)信息流檢測算法易受虛假數(shù)據(jù)影響導致準確性下降的問題,創(chuàng)新性地引入設(shè)備狀態(tài)流數(shù)據(jù),形成信息流和狀態(tài)流融合的ICS異常檢測算法.該算法基于PST的思想,結(jié)合設(shè)備狀態(tài)流數(shù)據(jù),實現(xiàn)對操作序列的次序、時序以及操作間隔全流程的異常行為檢測.實驗結(jié)果表明:本算法可較好地檢測出序列攻擊以及部分的設(shè)備異常.

猜你喜歡
設(shè)備檢測信息
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
小波變換在PCB缺陷檢測中的應(yīng)用
500kV輸變電設(shè)備運行維護探討
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
原來他們都是可穿戴設(shè)備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 青青网在线国产| 香港一级毛片免费看| 久久午夜影院| 欧美一区二区三区不卡免费| 91精品免费久久久| 91精品久久久久久无码人妻| 蜜芽一区二区国产精品| 天天综合天天综合| 日本五区在线不卡精品| 九九香蕉视频| 国产午夜福利亚洲第一| 久久久久中文字幕精品视频| 日本免费福利视频| 国产欧美视频一区二区三区| 久久精品无码专区免费| 亚洲一级毛片在线观播放| 亚洲天堂2014| 国产精品私拍99pans大尺度| 99热最新网址| 欧美日韩在线成人| 国产成人夜色91| 国产高清无码麻豆精品| 亚洲成人免费在线| 91成人在线免费观看| 97人妻精品专区久久久久| 亚洲免费福利视频| 亚洲性视频网站| 国产成年女人特黄特色大片免费| 亚洲视频黄| 99久久精品久久久久久婷婷| 亚洲av日韩av制服丝袜| 欧美午夜在线观看| 波多野结衣AV无码久久一区| 久久人人爽人人爽人人片aV东京热| 午夜毛片福利| 91久久青青草原精品国产| 日韩免费视频播播| 亚洲91在线精品| 一级做a爰片久久免费| 无码AV日韩一二三区| 尤物国产在线| 在线免费观看a视频| 国产成人精品日本亚洲| 国产成人a毛片在线| 亚洲最大在线观看| 亚洲无码高清视频在线观看| 亚洲美女高潮久久久久久久| 在线欧美一区| 国产精品无码作爱| 小蝌蚪亚洲精品国产| 亚洲国产精品日韩av专区| 性激烈欧美三级在线播放| 国产日产欧美精品| 福利一区三区| 久久久久免费精品国产| 伊人成人在线视频| 亚洲欧美一区在线| 无遮挡一级毛片呦女视频| 成人国产精品网站在线看| 一级毛片免费观看久| 老司机精品99在线播放| 亚洲久悠悠色悠在线播放| 2021国产乱人伦在线播放| jijzzizz老师出水喷水喷出| 国产区精品高清在线观看| 精品午夜国产福利观看| 青青操视频在线| 在线不卡免费视频| 国产乱人免费视频| 国产性精品| 午夜国产小视频| 性欧美精品xxxx| 日韩 欧美 国产 精品 综合| 色综合久久综合网| 欧美不卡视频在线| 免费在线a视频| 四虎永久免费地址| 亚洲天堂网在线观看视频| 国产不卡在线看| 久久伊人操| 久久久久国色AV免费观看性色| 精品国产Av电影无码久久久|