張利隆,馬 垚,陳永樂
(太原理工大學 信息與計算機學院,山西 太原 030024)
在工業化和信息化深度融合的趨勢下,越來越多的工控網絡與外界互聯網相連。這些在提高設備生產效率的同時,也為工業控制系統(industrial control system,ICS)的信息安全帶來了極大的威脅[1]。比如:2010年的“震網”病毒[2]對伊朗的核工業設施造成嚴重破壞;2016年的Mirai病毒事件[3]造成了美國大面積斷網;2017年的“永恒之藍”病毒[4]事件的影響涉及教育、金融、能源和醫療等眾多行業。因此,提前發現入侵行為,并進行防御以阻止設備被攻擊破壞是至關重要的。
入侵檢測作為一種積極主動的安全防護技術,在不影響網絡性能的情況下對網絡進行監測。目前,入侵檢測主要分為2類:誤用檢測和異常檢測[5]。誤用檢測技術無法識別新的攻擊行為。而異常檢測技術是利用正常行為建立模型,對新的網絡行為進行檢測。該檢測技術對操作系統的依賴性小,可以檢測出新的入侵行為。而且工控系統多處于穩定運行的情況,正常數據量較大。因此,異常檢測方法被廣泛應用于工控入侵檢測系統。由于工控系統多產生高維度、非線性特征的數據,普通的機器學習方法并不能檢測出異常數據。
通過研究發現,高斯過程[6]與神經網絡、支持向量機相比,該方法具有易實現、超參數自適應獲取、非參數推斷靈活以及輸出具有概率意義等優點。因此,本文提出LE-CGWO-GP異常檢測方法。應用密西西比州立大學關鍵基礎設施保護中心提供的已進行數值化處理的工控數據集進行仿真實驗,結果顯示本文提出的算法模型具有較高的檢測準確率以及較低的漏報率與誤報率。
實驗采用密西西比州立大學關鍵基礎設施保護中心提出的用于工控入侵檢測的天然氣管道控制系統數據集[7]。該數據集是通過模擬攻擊基于Modbus/TCP協議通信的工控系統所采集的。
Modbus/TCP是Modbus系列通信協議的派生協議,在TCP/IP上進行Modbus報文傳輸,協議的用途是為PLC模塊、I/O模塊提供通信服務,廣泛應用于工控領域。Modbus/TCP采用典型的主從通信結構[8]。每次通信都是客戶端先發送指令,可以是廣播,或是向特定服務端的單播,服務端響應指令,并按要求應答,或者報告異常。當客戶端不發送請求時,服務端不會發出數據,服務端和服務端之間不能直接通信。Modbus/TCP報文格式如圖1所示,其由MBAP(Modbus application protocol)報文頭、功能碼和數據組成[9]。其中,事務處理標識表示請求/響應事務處理識別碼,一般每次通信之后就要加以區別不同的通信數據報文。協議標識符為0x0000表示Modbus/TCP協議。長度表示接下來的數據長度,單位為字節。單元標識符表示設備地址,串行鏈路或其它總線上連接的遠程從站的識別碼。功能碼是客戶端向服務端指示進行何種操作的標志字段,主要分為有效功能碼、異常功能碼和錯誤功能碼。數據部分由客戶機根據具體的應用和功能碼的不同進行設置并由服務端進行相應的回答。
Modbus/TCP協議由于其本身具有開放性、簡單性和易用性的優點,被廣泛應用于工控設備,并且成為了行業內的標準協議。但是,Modbus/TCP協議也存在一些問題,首先,其本身存在缺乏認證、授權、加密等安全防護機制和功能碼濫用問題[10]。其次,該協議是基于TCP協議的擴展,因此,TCP協議存在的安全協議問題也會影響Modbus/TCP協議,比如DDoS攻擊、IP欺騙等。最后,在實現具體的工控系統時,開發者并不具備安全開發知識,會造成緩沖區溢出、非法操作等問題。因此,需要建立一套完整的針對Modbus/TCP通信的專用異常行為檢測機制。而數據預處理是檢測準確性的重要前提,其主要包括兩個部分:特征選擇和特征提取[11]。

圖1 Modbus/TCP報文格式
工控系統數據有維度高、冗余數據多的特點。因此,在對特征屬性進行選擇時,需要先進行數據的清理。劉珍等[12]對流量特征進行了研究,分析了每種特征的適用環境。在進行特征選擇的過程中,選取的特征越多,對于數據包的覆蓋也就越全面。然而特征過多會造成工控入侵檢測算法計算緩慢。因此,選取合適的特征是提高算法性能的前提條件。選出來的特征盡可能遵循特征之間關聯性小并且可以描述網絡特征的要求,對原始數據進行簡化。為了達到精確區分流量特征的目的。通過分析,我們把流量的特征分為3類:基于時間序列、數據包頭、數據內容。按照類別選出具有代表性的特征值,如表1所示,部分常見的用來描述工控網絡行為的特征。

