覃澤文,趙國新,劉 昱,張 強
(北京石油化工學(xué)院信息工程學(xué)院, 北京 102617)
工業(yè)控制系統(tǒng)(ICS)作為國家基礎(chǔ)設(shè)施的核心控制設(shè)備,其安全關(guān)系國計民生。工控系統(tǒng)態(tài)勢感知旨在對ICS安全要素進行提取,分析,并對其未來趨勢進行預(yù)測[1]。態(tài)勢感知的概念最早由美國空軍提出,用于提升空戰(zhàn)能力,分析空戰(zhàn)環(huán)境信息、快速判斷當(dāng)前及未來形勢。Endsley[2]把態(tài)勢感知總結(jié)為態(tài)勢提取,態(tài)勢理解,態(tài)勢預(yù)測等三個部分。BASS[3]首次提出了網(wǎng)絡(luò)安全態(tài)勢感知(NSSA)的概念,并提出了應(yīng)用多傳感器數(shù)據(jù)融合建立網(wǎng)絡(luò)空間態(tài)勢感知的框架。張勇[4]等提出了提出一種基于Markov博弈分析的網(wǎng)絡(luò)安全態(tài)勢感知方法,通過融合多種傳感器的安全數(shù)據(jù),分析網(wǎng)絡(luò)安全的動態(tài)影響,并給出最佳方案。謝麗霞[5]等為了解決態(tài)勢要素與評估結(jié)果之間的不確定性及模糊性問題,提出了一種基于RBF(radical basis function)神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)安全態(tài)勢預(yù)測方法,通過建立RBF預(yù)測模型找出網(wǎng)絡(luò)態(tài)勢值的非線性映射關(guān)系,并使用自適應(yīng)遺傳算法對網(wǎng)絡(luò)參數(shù)進行優(yōu)化,實現(xiàn)對網(wǎng)絡(luò)安全的態(tài)勢預(yù)測。
隨著工控行業(yè)的發(fā)展,工控系統(tǒng)與以太網(wǎng)的聯(lián)系更加緊密,工控系統(tǒng)網(wǎng)絡(luò)更容易受到外界的攻擊,工控系統(tǒng)網(wǎng)絡(luò)信息安全面臨著巨大挑戰(zhàn),對此,國內(nèi)外學(xué)者結(jié)合工控系統(tǒng)的特點,對其網(wǎng)絡(luò)安全做出了許多嘗試。Man[6]等提出了一種基于貝葉斯推理的態(tài)勢評估分析模型,該模型是對核電廠的運行人員態(tài)勢評估的仿真,用來解決運行的誤差問題。陸耿虹[7]等通過改進支持向量機(C-SVC),并使用決策融合算法建立了態(tài)勢感知模型,該模型可以識別出當(dāng)前系統(tǒng)遭受的攻擊類型。Hoffman[8]等經(jīng)過對震網(wǎng)病毒的攻擊案例進行分析后,提出其六個攻擊階段的態(tài)勢鏈,通過分析各節(jié)點的監(jiān)測數(shù)據(jù)來判斷系統(tǒng)的攻擊階段,進而預(yù)測下一次攻擊階段,提前對系統(tǒng)采取防護措施。
對于工控系統(tǒng)現(xiàn)場層數(shù)據(jù),敖建松[9]等通過使用模糊C均值算法(FCM)對系統(tǒng)正常狀態(tài)建模,再通過對比實時檢測數(shù)據(jù),利用時間序列模型(ARIMA)對系統(tǒng)未來態(tài)勢進行預(yù)測;尚文利[10]等使用去噪自編碼器(DAE)對原始數(shù)據(jù)進行降維,而后通過數(shù)據(jù)分析,計算出系統(tǒng)當(dāng)前態(tài)勢,在保證準(zhǔn)確率的同時有效提高了態(tài)勢理解的運行速度。
雖然在態(tài)勢感知領(lǐng)域已經(jīng)有許多重要成果被國內(nèi)外學(xué)者提出,但是工業(yè)控制系統(tǒng)網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)有許多不同之處,因此傳統(tǒng)的網(wǎng)絡(luò)安全態(tài)勢感知模型無法應(yīng)用在工控系統(tǒng)網(wǎng)絡(luò)。而且對于工控系統(tǒng)網(wǎng)絡(luò)的攻擊大多都體現(xiàn)在工控系統(tǒng)的現(xiàn)場控制層,所以對工控系統(tǒng)現(xiàn)場層的安全狀況分析很有必要?,F(xiàn)場控制層數(shù)據(jù)具有數(shù)據(jù)維度高,數(shù)據(jù)量大且各數(shù)據(jù)之間多為非線性關(guān)系的特點,輸入數(shù)據(jù)維度過高會使模型搭建的復(fù)雜性提高,模型訓(xùn)練速度變慢,最終影響運算效率。在計算系統(tǒng)當(dāng)前態(tài)勢之前對原始數(shù)據(jù)進行降維,既可以降低過擬合率,也可以加快模型整體的計算速度。
因此本文提出使用稀疏自編碼器(SAE)對數(shù)據(jù)進行提煉,過濾冗余信息,后續(xù)利用K-means聚類算法得到系統(tǒng)正常狀態(tài)空間,再通過對比實時檢測數(shù)據(jù),計算其偏離程度,得到系統(tǒng)安全態(tài)勢。
自編碼器是一種無監(jiān)督的學(xué)習(xí)算法,通過無標(biāo)簽的自我監(jiān)督對數(shù)據(jù)進行特征提取[11]。包括一個編碼器(encoder)和一個解碼器(decoder),編碼器對無標(biāo)簽原始數(shù)據(jù)X[x1,x2,…,xn]進行壓縮變換得到W[w1,w2,…,wm],如果m小于n,則實現(xiàn)了對數(shù)據(jù)的降維。壓縮后的數(shù)據(jù)再經(jīng)過解碼器重構(gòu)得到Y(jié)[y1,y2,…,yn],最終目的是使輸出Y最大限度逼近輸入X。
編碼器由輸入層,隱含層和輸出層三個部分組成,其中輸入層到隱含層稱為編碼過程,隱含層到輸出層稱為解碼過程,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1。
圖1 自編碼網(wǎng)絡(luò)結(jié)構(gòu)
自編碼器編碼和解碼的過程如下方法
W=f1(g1X+b1)
(1)
Y=f2(g2W+b2)
(2)
其中f1表示隱藏層的激活函數(shù),可以選擇ReLu、Sigmoid、Tanh等,本文選用的是Sig-moid函數(shù)。g1,g2分別為輸入層到隱含層,隱含層到輸出層的權(quán)重矩陣,在訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程中,為了減少模型中需要訓(xùn)練的參數(shù),通常使g1等于g2。b1,b2則為各自的偏差。模型參數(shù)的調(diào)整由最小化誤差函數(shù)實現(xiàn),方法如下
arg min[cost(X,)Y]=0
(3)
訓(xùn)練過程中經(jīng)過不斷優(yōu)化參數(shù)g1,b1和g2, b2,使誤差函數(shù)達到最小值,得到最終的模型參數(shù)。
稀疏自編碼器[12]是在自動編碼器的誤差函數(shù)中增加稀疏懲罰約束條件,當(dāng)隱含層神經(jīng)元數(shù)目過多時,加入稀疏懲罰可以使模型更好地保留特征。Fang[13]等使用稀疏自編碼器對無人機地形圖像進行降維,而后使用遺傳算法和支持向量機完成了對圖像的分類。
K均值聚類算法(k-means clustering algorithm)是一種常用的經(jīng)典算法,其應(yīng)用最為廣泛,相較于其它聚類算法更為簡單,高效[14]。為了節(jié)省時間成本,本文選用K-means算法搭建模型,在對數(shù)據(jù)集使用稀疏自編碼器進行降維處理后,使用K-means算法可以達到預(yù)期效果。
K-means算法的原理比較簡單,該算法基于各樣本之間的歐式距離聚成k個類(k為正整數(shù)),類內(nèi)樣本具有高相似度,類外樣本具有低相似度。算法需要人為選擇最大迭代次數(shù)和k的值,使其聚類誤差達到最小,具體步驟可總結(jié)如下:
1)隨機選擇k個對象作為初始聚類中心;
2)對所有數(shù)據(jù)集C中的對象,計算它們與聚類中心的歐式距離,將其歸類為k個聚類中心中距離最近的類;
3)取每個類中所有對象的均值,將其作為新的聚類中心;
4)重復(fù)步驟2和步驟3,直到達到最大迭代次數(shù)。
工控系統(tǒng)態(tài)勢感知模型主要分為態(tài)勢提取,態(tài)勢理解,態(tài)勢感知三個階段,其中每個階段的輸入都為上一階段的輸出。態(tài)勢理解對各種數(shù)據(jù)進行分類等處理融合,再將融合的信息進行綜合分析,得出系統(tǒng)整體的安全狀況,這一步是實現(xiàn)態(tài)勢感知的基礎(chǔ)。
基于稀疏自編碼器的工控系統(tǒng)態(tài)勢理解算法流程圖如圖2。
圖2 基于稀疏自編碼器的工控系統(tǒng)態(tài)勢理解算法流程圖
態(tài)勢理解的算法具體步驟可總結(jié)如下:
1)用系統(tǒng)正常狀態(tài)下運行產(chǎn)生的數(shù)據(jù)對SAE進行訓(xùn)練,用訓(xùn)練后的模型對數(shù)據(jù)進行降維處理,過濾冗余信息,保留主要特征。保留模型訓(xùn)練后的各個參數(shù);
2)對變換后的數(shù)據(jù)進行k-means聚類,得到k個類,對應(yīng)k個正常工況;
3)計算每個類中所有點到其聚類中心的距離,取出最大值,記為D,D={d1,d2,..dk}。
4)對實時檢測到的數(shù)據(jù)使用步驟1保留的SAE模型進行相同的降維處理,得到D_t,D_t={ d_t1,d_t2,..d_tk};
5)計算d′=D_t-D,如果d>0,則記該時刻系統(tǒng)偏離正常工況的程度ε=min(d′),否則記ε=0。
6)以長度為L的滑動窗口,對ε進行時間維度的融合,求出該時刻的方差εs,εs表示了系統(tǒng)在該時刻的穩(wěn)定性。
田納西伊斯曼過程是美國Eastman化學(xué)公司開發(fā)的工業(yè)過程。該過程基于真實化工過程仿真得出,可以代表大多數(shù)化工流程,至今已有許多學(xué)者利用該過程進行故障診斷,入侵檢測等研究。
TEP中含有4種氣態(tài)反應(yīng)物,分別為A、C、D、和E(四種反應(yīng)物中均含有少數(shù)惰性氣體B),經(jīng)過一系列反應(yīng)后,得到2種液態(tài)產(chǎn)物,分別為G和H,并伴有副產(chǎn)品F。整個過程主要由五個部分組成:反應(yīng)器、冷凝器、壓縮機、分離器和汽提塔,概括了化工生產(chǎn)過程的全部特征“三傳一反”。
TEP共有52個觀測變量,其中包括41個測量變量和11個控制變量。TE模型數(shù)據(jù)集由訓(xùn)練集和測試集構(gòu)成,包括正常狀態(tài)和21種不同故障。每個樣本都連續(xù)運行了48小時,得到960個測試數(shù)據(jù)。帶有故障的樣本在第8個小時引入,即前160個測試數(shù)據(jù)為正常狀態(tài)下運行得到的數(shù)據(jù),后面數(shù)據(jù)為異常狀態(tài)下運行得到的數(shù)據(jù)。
本文取正常樣本共960個點為訓(xùn)練集,對稀疏自編碼器進行訓(xùn)練。取異常樣本1,2組合為測試集1,異常樣本6,13組合為測試集2。在測試集中正常狀態(tài)運行的數(shù)據(jù)區(qū)間為:[1,160]與[961,1120],其它數(shù)據(jù)區(qū)間為異常狀態(tài)下運行得到的數(shù)據(jù)。
本文所用數(shù)據(jù)集共52個維度,每個維度都表示一個工控系統(tǒng)現(xiàn)場層傳感器檢測的數(shù)據(jù),有許多維度之間的數(shù)據(jù)都呈非線性關(guān)系,使用SAE對數(shù)據(jù)進行降維可以有效提取各數(shù)據(jù)之間的特征關(guān)系,經(jīng)過試驗后,選擇將實驗數(shù)據(jù)降為42維。
在對數(shù)據(jù)進行K-means聚類時,為了確定k的值,進行了多次試驗,最后發(fā)現(xiàn)當(dāng)k=6時效果最好。在實際的化工流程中,系統(tǒng)工作的情況應(yīng)該是一個固定值,由工程師決定,并且k的取值與不同的工業(yè)流程有關(guān)。
圖3和圖4為本文提出的態(tài)勢理解模型在測試集中的實驗結(jié)果,在總體上,模型對系統(tǒng)異常情況做出了反應(yīng),在系統(tǒng)正常運行時間段內(nèi),ε與εs幾乎都為0,而在系統(tǒng)異常運行時段內(nèi),ε與εs幾乎都大于0。
圖3 測試集1中實驗結(jié)果
圖4 測試集2中實驗結(jié)果
表1和表2為部分時刻對應(yīng)的檢測結(jié)果,可以看出本文所提出的模型在面對不同的異常情況時,仍可以有效表達系統(tǒng)態(tài)勢。如在表1中,在t=0和t=965的時刻,系統(tǒng)處于正常運行狀態(tài),態(tài)勢與方差都為0;而在t=180與t=1350時,系統(tǒng)處于異常運行狀態(tài),該時刻態(tài)勢與方差均大于0, 且ε的大小體現(xiàn)了系統(tǒng)的偏離正常狀態(tài)的程度,即在t=180的時刻,系統(tǒng)偏離程度小于t=1350的時刻;而εs的大小則是體現(xiàn)了系統(tǒng)的穩(wěn)定性,即在t=180的時刻,系統(tǒng)的穩(wěn)定性比t=1350的時刻穩(wěn)定性更差。系統(tǒng)的安全性主要由系統(tǒng)當(dāng)前態(tài)勢決定,所以系統(tǒng)在t=180時刻的安全性高于t=1350時刻。
表1 測試集1部分時刻對應(yīng)結(jié)果
表2 測試集2部分時刻對應(yīng)結(jié)果
表3為本文提出的基于SAE的態(tài)勢理解算法與普通態(tài)勢算法的對比,由表可知,使用稀疏自編碼器對原始數(shù)據(jù)降維,降低了時間和空間復(fù)雜度,同時消除了數(shù)據(jù)中的噪聲,使數(shù)據(jù)的特征更容易表示出來,而后使用聚類算法中速度較快的K-means算法,進一步降低了算法的運行時間,使該算法在運行時間和準(zhǔn)確度上都優(yōu)于普通的態(tài)勢理解算法。
表3 算法運行結(jié)果對比
本文提出一種基于稀疏自編碼器的工控系統(tǒng)態(tài)勢理解算法,基于稀疏自編碼器模型,通過對自編碼器加入正則限制,抑制神經(jīng)元,使其能夠更好地表達樣本特征,后續(xù)搭建了基于K-means聚類的態(tài)勢理解模型,使態(tài)勢理解的速度更快,精度更高。本實驗應(yīng)用TEP數(shù)據(jù)集進行驗證,實驗表明該方法有效提高了運行速度,增強了模型的精度,能夠有效表明系統(tǒng)當(dāng)前態(tài)勢。下一步將針對此算法的后續(xù)進行相應(yīng)態(tài)勢預(yù)測算法的研究。