摘要:工業(yè)控制系統(tǒng)是社會運行和國家安全的重要基礎(chǔ)。為提高工業(yè)控制系統(tǒng)的入侵檢測能力,設(shè)計一個基于深度神經(jīng)網(wǎng)絡(luò)的工業(yè)入侵檢測方案。采用與真實世界水處理廠非常相似的六級水處理模型SWaT,通過訓(xùn)練長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò),對經(jīng)過PCA降維的SWaT預(yù)處理數(shù)據(jù)進(jìn)行檢測和鑒別。結(jié)果顯示,檢測方案在測試集的表現(xiàn)上優(yōu)于過去的OCSVM、IF、Matrix Profile這3種檢測方案,并且網(wǎng)絡(luò)訓(xùn)練速度更快,檢測需要的上下文環(huán)境更少,具有一定的實用價值。
引言
工業(yè)控制系統(tǒng)(Industrial Control System)在運輸、供電以及水處理等領(lǐng)域應(yīng)用廣泛,是工業(yè)基礎(chǔ)設(shè)施的核心組成部分,也是國民經(jīng)濟、社會運行和國家安全的重要基礎(chǔ)。自澳大利亞Maroochy廢水系統(tǒng)攻擊、Stuxnet蠕蟲攻擊以及德國鋼鐵廠之后,工業(yè)控制系統(tǒng)的安全提升到一個新的高度,受到人們越來越多的重視。
大多數(shù)入侵檢測系統(tǒng)(Intrusion Detection System,IDS)采用CIDF通用模型。CIDF模型將IDS分為4個相互關(guān)聯(lián)的部分——事件生成器(Event Generators)、事件分析器(Event Analyzers)、響應(yīng)單元(Response Units)和事件記錄器(Event Recorder)。EG負(fù)責(zé)采集和預(yù)處理原始數(shù)據(jù),包括ICS中的數(shù)據(jù)報文、日志以及傳感器數(shù)據(jù)等,格式化為事件并傳遞給其他3個模塊。EA是入侵檢測系統(tǒng)的核心。EA實現(xiàn)入侵檢測算法,分析傳遞給它的事件行為,判斷事件是否構(gòu)成異?;蛉肭中袨?,并將判斷結(jié)果傳遞到RU。RU根據(jù)EA的判斷結(jié)果做出響應(yīng),包括發(fā)出切斷電源、停止數(shù)據(jù)傳輸命令或改變訪問權(quán)限。ER將入侵檢測系統(tǒng)的工作流程記錄成日志,以供安全人員查看。具體模型如圖1所示。
圖1 CIDF通用模型
傳統(tǒng)的IDS通常沒有考慮ICS特有的通信協(xié)議,如DNP3和Modbus,且ICS的異常檢測不能完全依賴網(wǎng)絡(luò)流量,還需要查看與物理過程控制相關(guān)的傳感器或執(zhí)行器信息,增加了數(shù)據(jù)特征數(shù)目和各項數(shù)據(jù)關(guān)聯(lián)性的復(fù)雜程度。傳感器傳遞的數(shù)據(jù)很有可能受到噪聲的影響,導(dǎo)致異常檢測設(shè)備產(chǎn)生高誤報率和低攻擊檢測率。
國內(nèi)外已有大量研究人員進(jìn)行了大量研究,但大多數(shù)方法高度依賴預(yù)定義的模型和特征來檢測異常行為,且現(xiàn)有的入侵檢測方法大多針對特定的協(xié)議和系統(tǒng)定制,缺少一定的通用性。此外,攻擊往往具有時間依賴性,在大多數(shù)檢測方案中沒有涉及。本文設(shè)計并實現(xiàn)一個基于LSTM的IDS方案,并在SWaT數(shù)據(jù)集上評估效果。為了獲得更好的對比效果,根據(jù)文獻(xiàn)[6-7]的描述,實現(xiàn)了Isolation Forest、OSCVM和Matrix Profile這3種檢測方案。實驗結(jié)果表明,基于LSTM的檢測方法比其他3種檢測方法具有更高的正確率,且測試所需要的時間更短,需要的上下文環(huán)境更少。
本文余下部分組織如下:第1部分概述目前已有的檢測方法;第2部分說明實驗中的數(shù)據(jù)集;第3部分闡述降維方法和主要算法;第4部分分析評估結(jié)果并討論;第5部分為結(jié)論。
1 相關(guān)工作
作為一種有效的防御手段,異常檢測已經(jīng)被廣泛應(yīng)用在各個領(lǐng)域,如檢測僵尸網(wǎng)絡(luò)、檢測物聯(lián)網(wǎng)的攻擊以及檢測程序的異常行為等。
Maglaras和Jiang等人提出使用一類支持向量機(One Class Support Vector Machine,OCSVM)來檢測攻擊。他們將原始的網(wǎng)絡(luò)跟蹤文件分割為兩個獨立集合用于訓(xùn)練與測試,但數(shù)據(jù)集較小,只有不到2000條獨立完整的跟蹤記錄。
Goh等人通過使用遞歸神經(jīng)網(wǎng)絡(luò),檢測網(wǎng)絡(luò)物理系統(tǒng)的攻擊。他們同樣使用安全水處理(Secure Water Treatment,SWaT)數(shù)據(jù)集。在他們的工作中,使用RNN是為了預(yù)測在接下來的一段時間內(nèi)某一物理屬性或某一傳感器接收到的數(shù)據(jù)的變化曲線。如果預(yù)測曲線和實際信號曲線有較大差別,說明可能存在入侵。
此外,國內(nèi)外對工業(yè)控制系統(tǒng)的入侵檢測還有許多研究成果。Gao和Morris提出了利用特征碼來檢測Modbus數(shù)據(jù)中攻擊的方法;在Schneider和Bóttinger的研究中,他們通過自動編碼器,以無監(jiān)督的方式檢測工業(yè)數(shù)據(jù)集中的真實攻擊;Knapp和Langill提出了保護工業(yè)網(wǎng)絡(luò)安全的方法;Yang等人則針對電力系統(tǒng)網(wǎng)絡(luò)入侵檢測問題進(jìn)行了討論。
2 SWaT數(shù)據(jù)集
新加坡理工大學(xué)網(wǎng)絡(luò)安全中心iTrust提出的SWaT模擬一個工業(yè)水處理廠,通過膜超濾和反滲透裝置,每分鐘生產(chǎn)5加侖的過濾水。SWaT在正常模式下運行7天,在攻擊模式下運行4天,最終生成與水處理廠和水處理過程有關(guān)的物理特性,并與實驗中網(wǎng)絡(luò)流量共同構(gòu)成數(shù)據(jù)集。
水處理分為生水存儲(Raw
Water
Storage)、預(yù)處理(Pre-treatment)、膜超濾(Ultrafiltration,UF)、紫外線(Ultraviolet,UV)燈脫氯、反滲透(Reverse
Osmosis,RO)和處理(Disposal)6個子過程。子過程之間的聯(lián)系和轉(zhuǎn)換關(guān)系如圖2所示。工廠將準(zhǔn)備處理的水儲存起來,用不同的化學(xué)物質(zhì)預(yù)處理。之后使用膜超濾再進(jìn)行脫氯處理,輸送給反滲透設(shè)備。根據(jù)水清潔度的高低,決定存儲在干凈的儲水池中還是回到膜超濾環(huán)節(jié)。
圖2 模擬處理過程
SWaT數(shù)據(jù)集基于攻擊的特點,區(qū)分了4種類型的攻擊。
( 1 ) 單級別單點攻擊(Single Stage Single Point,SSSP):在一個子過程中,對一個點(傳感器或執(zhí)行器)進(jìn)行攻擊。
( 2 ) 單級別多點攻擊(Single Stage Multiple Point,SSMP):在一個子過程中,集中對多個點進(jìn)行攻擊。
( 3 ) 多級別單點攻擊(Multiple Stage Single Point,MSSP):在多個子過程中,分別對一個點攻擊。
( 4 ) 多級別多點攻擊(Multiple Stage Multiple Point,MSMP):在多個子過程中,對多個點進(jìn)行攻擊,可以看做是單級別多點攻擊在多個子過程上的實現(xiàn)。
在11天的數(shù)據(jù)收集過程中,共有36次攻擊。表1列出了攻擊的分類。
表1 SWaT中攻擊類型和次數(shù)
3 研究方法
3.1 基于LSTM的入侵檢測建立網(wǎng)絡(luò)模型
3.1.1 PCA降維
雖然SWaT是較為簡單的典型工業(yè)控制系統(tǒng),一項物理屬性記錄中只有53個數(shù)據(jù)項,物理控制過程可以抽象為只有51個屬性的數(shù)據(jù)(其他兩個數(shù)據(jù)項分別為時間戳和標(biāo)簽Normal/Attack),但為了不失一般性,抽取數(shù)據(jù)特征對數(shù)據(jù)進(jìn)行降維處理。
使用卡方檢驗返回最佳特征,并使用PCA(主成分分析)算法進(jìn)行降維。為了獲得最好的降維效果,在SWaT數(shù)據(jù)集上測試最佳特征返回數(shù)目為8~14時降維數(shù)據(jù)的完整性,具體測試結(jié)果如表2所示。抽取數(shù)據(jù)保留11個屬性(時間戳和標(biāo)簽除外),分別是'LIT101'、'AIT203'、'FIT201'、'DPIT301'、'FIT301'、'LIT301'、'AIT402'、'LIT401'、'AIT502'、'PIT501'、'PIT503'。此時數(shù)據(jù)的損失較少,數(shù)據(jù)完整性保留程度高。圖3與圖4分別顯示了降維前后特征之間的關(guān)聯(lián)性。PCA處理前,各個屬性之間均存在一定關(guān)聯(lián),其中有部分屬性存在明顯的正相關(guān)與負(fù)相關(guān)聯(lián)系。PCA提取出主要特征分量,將抽取后的特征變換為線性無關(guān)的表示,因此圖4顯示各個維度之間關(guān)聯(lián)性為0。
表2 保留屬性與完整性
圖3 降維前特征間關(guān)聯(lián)性
圖4 降維后特征間關(guān)聯(lián)性
為了能夠更好地應(yīng)用SWaT數(shù)據(jù)集(以及其他工業(yè)控制系統(tǒng)中數(shù)據(jù))的時序性特點,將降維后的數(shù)據(jù)每30條分作一組,每一組內(nèi)部數(shù)據(jù)都是時序的。將每一組數(shù)據(jù)組成的矩陣轉(zhuǎn)置,形成類似字符串embedding后的編碼結(jié)果。
3.1.2 LSTM網(wǎng)絡(luò)
LSTM是一種特殊的RNN。通過精巧的設(shè)計,解決長序列訓(xùn)練過程中梯度消失和梯度爆炸問題。標(biāo)準(zhǔn)RNN由簡單的神經(jīng)網(wǎng)絡(luò)模塊按時序展開成鏈?zhǔn)?,?nèi)部結(jié)構(gòu)如圖5所示。這個重復(fù)模塊結(jié)構(gòu)簡單且單一,記憶疊加方式顯得簡單粗暴。
圖5 RNN網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)
LSTM內(nèi)部有較為復(fù)雜的結(jié)構(gòu),能通過門控狀態(tài)選擇調(diào)整傳輸?shù)男畔?,記住需要長時記憶的信息,忘記不重要的信息,如圖6所示。
圖6 LSTM網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)
LSTM內(nèi)部主要有3個階段。
( 1 ) 忘記階段。這個階段主要是對上一個節(jié)點傳進(jìn)來的輸入進(jìn)行選擇性忘記——“忘記不重要的,記住重要的”。通過計算得到的zf(f表示forget)作為忘記門控,ct-1來控制上一個狀態(tài)哪些需要保留哪些需要遺忘。
( 2 ) 選擇記憶階段。該階段將輸入有選擇性地進(jìn)行“記憶”。主要對輸入xt進(jìn)行選擇記憶,重要內(nèi)容著重記錄,不重要內(nèi)容則少記一些。當(dāng)前的輸入內(nèi)容由前面計算得到的z表示。選擇的門控信號則由zi(i代表information)進(jìn)行控制。將上面兩步得到的結(jié)果相加,即可得到傳輸給下一個狀態(tài)的ct。
( 3 ) 輸出階段。這個階段將決定哪些將會被當(dāng)成當(dāng)前狀態(tài)的輸出。主要通過zo控制,且對上一階段得到的co進(jìn)行放縮(通過一個tanh激活函數(shù)進(jìn)行變化)。
LSTM通過門控狀態(tài)控制傳輸狀態(tài),記住需要長時間記憶的,同時忘記不重要的信息。這對很多需要“長期記憶”的任務(wù)尤其好用,但也因為引入了很多內(nèi)容導(dǎo)致參數(shù)變多,加大了訓(xùn)練難度。
3.1.3 網(wǎng)絡(luò)結(jié)構(gòu)
本文實現(xiàn)了一個基于LSTM的深度網(wǎng)絡(luò)。網(wǎng)絡(luò)包含2個LSTM網(wǎng)絡(luò)層和1個全連接層,最后使用Sigmoid進(jìn)行歸一化。由于Sigmoid會帶來過擬合問題,在網(wǎng)絡(luò)各層間添加Dropout并設(shè)置LSTM的recurrent_dropout為0.2。第4部分評估結(jié)果顯示,這樣的方法是合適的。
3.2 其他入侵檢測方法
3.2.1 OCSVMOCSVM
即一類支持向量機。該模型將數(shù)據(jù)樣本通過核函數(shù)映射到高維特征空間,使其具有良好的聚集性。在特征空間中求解一個最優(yōu)超平面,實現(xiàn)目標(biāo)數(shù)據(jù)與坐標(biāo)原點的最大分離。OCSVM使用一個類進(jìn)行訓(xùn)練,以確定測試用例的元素是否屬于該類,非常適合單類占主導(dǎo)地位的應(yīng)用場景,如異常檢測。
3.2.2 孤立森林
孤立森林算法是一種適用于連續(xù)數(shù)據(jù)的無監(jiān)督異常檢測方法。與其他異常檢測算法通過距離、密度等量化指標(biāo)來刻畫樣本間的疏離程度不同,孤立森林算法的核心是通過孤立數(shù)據(jù)點檢測異常值。
孤立森林利用一種名為孤立樹的數(shù)據(jù)結(jié)構(gòu)來孤立樣本。孤立樹是一種二叉樹。因為異常值的數(shù)量較少,且與大部分樣本具有疏離性,因此異常值更容易被孤立出來,即異常值會距離孤立樹的根節(jié)點更近,而正常值距離根節(jié)點更遠(yuǎn)。此外,相較于LOF、K-means等傳統(tǒng)算法,孤立森林算法對高維度的數(shù)據(jù)具有較好的魯棒性。
3.2.3 Matrix Profile
Yeh等人于2016年開發(fā)了Matrix
Profile,將其作為模式識別算法。具有時序性的數(shù)據(jù)集被分割成長度為m的序列。每個序列從數(shù)據(jù)集中的一個點開始,以滑動窗口的方式計算每個序列之間的距離,如用z代表歸一化距離。
歐式距離與歸一化距離有如下關(guān)系:
式中,x和y都是具有時序性的序列,μ是各自的均值,σ是各自的標(biāo)準(zhǔn)差。Matrix Profile將最小距離保存在一個矩陣中。一個較大的最小距離表示了一個異常值,因為這說明序列中沒有與他相似的序列。相反,一個小的最小距離表明在數(shù)據(jù)集中這個序列有較多相似序列,因此異常的可能性較低。
4 實驗評估
將SWaT數(shù)據(jù)集應(yīng)用到第3部分介紹的算法中。這里選取了近50萬條(449 920)物理設(shè)備數(shù)據(jù)記錄。在原始的csv文件中,各條記錄按時間戳的順序排列,每條記錄對應(yīng)一個標(biāo)簽Normal/Attack。
實驗在顯卡GeForce 940MX、處理器I7-7500U的硬件環(huán)境下進(jìn)行。第3部分中的4個模型訓(xùn)練與測試所需時間分別為5 min、3 h、3.6 min和5 h。
4.1 基于LSTM的入侵檢測評估
訓(xùn)練過程中的損失如圖7所示??梢钥吹?,網(wǎng)絡(luò)在訓(xùn)練過程中不存在梯度爆炸或梯度消失問題。
如圖8所示,在測試集中,LSTM網(wǎng)絡(luò)達(dá)到96.5%的準(zhǔn)確率,而其他方法效果較差:一類支持向量機在運行3 h后能達(dá)到87.96%的正確率,孤立森林只有不到40%(37.14%)的正確率。
為了對比查準(zhǔn)率和查全率,將測試結(jié)果可視化為圖9的混淆矩陣。
圖7 訓(xùn)練中的損失
圖8 正確率對比
4.2 其他檢測方法評估
4.2.1 OCSVM
按照第3部分方法介紹中所描述的,實現(xiàn)了一個一類支持向量機。由于實驗中樣本數(shù)較多而特征數(shù)目較少,訓(xùn)練模型時選擇的核函數(shù)為高斯核函數(shù),即rbf。
LSTM網(wǎng)絡(luò)混淆矩陣,如圖9所示。同樣的,將測試結(jié)果表示為混淆矩陣,并繪制為圖10。對比圖9的左下部分,可以明顯看出,OCSVM將更多的攻擊判定為正常數(shù)據(jù),表明使用OCSVM作為檢測方法會隱含更大的風(fēng)險。
圖9 LSTM網(wǎng)絡(luò)混淆矩陣
圖10 OCSVM網(wǎng)絡(luò)混淆矩陣
4.2.2 孤立森林
孤立森林在同一個數(shù)據(jù)集上的表現(xiàn)比預(yù)期結(jié)果糟糕——調(diào)參過程中,分類準(zhǔn)確率最高只有37.14%。與前兩種算法相同,將PCA降維后的數(shù)據(jù)輸入孤立森林模型進(jìn)行訓(xùn)練,混淆矩陣?yán)L制如圖11所示。對比OCSVM的結(jié)果,孤立森林在檢測過程中漏掉的攻擊更少,但誤報率相當(dāng)高。在實際的系統(tǒng)中,誤報率高會顯著增加系統(tǒng)運營和人工排查的成本。
圖11 孤立森林混淆矩陣
盡管樣本數(shù)據(jù)是按順序輸入模型進(jìn)行訓(xùn)練的,但無論是OCSVM算法還是孤立森林算法,都沒有將時間戳當(dāng)作影響模型的因素之一。打亂樣本后再測試的結(jié)果相同,這與基于LSTM的檢測方法和Matrix Profile有顯著不同。
4.2.3 Matrix Profile
Matrix Profile和評估過的3種算法有較大差別。Matrix Profile針對某一物理屬性在一個連續(xù)時間段內(nèi)的取值進(jìn)行分析,計算長度為m的序列之間的距離并確定距離的閾值,因此直觀上對單點的攻擊檢測更有效。
經(jīng)過多次測試,最終將超參數(shù)m確定為500,此時繪制的圖像對比最明顯。圖12顯示了SWaT系統(tǒng)中水箱LIT-401的水位分析結(jié)果。其中,第1行為經(jīng)過z分?jǐn)?shù)規(guī)范化后的樣本數(shù)據(jù),第2行為計算得到的序列之間距離,第3行為修正弧曲線??梢钥吹剑谠胍舻挠绊懴?,攻擊被隱藏,Matrix
Profile算法的檢測效果不理想。
圖12 LIT-401的水位分析
4.3 討論
基于LSTM的檢測方法在檢測準(zhǔn)確率上,顯著優(yōu)于孤立森林和一類支持向量機。孤立森林不僅準(zhǔn)確率較低(只有不到40%),而且誤報率非常高,難以應(yīng)用到實際的工業(yè)生產(chǎn)過程。OCSVM盡管測試數(shù)據(jù)集的準(zhǔn)確率接近90%,但對比圖9和圖10的混淆矩陣可以明顯看到,OCSVM將更多的攻擊判定為正常數(shù)據(jù),表明相比于LSTM,使用OCSVM作為檢測方法會隱含更大的風(fēng)險,即更多的攻擊無法被檢測出來。Matrix Profile則嚴(yán)重受到數(shù)據(jù)中噪音的影響。正常數(shù)據(jù)中的噪音會導(dǎo)致模型計算的序列距離更大,一定程度上將實際的攻擊數(shù)據(jù)隱藏起來。而在實際的工業(yè)生產(chǎn)過程中,夾雜噪音的數(shù)據(jù)往往很常見。
除此之外,基于LSTM的檢測方法在測試和部署上也有較大優(yōu)勢。為了計算最小距離,Matrix Profile需要至少m+1個數(shù)據(jù)(研究中m為500),且為了存儲最小距離矩陣,空間復(fù)雜度為n2。為了獲得更準(zhǔn)確的最小距離,研究中嘗試輸入40萬條數(shù)據(jù),模型運行時間超過6 h。OCSVM模型需要的計算時間同樣較長,需要至少3 h。
通過多次實驗,最終確定基于LSTM的檢測方法在一次判別中只需要30個時序上連貫的數(shù)據(jù)就可以達(dá)到較高的判別可信度,檢測一條數(shù)據(jù)需要的上下文環(huán)境更少。而其他3種檢測方法中,Matrix Profile在實驗中至少需要500條連續(xù)數(shù)據(jù),最終獲得的曲線圖才有較好的區(qū)分度(如圖12所示)。另外,兩種方法并不直接考慮工控數(shù)據(jù)的時序性特點,都只獨立地判斷一條工控記錄。
5 結(jié)語
本文實現(xiàn)了4種工業(yè)控制系統(tǒng)入侵檢測方法。通過使用SWaT數(shù)據(jù)集進(jìn)行模型訓(xùn)練和測試,本文評估了這些方法,并將測試結(jié)果可視化為混淆矩陣等圖表。結(jié)果顯示,基于LSTM的檢測方法在檢測準(zhǔn)確率(96.5%)上遠(yuǎn)遠(yuǎn)高于孤立森林的準(zhǔn)確率(37.14%),并優(yōu)于一類支持向量機(87.96%)。
除了進(jìn)一步深入研究基于LSTM的入侵檢測,今后研究有兩個主要方向。第一,入侵往往具有時序性特點,LSTM網(wǎng)絡(luò)考慮到這一特點,因此測試效果比對比方法好。第二,考慮復(fù)雜攻擊之間的關(guān)聯(lián)性。第2章節(jié)數(shù)據(jù)集的介紹中提到4種攻擊方式,可知MatrixProfile等分析單個屬性數(shù)值異常情況的檢測方法局限性較大。若能具體考慮屬性之間的關(guān)聯(lián),如復(fù)雜攻擊引起物理屬性連鎖變化等,此類方法或許能有更好效果。
本文檢測方法在設(shè)計和實現(xiàn)上還存在一定的缺陷和問題,需要在今后的研究中不斷改進(jìn)。在對數(shù)據(jù)的分割上,本文按照實際的測試效果得到分割方式,這在實際應(yīng)用中無法實現(xiàn)。因此,如何更好地分割數(shù)據(jù)需要進(jìn)一步研究。此外,數(shù)據(jù)集不應(yīng)該局限于SWaT數(shù)據(jù)集,因為SWaT數(shù)據(jù)集來自較為簡單的工業(yè)控制系統(tǒng),所以在更多的數(shù)據(jù)集上訓(xùn)練和測試將會是以后工作的一個方向。
原文來源:信息安全與通信保密雜志社