表1 工控系統流量特征值
工控系統數據特征經過選擇后依然是高維數據集,在高維數據情形下會出現數據樣本稀疏,距離計算困難的問題。因此,需要對其進行降維。數據降維的方法主要包括兩類:線性降維和非線性降維。主成分分析(principal component analysis,PCA)是最常用的線性降維算法,在數據壓縮、消除冗余等領域有著廣泛的使用。然而,PCA只能處理線性數據的降維,并且它僅是篩選方差最大的特征,去除特征之間的線性相關性,對于線性不可分的數據降維效果差。而拉普拉斯特征映射[13](Laplacian Eigenmaps,LE)是一種非線性的降維方法,利用微分幾何中的Laplacian-Beltrami算子獲得相應的空間嵌入函數表示,以完成高維數據到低維空間的投影。該算法核心思想是在原高維數據空間中非常接近的點映射到低維空間中后也非常接近。相比于流形學習的其它幾種典型算法,LE含有更多的結構信息,更能發現數據內在規律,尤其對于不均勻的數據也能找出其中在低維的流形結構,具有良好的魯棒性。根據工控系統數據的特點,本文在特征選擇的基礎上,采用拉普拉斯特征映射算法對數據特征進行提取實現數據的降維。其原理如下:
首先是構建加權無向圖G:給定數據集X={x1,x2,…,xn},一般采用k近鄰方法或ε鄰域方法構造無向圖G。k近鄰方法得到的圖具有對稱、連通、樣本近鄰分布均勻等優點。而利用ε鄰域方法時會造成數據集密集區域的樣本近鄰多,數據集稀疏區域的樣本近鄰少。因此,本文采用k近鄰方法構造無向圖,令Nk(xi)表示樣本xi的k近鄰集,如式(1)所示
(1)
式中:dk(xi)表示xi的第k距離。
其次是確定邊的權重w:對于權重的確定通常也有兩種方法,一是采用熱核函數法。二是采用0-1權值方法。鑒于第二種方法可以減少參數的選擇,本文選擇了后者。0-1權值方法如式(2)所示
(2)
最后是計算樣本點的低維嵌入坐標:首先計算拉普拉斯矩陣的特征值及特征向量,設高維數據X的低維嵌入映射為Y={y1,y2,…,yn},LE的目標是使得構造過程中損失函數最小,如式(3)所示
(3)
損失函數最小保證了高維中的鄰近數據點在低維中也鄰近。對拉普拉斯無向圖進行廣義特征值分解,如果高維數據集降至m維空間,則降維后的映射結果Y由最小的m個非零特征值對應的向量組成,則任一樣本xi∈X對應的低維坐標可以表示為yi={y1,y2,…,ym}。
灰狼優化算法(GWO)[14]是一種群體智能尋優算法,具有很少的參數,并且在初始搜索中不需要派生信息。該算法以29個著名的測試函數為基準,并通過與其它優化算法進行對比顯示GWO算法能夠提供非常有競爭力的結果。GWO算法具有全局搜索能力強、收斂速度快而且參數少易實現的特點,此外,它簡單、易用、靈活、可擴展,并且具有在搜索過程中在探索與開發之間達到適當平衡的特殊功能,從而帶來了良好的融合。因此,被廣泛應用于車間調度、參數優化等領域。
GWO算法借鑒了灰狼種群的捕食機制和等級制度。灰狼屬于群居性動物,一般種群數量為5只至12只。嚴格的等級制度使得灰狼個體有著明確的分工。如圖2所示狼群的結構。

圖2 狼群等級結構
金字塔的第一層是頭狼,稱為α,負責領導整個群體,對捕獵行為、棲息地等具有決定權。第二層稱為β,協助頭狼做出決策,是頭狼最好的接替者。第三層稱為δ,負責放哨、偵察等任務;最后一層為ω,主要負責種群內部的平衡。傳統劃分層次的方法直接使用準確率作為適應度值進行劃分,并沒有考慮選擇特征的數量。本文通過研究,采用適應度函數作為層次劃分標準,如式(4)所示
(4)
式中:F為灰狼的適應度值,Acc為分類準確率,n為特征總數,λ為權重,通常取0.01。
GWO算法數學模型模擬灰狼群的狩獵行為,假設灰狼種群規模為n,定義種群為X={X1,X2,…,Xn},整個狼群被分為4組:α、β、δ、ω。α是適應度最優的灰狼,β是次優的灰狼,δ是第三優的灰狼,剩余的是ω,前三組指導最后一組向目標搜索。最后一組圍繞前三組更新位置。
在狩獵過程中首先需要對獵物進行包圍,則灰狼與獵物之間的距離如式(5)所示
Dp=μ·Xp(t)-X(t)
(5)
式中:t為迭代次數,Xp(t)為第t代獵物的位置(全局最優解),X(t)為第t代灰狼個體的位置,常數μ為擺動因子,如式(6)所示
μ=2·r1,r1∈(0,1)
(6)
式中:r1為隨機變量。
根據式(7)更新灰狼個體的位置
X(t+1)=Xp(t)-A·D
(7)
式中:A為收斂因子,如式(8)所示
A=2·b·r2-b,r2∈(0,1)
(8)
式中:r2為隨機變量,b為隨迭代次數增加值從2線性降到0。
當灰狼包圍獵物后,α帶領β和δ指導狼群追捕獵物。由于對獵物的位置(最優解)并不清楚,因此,模擬灰狼的狩獵行為,利用α、β和δ三者的位置不斷逼近獵物的位置。α、β和δ位置的更新公式如下
(9)
(10)
(11)
其中,Dα、Dβ、Dδ分別表示α、β、δ狼與其它狼群個體間的距離,Xp(t+1)表示獵物的位置(最優解)。
盡管灰狼優化算法的性能優于其它算法,但也存在著后期易陷入局部最優的問題。因此,許多學者也提出了改進的方法。比如近年來,采用柯西算子改進的鯨魚優化算法[15]和果蠅算法[16]性能明顯提高,因此,本文也采用柯西變異算子以提高灰狼算法的全局搜索能力,加大尋優范圍。
柯西分布是一個數學期望不存在的連續分布函數。具有原點處概率密度大、分布緊湊,而兩端密度小、分布較長的特點。標準柯西分布的概率密度函數如式(12)所示
(12)
標準柯西分布從峰值向兩側下降相對比較平緩,有很長的尾巴,灰狼優化算法將會有更廣的變異范圍,較容易跳出局部最優;而且柯西分布的峰值相對較小,這將會減少相鄰區間的搜索,提高灰狼算法在搜索全局最優值上的性能。在原有灰狼個體的狀態上引入服從柯西分布的隨機向量,其更新如式(13)所示
x′=x+η·Cauchy(0,1)
(13)
式中:x′為初始位置x的更新位置;Cauchy(0,1)是t為1時的標準柯西隨機分布;參數η是各維變異權重的平均值。
基于柯西變異的灰狼優化算法的步驟為:
步驟1執行原基本灰狼優化算法;
步驟2進入循環迭代后,當灰狼群體中相鄰5次迭代的沒有差別的最優值都作為歷史最優值被記錄下來時,我們認為算法停滯,則進行柯西變異;
步驟3變異操作:先將最優灰狼個體的個數復制到原先種群規模,然后進行柯西變異,更新群體的位置,進行二次尋優,如式(14)所示
(14)
式中:x0,y0表示個體的初始位置;x′0,y′0表示添加柯西擾動后的位置。
高斯過程是一種非參數非線性的貝葉斯預測模型,適用于處理具有高維度、小樣本、非線性特征的數據集。而且該模型無需指定輸入數據集的大小和參數數量,對輸入數據集具有良好的適應性。
高斯過程是將多元高斯分布擴展為無限數量的隨機變量。它可以看作是隨機函數的分布,具體高斯過程如圖3所示。

圖3 高斯過程
其中,X=[x1,x2,…,xn]T為訓練數據的輸入變量,而Y=[y1,y2,…,yn]T為訓練數據的輸出變量,f(x)服從高斯分布,為了方便計算,通常會對數據進行預處理,使其均值為零,則高斯先驗分布的輸出觀測值如式(15)所示
(15)

協方差函數是決定高斯過程先驗形狀和后驗形狀的關鍵組成部分。通常采用平方指數協方差函數[17],其公式如式(16)所示
(16)



圖4 CGWO-GP模型
密西西比州立大學收集的天然氣管道控制系統數據集[7]包含1類正常數據和7類不同的攻擊數據。數據描述以及訓練集和測試集分布見表2。
由于從工控系統網絡提取的樣本數據及其特征值為不同的度量單位,需要對數據進行歸一化處理以消除特征之間的差異,實驗中采用Minmax方法,如式(17)所示
(17)
式中:xmin和xmax分別表示樣本數據最小值和最大值。將數據映射到[0,1]之間。
為避免數據分布不均勻,本文均勻選擇5000個數據樣本作為訓練集,選擇2400個數據作為測試集,并且按照測試集中攻擊類型的不同進行5組測試,對訓練模型進行評價。
對于檢測模型性能的衡量,通常采用3個指標:準確率(Acc)、漏報率(FNR)、誤報率(FPR),而對于特征降維的評價方式采用F1值(F1-score)進行評價。公式如下
(18)
(19)
(20)
其中,TP、TN、FP、FN分別表示正確分類的正常樣本、正確分類的異常樣本、錯誤分類的正常樣本、錯誤分類的異常樣本。
天然氣管道數據集的每條記錄包含26個流量特征。由于特征維數過高,本文進行數據降維。如圖5所示為LE、KPCA、PCA方法的降維結果。本文選取測試集1作為測試用例。如圖所示,隨著特征維度的增加,使用LE降維方法的效果最優,其F1值為96.35%,而且所需要的特征量最少,為9個。因此本文采用降維效果更好的LE降維方法對工控數據進行降維處理。
設灰狼種群規模為30,最大迭代次數為200。如圖6所示是適應度值隨迭代次數的變化情況。迭代到第49次達到最佳適應度,其值為94.9%。而且最佳適應度值17代、第35代均有提高,說明該算法可以有效避免狼群陷入局部最優,具有跳出局部最優的能力。
如圖7顯示了測試集1數據的真實攻擊類別與預測類別的對比,其準確率達到98.75%。通過分析,由于同類型 攻擊數據相似性比較大,預測類別錯誤的部分多發生于同類型攻擊之間。比如:標簽1、2同屬于響應注入攻擊,標簽3、4、5、7同屬于命令注入攻擊,標簽6屬于拒絕服務攻擊。

表2 數據描述及訓練集測試集數量

圖5 特征降維結果對比

圖6 CGWO-GP算法收斂曲線

圖7 測試集1分類結果
為了驗證本文提出的CGWO-GP算法在運行時間上的優勢,與未經過優化的GP算法以及最新提出的方法進行了對比,比如MIKPSO-SVM[19]、ALO-SVM[20]。MIKPSO-SVM算法是陳冬青等融合了多信息理論,著眼于KPSO算法對粒子位置信息進行預測時僅使用單個信息的局限性,提出了改進的MIKPSO算法,提升了算法的優化精度和全局優化性能。ALO-SVM算法是陳卓等提出一種在PCA降維的基礎上,基于蟻獅優化算法(the ant lion optimizer,ALO)和支持向量機(support vector machine,SVM)相結合的入侵檢測方法,該算法的檢測速度有顯著提高。如圖8所示,訓練集從200個數據量開始,依次遞增200,最終達到5000。當訓練集達到5000時,CGWO-GP算法的運行時間為55.32 s,與GP算法時間接近,明顯優于MIKPSO-SVM和ALO-SVM。

圖8 訓練時間對比
實驗采用了5組測試集進行測試,直觀比較了所提出的CGWO算法與其它檢測算法的檢測能力。在圖9中,方框表示四分位間距(inter quartile range,IQR),方框中的條形表示準確率、漏報率和誤報率中值,小菱形點表示數據中的異常點。如圖9所示,CGWO算法的準確率明顯高于其它算法,其準確率的均值為98.96%。而且漏報率和誤報率均低于其它算法,其漏報率均值0.44%,誤報率均值為0.13%。
本文提出了一種基于LE方法降維和CGWO-GP的工業控制系統入侵檢測模型,應用密西西比州立大學提供的標準數據集進行驗證。針對工控數據冗余多、高維度和非線性的特點,采用LE方法處理數據,將原始工控數據集的26個屬性約簡為9個,并通過實驗驗證LE方法相比于PCA和KPCA具有更好的屬性約簡效果;在此基礎上,為了提高GP算法的檢測準確度,運用融合柯西變異的灰狼優化算法(CGWO)對GP進行優化。通過設計對比實驗對各類檢測模型進行對比,充分說明了LE-CGWO-GP模型具有運行速度快、檢測準確率高、漏報率和誤報率低的優勢。接下來的工作是進一步優化分類方法,實現同類型攻擊的細粒度識別。

圖9 不同檢測方法的檢測性能