馬 標(biāo),賈俊鋮,董國(guó)柱,章 紅,陸武民
1(蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006) 2(浙江中控技術(shù)股份有限公司,杭州 310058) 3(蘇州大學(xué) 電子信息學(xué)院,江蘇 蘇州 215006)
傳統(tǒng)的工業(yè)生產(chǎn)環(huán)境中,工業(yè)控制系統(tǒng)(Industrial Control System,ICS)主要負(fù)責(zé)協(xié)調(diào)和控制各種設(shè)備按照生產(chǎn)要求執(zhí)行各種任務(wù).隨著工業(yè)化和信息化的深度融合,工業(yè)控制系統(tǒng)在完成工業(yè)生產(chǎn)任務(wù)的基礎(chǔ)上還需要具有數(shù)據(jù)分析、遠(yuǎn)程操控等功能,因此越來(lái)越多的工業(yè)控制系統(tǒng)打破自身的封閉性選擇接入互聯(lián)網(wǎng),升級(jí)為工業(yè)互聯(lián)網(wǎng).由于傳統(tǒng)的工業(yè)控制網(wǎng)絡(luò)的主要功能是完成工業(yè)生產(chǎn),在設(shè)計(jì)時(shí)缺乏安全考慮,在開(kāi)放的網(wǎng)絡(luò)環(huán)境中容易遭受攻擊.從網(wǎng)絡(luò)安全方面看,傳統(tǒng)工控系統(tǒng)在物理隔離環(huán)境下,采用私有的通信協(xié)議和軟硬件設(shè)施來(lái)保證網(wǎng)絡(luò)安全,接入互聯(lián)網(wǎng)后物理隔離被打破,系統(tǒng)的一些固有漏洞容易被攻擊者利用,從而進(jìn)行破壞性攻擊.從物理安全方面看,攻擊者通過(guò)網(wǎng)絡(luò)在工業(yè)設(shè)備中植入惡意軟件可以造成復(fù)雜的語(yǔ)義攻擊,攻擊可以直接修改傳感器設(shè)備的返回值、執(zhí)行器的執(zhí)行順序等影響整個(gè)物理空間的生產(chǎn)邏輯,造成重大生產(chǎn)事故.2001年澳大利亞污水處理廠(chǎng)入侵事件,2010年伊朗核燃料提煉工廠(chǎng)攻擊事件等多起非法攻擊事件都給工業(yè)生產(chǎn)和國(guó)家財(cái)產(chǎn)造成了巨大損失.
在工業(yè)控制系統(tǒng)中,可編程邏輯控制器(Programmable Logic Controller,PLC)和人機(jī)界面(Human Machine Interface,HMI)的通信多采用專(zhuān)有的通信協(xié)議(比如S7Comm、Modbus等),這導(dǎo)致很多互聯(lián)網(wǎng)中通用的安全技術(shù)在工業(yè)控制網(wǎng)絡(luò)中并不適用.并且由于傳統(tǒng)的工業(yè)控制網(wǎng)絡(luò)已經(jīng)應(yīng)用多年,使用范圍廣泛,將現(xiàn)有工業(yè)網(wǎng)絡(luò)全部替換代價(jià)太大,所以在不改變現(xiàn)有工業(yè)網(wǎng)絡(luò)的基礎(chǔ)上制定新的入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)是亟需解決的問(wèn)題.
隨著工業(yè)的發(fā)展,自動(dòng)化生產(chǎn)需要多種聯(lián)網(wǎng)的傳感器來(lái)監(jiān)督和控制生產(chǎn)流程,這些傳感器會(huì)生成大量的多元時(shí)間序列數(shù)據(jù),通過(guò)監(jiān)控這些傳感器數(shù)值可以實(shí)時(shí)了解ICS的生產(chǎn)情況,對(duì)ICS正常運(yùn)行下的傳感器數(shù)值進(jìn)行建模能有效識(shí)別入侵行為.本文提出了一種基于WAGAN(Wavelet Attention Generative Adversarial Networks)的工控傳感器數(shù)值異常檢測(cè)方法,通過(guò)檢測(cè)現(xiàn)場(chǎng)設(shè)備的傳感器數(shù)值發(fā)現(xiàn)異常行為.
本文的主要貢獻(xiàn)如下:
1)使用多級(jí)離散小波變換分解重構(gòu)傳感器數(shù)據(jù),降低了數(shù)據(jù)噪聲影響,同時(shí)將多級(jí)重構(gòu)數(shù)據(jù)放入網(wǎng)絡(luò)進(jìn)行訓(xùn)練來(lái)學(xué)習(xí)更多數(shù)據(jù)特征.
2)使用注意力機(jī)制和多層LSTM(Long Short-Term Memory)網(wǎng)絡(luò)學(xué)習(xí)多維時(shí)間序列數(shù)據(jù)的有效特征.
3)使用重構(gòu)誤差和判別器誤差的權(quán)重和來(lái)判斷測(cè)試樣本是否異常.使用仿真平臺(tái)捕捉的傳感器數(shù)據(jù)進(jìn)行試驗(yàn).試驗(yàn)結(jié)果表明,WAGAN模型相比于現(xiàn)有的異常檢測(cè)方法具有更高的異常檢出率.
工業(yè)傳感器能實(shí)時(shí)監(jiān)控工業(yè)生產(chǎn)過(guò)程,通過(guò)對(duì)ICS正常運(yùn)行下的傳感器數(shù)值進(jìn)行建模能有效識(shí)別入侵行為.Inoue J等[1]使用兩種無(wú)監(jiān)督學(xué)習(xí)方法來(lái)檢測(cè)傳感器數(shù)值異常,分別是LSTM網(wǎng)絡(luò)和一類(lèi)支持向量機(jī)(One Class Support Vector Machine,OCSVM),LSTM網(wǎng)絡(luò)的異常檢出率更高但是訓(xùn)練和測(cè)試時(shí)間過(guò)長(zhǎng),OCSVM方法時(shí)間復(fù)雜度較低但是異常檢出率低.Kravchik M等[2]提出一種基于檢測(cè)預(yù)測(cè)值與觀(guān)察值的統(tǒng)計(jì)偏差的異常檢測(cè)方法,使用一維卷積神經(jīng)網(wǎng)絡(luò)來(lái)檢測(cè)ICS異常,其性能比RNN(Recurrent Neural Network)要好,且網(wǎng)絡(luò)結(jié)構(gòu)更簡(jiǎn)單,訓(xùn)練速度更快.Ahmed C M等[3]利用傳感器的硬件特性和過(guò)程的物理特性來(lái)為每個(gè)傳感器創(chuàng)建唯一的指紋,傳感器指紋是傳感器和嵌入在傳感器測(cè)量結(jié)果中的過(guò)程噪聲的函數(shù).在系統(tǒng)正常運(yùn)行期間會(huì)創(chuàng)建基于噪聲的指紋,通過(guò)對(duì)比噪聲模式與指紋模式的偏差能夠檢測(cè)到攻擊.Lin Q等[4]提出一種基于圖形模型的方法,通過(guò)定時(shí)自動(dòng)機(jī)來(lái)學(xué)習(xí)傳感器數(shù)變化的行為規(guī)律,通過(guò)貝葉斯網(wǎng)絡(luò)來(lái)挖掘傳感器和執(zhí)行器的依賴(lài)關(guān)系,此圖形模型可以有效檢測(cè)過(guò)程異常,并根據(jù)模型的可解釋檢測(cè)結(jié)果定位異常傳感器或執(zhí)行器.
多元時(shí)間序列數(shù)據(jù)中的時(shí)間尺度是影響模型性能的關(guān)鍵因素,因?yàn)楫?dāng)前狀態(tài)通常會(huì)受到先前狀態(tài)的影響.若模型在訓(xùn)練時(shí)僅處理數(shù)據(jù)數(shù)值而不考慮其中的時(shí)間屬性,則無(wú)法捕獲流量數(shù)據(jù)中的隱式依賴(lài)關(guān)系.與傳統(tǒng)的RNN在反向傳播階段會(huì)遇到梯度消失的問(wèn)題不同,LSTM[5]可以通過(guò)連接的存儲(chǔ)單元和3個(gè)門(mén)(即輸入門(mén),忘記門(mén)和門(mén))捕獲序列中的長(zhǎng)期依賴(lài)關(guān)系.為了進(jìn)一步挖掘時(shí)間序列中的依賴(lài)信息,注意力機(jī)制[6]被應(yīng)用進(jìn)來(lái).確定時(shí)間序列的時(shí)間尺度是很困難的任務(wù),需要通過(guò)平移(移位)和擴(kuò)張(縮放)將序列的低頻模式與高頻模式分離[7],小波變換恰好可以從時(shí)域和頻域的多分辨率方面挖掘序列的依賴(lài)信息[8].Cheng M等[9]提出了一種的多尺度LSTM模型(Multi-Scale LSTM,MSLSTM)以完全表征不同尺度的時(shí)間依賴(lài)性.MSLSTM模型利用離散小波變換來(lái)獲取多個(gè)尺度的時(shí)間信息,并開(kāi)發(fā)了一個(gè)分層的兩層LSTM體系結(jié)構(gòu),其中第1層學(xué)習(xí)不同時(shí)間尺度的注意力以生成一個(gè)集成的歷史特征,第2層捕獲特征中的長(zhǎng)期和短期時(shí)間依賴(lài)性.
最近,生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)被廣泛應(yīng)用于異常檢測(cè)領(lǐng)域,與傳統(tǒng)的分類(lèi)方法不同,GAN通過(guò)半監(jiān)督的方式進(jìn)行學(xué)習(xí),訓(xùn)練后的鑒別器能從真實(shí)數(shù)據(jù)中檢測(cè)異常數(shù)據(jù),使其成為一種有吸引力的半監(jiān)督的異常檢測(cè)方法[10].相比于原始GAN,EGAN[11]和Bi-GAN[12]添加了一個(gè)編碼器,它將真實(shí)樣本映射到潛在向量,從而避免測(cè)試過(guò)程中恢復(fù)潛在向量表示的計(jì)算開(kāi)銷(xiāo).Jiang W等[13]使用編碼器-解碼器-編碼器3層網(wǎng)絡(luò)構(gòu)建生成器從正常樣本中提取有效特征,用于異常檢測(cè)的異常分?jǐn)?shù)由真實(shí)損失和潛在損失組成.Lu H等[14]提出一種改進(jìn)的GAN方法MSGAN,該方法使用基于WGAN-GP的自適應(yīng)更新策略來(lái)生成偽造的異常樣本,提高了異常檢測(cè)的準(zhǔn)確性.徐志京等[15]使用多尺度融合生成對(duì)抗網(wǎng)絡(luò)對(duì)圖像進(jìn)行去雨處理,給異常檢測(cè)中去除數(shù)據(jù)噪聲點(diǎn)帶來(lái)啟發(fā).Li D等[16]提出半監(jiān)督方法MAD-GAN(Multivariate Anomaly Detection with GAN),該方法使用LSTM作為基本模型(即生成器和鑒別器)在GAN框架中捕獲時(shí)間序列分布的時(shí)間相關(guān)性,同時(shí)考慮整個(gè)變量集以捕獲變量之間的潛在相互作用,能有效檢測(cè)異常.
在真實(shí)的工業(yè)生產(chǎn)中,ICS根據(jù)工業(yè)生產(chǎn)的實(shí)際流程設(shè)計(jì)HMI可視化界面,HMI通過(guò)SCADA系統(tǒng)實(shí)時(shí)與PLC通信并將通信流量中的數(shù)據(jù)信息顯示在HMI界面上,生產(chǎn)者可以通過(guò)HMI實(shí)時(shí)了解工業(yè)生產(chǎn)的實(shí)際情況.但是隨著攻擊的不斷升級(jí),攻擊者為了隱藏攻擊活動(dòng),會(huì)通過(guò)惡意軟件劫持HMI和PLC間通信的流量包,阻止從PLC端發(fā)出的真實(shí)數(shù)據(jù)包,并將更改后的數(shù)據(jù)包發(fā)送到HMI端.Stuxnet[17]和Irongate[18]是兩種針對(duì)ICS的滲透攻擊,它們?cè)讷@取PLC的控制權(quán)后,會(huì)捕獲PLC正常工作時(shí)的出站值并重播以掩蓋對(duì)受控進(jìn)程發(fā)起攻擊時(shí)產(chǎn)生的異常,這使得生產(chǎn)者無(wú)法通過(guò)HMI來(lái)了解ICS真實(shí)的生產(chǎn)情況.Lin C Y等[19]提出了一種更加隱秘的攻擊方案,攻擊者通過(guò)Stuxnet和Irongate等入侵病毒控制PLC后,按照ICS生產(chǎn)周期來(lái)掃描PLC和HMI的通信流量,然后模擬PLC正常運(yùn)作時(shí)的流量進(jìn)行重放,其中重放的流量不僅包含傳感器歷史測(cè)量值,還遵循歷史通信記錄定時(shí)發(fā)送.重放流量中關(guān)于異常,有效負(fù)載的值,消息的大小和時(shí)間安排是完全合法的.
雖然通過(guò)對(duì)工控流量進(jìn)行異常檢測(cè)的方法可以有效防止針對(duì)HMI和PLC通道的入侵行為,但是對(duì)于已經(jīng)獲取了PLC控制權(quán)的攻擊行為,該方法無(wú)法通過(guò)HMI和PLC通信的SCADA流量檢測(cè)出異常.針對(duì)PLC已經(jīng)被攻擊者入侵控制而現(xiàn)有方法難以有效檢測(cè)的情況,本文提出一種基于傳感器數(shù)值的工業(yè)控制系統(tǒng)異常檢測(cè)方法,即繞過(guò)PLC與HMI通信的方式采集傳感器數(shù)值信息,通過(guò)對(duì)ICS正常運(yùn)行下采集的傳感器數(shù)據(jù)進(jìn)行建模來(lái)檢測(cè)異常行為.
在ICS入侵檢測(cè)中使用的異常檢測(cè)方法[20]可以大致分為有監(jiān)督學(xué)習(xí),無(wú)監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)方法.有監(jiān)督學(xué)習(xí)的方法包括支持向量機(jī)[21],隨機(jī)森林[22]和人工神經(jīng)網(wǎng)絡(luò)[23,24]等,此類(lèi)方法需要事先標(biāo)記正常行為的樣本和惡意行為的樣本.在實(shí)踐中很難獲得準(zhǔn)確且具有代表性的標(biāo)記數(shù)據(jù),并且該數(shù)據(jù)高度依賴(lài)于特定系統(tǒng),使用該數(shù)據(jù)訓(xùn)練出的模型在異常檢測(cè)方面普適性較差.無(wú)監(jiān)督學(xué)習(xí)的方法是從未標(biāo)記的真實(shí)數(shù)據(jù)中學(xué)習(xí)檢測(cè)模型,Leandros等[25]提出一種基于OCSVM和K-means聚類(lèi)的方法進(jìn)行無(wú)監(jiān)督的入侵檢測(cè),但是無(wú)監(jiān)督學(xué)習(xí)方法沒(méi)有充分利用數(shù)據(jù)的空間-時(shí)間相關(guān)性以及檢測(cè)異常系統(tǒng)中多個(gè)傳感器變量之間的其他依賴(lài)性,其針對(duì)語(yǔ)義攻擊的檢測(cè)能力較弱.半監(jiān)督學(xué)習(xí)方法是使用一組部分標(biāo)記的數(shù)據(jù)(例如無(wú)異常的干凈數(shù)據(jù))進(jìn)行訓(xùn)練,在ICS入侵檢測(cè)中這些數(shù)據(jù)代表不包含任何攻擊的系統(tǒng)正常行為.與無(wú)監(jiān)督學(xué)習(xí)方法相比,半監(jiān)督學(xué)習(xí)方法能有效學(xué)習(xí)ICS系統(tǒng)正常運(yùn)行時(shí)數(shù)據(jù)的特征,此方法具有更低的假陽(yáng)性率.
目前,大多數(shù)現(xiàn)有方法是將傳感器當(dāng)前狀態(tài)和模型預(yù)測(cè)的正常范圍做簡(jiǎn)單比較來(lái)進(jìn)行異常檢測(cè),但是由于現(xiàn)在工業(yè)生產(chǎn)工藝越來(lái)越復(fù)雜,生產(chǎn)過(guò)程會(huì)涉及非常多的傳感器且傳感器的變化也呈現(xiàn)多樣性,傳統(tǒng)的基于閾值的異常檢測(cè)方法無(wú)法有效檢測(cè)異常.為了充分挖掘傳感器之間的依賴(lài)關(guān)系來(lái)提高檢測(cè)準(zhǔn)確率,MAD-GAN使用LSTM作為基礎(chǔ)網(wǎng)絡(luò)來(lái)構(gòu)建GAN模型,將時(shí)間序列按多尺度進(jìn)行劃分來(lái)挖掘數(shù)據(jù)的潛在關(guān)聯(lián),模型訓(xùn)練完成以后通過(guò)利用GAN訓(xùn)練的生成器和鑒別器,以真實(shí)數(shù)據(jù)和生成數(shù)據(jù)的重建和誤差損失來(lái)檢測(cè)異常.針對(duì)現(xiàn)有方法難以有效提取傳感器數(shù)據(jù)的有效特征,為了進(jìn)一步提高模型準(zhǔn)確率,本章提出一個(gè)基于小波變換和注意力機(jī)制的生成對(duì)抗網(wǎng)絡(luò)模型,首先使用離散小波變換來(lái)生成多個(gè)層次的傳感器數(shù)值,增強(qiáng)了數(shù)據(jù)特征.同時(shí)小波變換能有效降低數(shù)據(jù)的波動(dòng)性,防止數(shù)值波動(dòng)帶來(lái)的結(jié)果誤判.然后通過(guò)注意力機(jī)制和多層LSTM網(wǎng)絡(luò)學(xué)習(xí)小波變換后的多層次傳感器數(shù)值中的關(guān)聯(lián)特征,最后通過(guò)訓(xùn)練后的生成對(duì)抗網(wǎng)絡(luò)來(lái)識(shí)別異常行為.
ICS依據(jù)工業(yè)傳感器實(shí)時(shí)掌控工業(yè)生產(chǎn)流程,但是傳感器的數(shù)值變化并不是線(xiàn)性的,存在一定的波動(dòng)性和噪聲.在圖1中繪制了400個(gè)傳感器數(shù)值樣本的圖,其中前200個(gè)樣本代表正常數(shù)值,后200個(gè)樣本代表異常數(shù)值.在圖1(a)中,根據(jù)綠色的分界線(xiàn)可以看到正常樣本和異常樣本中都存在到波動(dòng)點(diǎn).傳統(tǒng)的機(jī)器學(xué)習(xí)分類(lèi)方法僅根據(jù)當(dāng)前時(shí)刻的狀態(tài)做出決策,因此很有可能將正常樣本中的波動(dòng)點(diǎn)A判斷為異常,異常樣本中的波動(dòng)點(diǎn)B判斷為正常.但是如果檢測(cè)異常時(shí)將波動(dòng)點(diǎn)周?chē)鄻颖拘畔⒖紤]進(jìn)去,則可以發(fā)現(xiàn)波動(dòng)點(diǎn)A周?chē)臉颖径际钦5?,其?shí)波動(dòng)點(diǎn)A只是傳感器的一個(gè)噪聲點(diǎn),屬于正常樣本.同理可知,波動(dòng)點(diǎn)B是異常樣本中的噪聲,雖然從傳感器數(shù)值上看是正常的,但依舊屬于攻擊行為.針對(duì)這種因傳感器數(shù)值波動(dòng)而使得模型檢測(cè)準(zhǔn)確率降低的情況,本文引入離散小波變換來(lái)去除數(shù)值波動(dòng)噪聲和提取數(shù)據(jù)高維特征.
圖1 多尺度時(shí)間序列圖Fig.1 Multi-scale time series diagram
離散小波變換基本原理是選取一個(gè)基礎(chǔ)的小波,通過(guò)對(duì)基波進(jìn)行平移伸縮來(lái)擬合原始的離散數(shù)據(jù).經(jīng)過(guò)一級(jí)離散小波變換可以將原始序列Xn={x1,x2,…,xn}分解為近似部分A1和細(xì)節(jié)部分D1,其中近似部分即低頻信息,表示原始數(shù)據(jù)的主要信息特征,細(xì)節(jié)部分即高頻信息,表示原始數(shù)據(jù)的一些噪聲信息或者特殊特征.小波分解技術(shù)在音頻降噪和提取特殊聲音等方面應(yīng)用廣泛[26-28],小波變換可以將原始的音頻信息進(jìn)行多次分解生成多尺度的高頻信息和低頻信息,通過(guò)將低頻信息去除再使用逆離散小波變換重新合成新的音頻來(lái)去除噪聲,也可以提取人的聲音而除去人的音色信息.
離散小波變換能不同尺度上對(duì)原始數(shù)據(jù)信號(hào)進(jìn)行分解,分解的尺度可以根據(jù)不同的目標(biāo)來(lái)確定.通過(guò)將原始信號(hào)與低通濾波器Hn卷積獲得近似系數(shù),而細(xì)節(jié)系數(shù)由高通濾波器Gn獲得,這些系數(shù)都要通過(guò)降采樣濾波器Q進(jìn)行降采樣.在離散小波變換的具體分解過(guò)程中,一級(jí)變換就是將Xn分解為A1和D1,二級(jí)變換則是將A1再次分解為A2和D2,依次類(lèi)推最多可以分解log2n層,其中n為序列Xn的長(zhǎng)度.
不同級(jí)別離散小波變換生成的低頻信息和高頻信息從多維度提供原始信號(hào)的特征信息,其中較高級(jí)別的低頻信息能反映原始信號(hào)全局變化趨勢(shì).對(duì)于不同尺度級(jí)別的離散小波變換進(jìn)行重構(gòu)即進(jìn)行逆離散小波變換,可以提取原始信號(hào)的多尺度特征.如圖2所示,原始信號(hào)經(jīng)過(guò)離散小波變換后會(huì)生成低頻信息和高頻信息,將高頻信息經(jīng)過(guò)閾值量化處理,再使用重構(gòu)濾波器將處理后的高頻信息和低頻信息進(jìn)行卷積,從而得到重構(gòu)信號(hào),重構(gòu)信號(hào)可以讓數(shù)據(jù)特征更加明顯.圖1(b)是經(jīng)過(guò)一級(jí)離散小波變換再重構(gòu)后的傳感器時(shí)間序列圖,從圖中可以明顯看到噪聲點(diǎn)被去除,正常樣本和異常樣本被水平分界線(xiàn)清晰區(qū)分開(kāi).圖1(c)是經(jīng)過(guò)二級(jí)離散小波變換再重構(gòu)后的傳感器時(shí)間序列圖,從圖中可以看待原本在分界線(xiàn)處有較多重合的正負(fù)樣本被進(jìn)一步區(qū)分,多級(jí)小波變換可以進(jìn)一步挖掘正常樣本和異常樣本各自的數(shù)據(jù)特征,可以反映序列的整體趨勢(shì).
圖2 逆離散小波變換重構(gòu)過(guò)程圖
多數(shù)現(xiàn)有的異常檢測(cè)方法僅根據(jù)當(dāng)前數(shù)據(jù)來(lái)構(gòu)建傳統(tǒng)的異常檢測(cè)模型,而忽略了時(shí)間序列間的前后關(guān)聯(lián).在真實(shí)的工業(yè)生產(chǎn)中各個(gè)生產(chǎn)環(huán)節(jié)前后關(guān)聯(lián),各傳感器數(shù)值是反映工業(yè)生產(chǎn)的實(shí)際情況,因此當(dāng)前傳感器數(shù)值變化在時(shí)間維度上是有關(guān)聯(lián)的.本文所提的WAGAN模型不是單獨(dú)處理每個(gè)數(shù)據(jù)流,而是同時(shí)考慮整個(gè)變量集,以便讓模型捕獲變量之間的潛在關(guān)聯(lián).對(duì)于數(shù)據(jù)進(jìn)行多尺度處理的過(guò)程為:給定輸入數(shù)據(jù)集Xn={x1,x2,…,xi,…,xn},Xn∈d×n,其中d為xi的維度,n為序列總個(gè)數(shù),將Xn經(jīng)過(guò)K級(jí)離散小波變換分解和重構(gòu)后可獲得多尺度時(shí)間序列R:
R={R1,R2,…,Rk,…},k∈(1,K)
(1)
(2)
其中Rk表示Xn經(jīng)過(guò)第k級(jí)離散小波變換分解和重構(gòu)后的值.再將獲得的多尺度序列使用長(zhǎng)度為w的滑動(dòng)窗口進(jìn)行切分處理且步長(zhǎng)為1,可以得到新的輸入Xtrain,Xtrain∈N×K×w×d,其中N為Xtrain的總樣本數(shù)且值為n-w+1,K為離散小波變換分解和重構(gòu)等級(jí),w為滑動(dòng)窗口長(zhǎng)度,d為序列維度.
通過(guò)對(duì)ICS運(yùn)行機(jī)制的深入了解和對(duì)傳感器數(shù)值規(guī)律的分析,本文在GAN模型中引入離散小波變換和注意力機(jī)制來(lái)進(jìn)一步挖掘數(shù)據(jù)特征,提出了基于小波變換和注意力機(jī)制的GAN模型(WaveletAttentionGAN,WAGAN).如圖3所示,WAGAN模型分為兩個(gè)部分:WAGAN訓(xùn)練模型和WAGAN檢測(cè)模型.經(jīng)過(guò)第4章節(jié)的數(shù)據(jù)預(yù)處理,原始的時(shí)間序列數(shù)據(jù)已經(jīng)處理為多尺度時(shí)間序列數(shù)據(jù)Xtrain,以下為WAGAN訓(xùn)練模型和WAGAN檢測(cè)模型具體執(zhí)行流程.
圖3 WAGAN網(wǎng)絡(luò)模型結(jié)構(gòu)圖
在訓(xùn)練模型中,首先生成隨機(jī)的噪聲Z輸入到生成器(Generator,G)中,G根據(jù)Z輸出生成樣本;然后從訓(xùn)練數(shù)據(jù)中選取真實(shí)樣本(訓(xùn)練數(shù)據(jù)全為正常樣本),將真實(shí)樣本和生成樣本一起輸入給判別器(Discriminator,D),D根據(jù)樣本輸出結(jié)果;最后根據(jù)D的輸出更新D和G的參數(shù),讓G能生成以假亂真的樣本,讓D能準(zhǔn)確辨別真假樣本.D通過(guò)生成逼真的樣本來(lái)捕獲訓(xùn)練數(shù)據(jù)的異常特征,可以將其視為ICS正常運(yùn)行下的運(yùn)行規(guī)律.
在檢測(cè)模型中,檢測(cè)所使用的生成器G和判別器G是訓(xùn)練模型訓(xùn)練所得.首先從測(cè)試數(shù)據(jù)中選出要測(cè)試的真實(shí)樣本,并將測(cè)試樣本映射到隨機(jī)噪聲Z所在的潛在向量空間來(lái)尋找最接近測(cè)試樣本的隨機(jī)噪聲Z;然后將最接近測(cè)試樣本的噪聲Z輸入到G中生成重構(gòu)的測(cè)試樣本,將重構(gòu)樣本和實(shí)際測(cè)試樣本進(jìn)行對(duì)比得到重構(gòu)損失(Reconstruction loss);其次將測(cè)試樣本輸入到D中得到判別器損失(Discrimination loss);最后根據(jù)重構(gòu)損失和判別器損失可以得到異常分?jǐn)?shù)(Discrimination and Reconstruction Anomaly Score,DRS),根據(jù)DRS可以判斷測(cè)試樣本是否異常.
5.1.1 注意力機(jī)制模塊
注意力機(jī)制(Attention),是指在神經(jīng)網(wǎng)絡(luò)過(guò)程中將訓(xùn)練的注意力從全局轉(zhuǎn)移到目標(biāo)關(guān)注的局部重點(diǎn)的一種機(jī)制,其原理就類(lèi)似于人觀(guān)察眼前畫(huà)面的過(guò)程,人眼在觀(guān)察某個(gè)畫(huà)面時(shí),人的注意力往往集中在感興趣的區(qū)域并自動(dòng)過(guò)濾掉畫(huà)面中一些無(wú)關(guān)背景,從而迅速獲取整個(gè)畫(huà)面的有用信息.注意力機(jī)制最早由Bahdanau D等[29]提出,并應(yīng)用在機(jī)器翻譯領(lǐng)域,使用注意力機(jī)制幫助解碼器獲取所有輸入狀態(tài)的加權(quán)組合來(lái)進(jìn)行輸出.此后,注意力機(jī)制被廣泛應(yīng)用在計(jì)算機(jī)視覺(jué)[30-32]和自然語(yǔ)言處理[33,34]等領(lǐng)域.
為了進(jìn)一步挖掘傳感器數(shù)值的潛在特征,本文對(duì)原始的時(shí)間序列經(jīng)過(guò)K級(jí)離散小波變換重構(gòu)并對(duì)重構(gòu)后的數(shù)據(jù)使用滑動(dòng)窗口進(jìn)行重新分組,讓數(shù)據(jù)尺度擴(kuò)大了K-1級(jí),數(shù)據(jù)的復(fù)雜化使得模型變得難以訓(xùn)練.因此本文引入注意力機(jī)制來(lái)學(xué)習(xí)多尺度重構(gòu)數(shù)據(jù)每一級(jí)的特征權(quán)重,權(quán)重越大表示該特征向量對(duì)模型結(jié)果的影響力更大.根據(jù)權(quán)重確定多尺度信息的主導(dǎo)特征所在,充分利用主導(dǎo)特征的信息,抑制權(quán)重小的特征表示,從而過(guò)濾掉無(wú)用的信息、篩選出有價(jià)值的信息,使得模型有選擇地學(xué)習(xí)這些輸入樣本.從解釋性的層次來(lái)說(shuō),向量權(quán)值的獲取對(duì)訓(xùn)練過(guò)程的可解釋性有一定的提高,通過(guò)使用注意力機(jī)制能幫助模型選擇出那一級(jí)或哪幾級(jí)離散小波變換在WAGAN模型構(gòu)建中起到?jīng)Q策作用.
圖4 注意力機(jī)制結(jié)構(gòu)圖
如圖4所示,注意力機(jī)制輸入為D′和h,D′指上下文內(nèi)容,h指時(shí)間序列中每一個(gè)時(shí)刻的隱藏單元,a是表示經(jīng)過(guò)softmax函數(shù)后的h和d的關(guān)聯(lián)權(quán)重,c指用來(lái)做為下文LSTM網(wǎng)絡(luò)輸入的權(quán)值和.具體計(jì)算過(guò)程如下:
ut=tanh(W1D′+W2ht)
(3)
at=softmax(ut)
(4)
c=∑tatht
(5)
5.1.2 生成器網(wǎng)絡(luò)
在WAGAN模型中,生成器的作用是模仿真實(shí)樣本生成能欺騙判別器的假樣本,因?yàn)樵谟?xùn)練過(guò)程中使用的訓(xùn)練數(shù)據(jù)全是正常樣本,使用經(jīng)過(guò)訓(xùn)練后,生成器生成的假樣本能準(zhǔn)確包含真實(shí)樣本的主要特征.生成器網(wǎng)絡(luò)的具體結(jié)構(gòu)如圖5所示,包含兩個(gè)LSTM層和一個(gè)Attention模塊.生成器的輸入為隨機(jī)噪聲Z,Z∈K×w×d,本文中隨機(jī)樣本Z和真實(shí)樣本X維度一致且生成器是通過(guò)Z生成樣本,因此按照真實(shí)樣本含義來(lái)解釋Z,其中K表示離散小波變換分解重構(gòu)級(jí)數(shù),w為時(shí)間步長(zhǎng)即滑動(dòng)窗口的大小,d為噪聲序列維度,表示時(shí)間為t時(shí)第k級(jí)離散小波變換后的序列.先將隨機(jī)噪聲Z輸入到第1個(gè)LSTM層得到隱藏單元表示時(shí)間部分為t時(shí)第k級(jí)離散小波變換序列的特征;然后將隱藏單元輸入到全連接層得到特征其中Wu為權(quán)重,bu為偏置;再通過(guò)和uw來(lái)計(jì)算每一層特征的注意力權(quán)重其中uw是訓(xùn)練過(guò)程中的一個(gè)隨機(jī)向量.最后由注意力權(quán)重和輸入的噪聲序列得到注意力的權(quán)重和Ct其具體計(jì)算形式如下:
(6)
(7)
(8)
圖5 生成器網(wǎng)絡(luò)結(jié)構(gòu)圖
Ct是經(jīng)過(guò)注意力機(jī)制得到的參數(shù),包含了所有時(shí)刻為t時(shí)數(shù)據(jù)的高維特征.將代表數(shù)據(jù)特征的Ct輸入到下一層LSTM網(wǎng)絡(luò)中,然后將輸出送入tanh激活函數(shù).因?yàn)樯善魃傻慕Y(jié)果需要和真實(shí)樣本一致,所以在輸出結(jié)果前需要將結(jié)果重構(gòu)為G(z),G(z)∈K×w×d.通過(guò)不斷訓(xùn)練生成器模型,從隨機(jī)噪聲Z的數(shù)據(jù)空間中學(xué)習(xí)到符合真實(shí)樣本特征的生成樣本.生成器的損失函數(shù)為交叉熵函數(shù),具體公式如下,其中y為判別器判別結(jié)果:
L(G)=-[ylnG(z)+(1-y)ln(1-G(z))]
(9)
5.1.3 判別器網(wǎng)絡(luò)
判別器D的作用是判斷輸入的樣本是真實(shí)樣本還是生成的假樣本,輸出的結(jié)果為0-1序列,“1”代表真實(shí)樣本,“0”代表生成的假樣本,然后根據(jù)輸出的結(jié)果更新生成器和判別器.判別器的網(wǎng)絡(luò)結(jié)構(gòu)和生成器的結(jié)構(gòu)類(lèi)似,包括兩層LSTM網(wǎng)絡(luò)和一個(gè)Attention模塊.判別器的輸入為假樣本G(z)或真樣本x,x∈Xtrain,G(z)和x結(jié)構(gòu)一致,G(z),x∈K×w×d.判別器結(jié)果在輸出前需要經(jīng)過(guò)sigmoid激活函數(shù)將數(shù)值壓縮到0和1之間,越接近1則越可能為真實(shí)樣本,越接近0則越可能為生成樣本.判別器D的損失函數(shù)和生成器一樣都是交叉熵函數(shù).
在訓(xùn)練過(guò)程中使用的訓(xùn)練數(shù)據(jù)集Xtrain均為不包含攻擊行為正常樣本,而測(cè)試所用的時(shí)間序列數(shù)據(jù)包含了攻擊行為.將測(cè)試數(shù)據(jù)經(jīng)過(guò)第4章節(jié)中的數(shù)據(jù)預(yù)處理可以得到測(cè)試數(shù)據(jù)集Xtest∈RM×K×w×d,其中M為預(yù)處理后的測(cè)試數(shù)據(jù)集的樣本數(shù).WAGAN模型的檢測(cè)流程如圖3右側(cè)部分所示,通過(guò)左側(cè)的訓(xùn)練模型獲得訓(xùn)練完成的生成器G和判別器D.基于GAN的異常檢測(cè)大多是使用訓(xùn)練好的判別器來(lái)識(shí)別異常數(shù)據(jù)和正常數(shù)據(jù),但是本文采用生成器和判別器結(jié)合的方式來(lái)檢測(cè)異常.生成器根據(jù)輸入的測(cè)試樣本生成重構(gòu)樣本,并計(jì)算重構(gòu)樣本和測(cè)試樣本間的誤差可以得到重構(gòu)誤差;判別器根據(jù)輸入的測(cè)試樣本可以得到判別器誤差;根據(jù)兩個(gè)誤差相加之和是否大于閾值可以判斷測(cè)試樣本是否為異常,下面介紹具體檢測(cè)流程.
5.2.1 生成器重構(gòu)誤差
生成器經(jīng)過(guò)訓(xùn)練以后能夠?qū)㈦S機(jī)噪聲Z轉(zhuǎn)換成真實(shí)樣本:G(z):z→x.生成器在訓(xùn)練時(shí)所使用的訓(xùn)練數(shù)據(jù)全是正常樣本,可以認(rèn)為生成器G可以學(xué)習(xí)到正常狀態(tài)下工控系統(tǒng)傳感器數(shù)值的分布,而Z則是這些數(shù)值變化的向量空間.因此對(duì)于測(cè)試數(shù)據(jù)Xtest可以找到和它最接近的正常樣本Z′,通過(guò)比較Xtest和Z′得到重構(gòu)誤差.如果測(cè)試樣本Xtest是異常樣本,由于訓(xùn)練過(guò)程中沒(méi)有出現(xiàn),所以重構(gòu)誤差會(huì)很大.為得到最優(yōu)最接近測(cè)試樣本的Z′,本文先生成一個(gè)隨機(jī)噪聲Z,通過(guò)計(jì)算G(Z)和測(cè)試樣本Xtest的相似性,然后利用梯度下降來(lái)更新噪聲Z,計(jì)算公式如下:
(10)
尋找最優(yōu)最優(yōu)最接近測(cè)試樣本Z′的過(guò)程就是最小化Xtest和G(Z)的差值即求生成的樣本中最接近Xtest的隨機(jī)噪聲.找到Z′后,可以通過(guò)比較G(Z′)和Xtest的差異來(lái)求重構(gòu)誤差,計(jì)算公式如下:
(11)
5.2.2 判別器誤差
訓(xùn)練模型中所用的訓(xùn)練數(shù)據(jù)全是ICS正常運(yùn)行下捕獲的正常數(shù)據(jù),因此通過(guò)訓(xùn)練模型獲得的判別器D能學(xué)習(xí)到正常樣本的特征來(lái)準(zhǔn)確地識(shí)別出正常的真實(shí)樣本.測(cè)試樣本都是真實(shí)樣本,對(duì)于判別器D而言標(biāo)簽都為“1”,當(dāng)測(cè)試樣本為異常樣本時(shí),由于異常樣本不符合正常樣本的特征,判別器D誤差會(huì)將異常樣本識(shí)別為假樣本,判別結(jié)果經(jīng)過(guò)sigmoid激活函數(shù)輸出接近0,這使得判別器誤差會(huì)很大,通過(guò)這種方式可以識(shí)別異常樣本.具體計(jì)算公式如下:
(12)
(13)
5.2.3 誤差分?jǐn)?shù)
檢測(cè)異常時(shí),根據(jù)重構(gòu)誤差和判別器誤差來(lái)共同計(jì)算異常損失,通過(guò)參數(shù)λ來(lái)調(diào)節(jié)兩部分誤差權(quán)重.計(jì)算公式如下:
(14)
(15)
(16)
為了對(duì)WAGAN模型的檢測(cè)準(zhǔn)確率進(jìn)行評(píng)估,并將其與同類(lèi)異常檢測(cè)方法進(jìn)行比較,本文采用新加坡科技設(shè)計(jì)大學(xué)搭建的仿真平臺(tái)——安全水處理平臺(tái)[35](SecureWaterTreatment,SWaT)所捕獲的傳感器數(shù)據(jù)集.SWaT是一個(gè)按照真實(shí)的水處理廠(chǎng)縮小的仿真平臺(tái),每分鐘可產(chǎn)生5加侖的干凈水資源.該仿真平臺(tái)水處理過(guò)程主要分為6個(gè)步驟:1)吸收需要處理的污水并將其存儲(chǔ)在水箱中;2)將污水進(jìn)行預(yù)處理并評(píng)估水質(zhì),如果水質(zhì)不在可接受的范圍內(nèi),則執(zhí)行化學(xué)處理;3)使用濾膜去除水中的雜質(zhì);4)使用紫外線(xiàn)燈在脫氯過(guò)程中去除化學(xué)反應(yīng)產(chǎn)生的氯化膽堿;5)將上面處理后的水使用水泵輸送到反滲透系統(tǒng)中以減少無(wú)機(jī)雜質(zhì);6)最后將處理后的水存儲(chǔ)起來(lái),以便在水分配系統(tǒng)中進(jìn)行分配.
SWaT仿真平臺(tái)是由HMI、PLC、SCADA系統(tǒng)、現(xiàn)場(chǎng)設(shè)備以及實(shí)時(shí)數(shù)據(jù)庫(kù)組成.現(xiàn)場(chǎng)設(shè)備中包含51個(gè)傳感器可以實(shí)時(shí)檢測(cè)和控制設(shè)備運(yùn)行情況,污水處理的6個(gè)過(guò)程分別由6個(gè)PLC設(shè)備控制,SCADA系統(tǒng)將傳感器的狀態(tài)通過(guò)PLC和HMI通信實(shí)時(shí)反饋在HMI界面上.傳感器可以通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)每隔一秒將傳感器的數(shù)值上傳到實(shí)時(shí)數(shù)據(jù)庫(kù)中,傳感器數(shù)值包括水位高度等浮點(diǎn)數(shù)值和代表閥門(mén)開(kāi)關(guān)狀態(tài)等整數(shù).
SWaT數(shù)據(jù)集在11天內(nèi)共采集了946722個(gè)樣本,包含51個(gè)傳感器數(shù)值,其中前7天是SWaT仿真平臺(tái)正常運(yùn)行狀態(tài)下采集的傳感器數(shù)值信息,后4天是對(duì)SWaT平臺(tái)進(jìn)行多種類(lèi)型攻擊后采集的傳感器信息.針對(duì)SWaT平臺(tái)的攻擊共有36種,包含傳統(tǒng)的常規(guī)攻擊,如偵查攻擊;也包含語(yǔ)義攻擊,通過(guò)劫持PLC的方式來(lái)修改傳感器數(shù)值,或者打開(kāi)傳感器閥門(mén)等直接影響系統(tǒng)運(yùn)行.攻擊的持續(xù)時(shí)間為幾分鐘到一個(gè)小時(shí)不等.為了保證數(shù)據(jù)采集的準(zhǔn)確性,系統(tǒng)在正常運(yùn)行的前7天內(nèi)穩(wěn)定運(yùn)行;在進(jìn)行攻擊時(shí),需要在發(fā)起另一次攻擊之前或連續(xù)發(fā)起攻擊之前將系統(tǒng)運(yùn)行至正常狀態(tài).SWaT數(shù)據(jù)集中,系統(tǒng)正常運(yùn)行下收集的樣本數(shù)為496800個(gè),攻擊開(kāi)始后收集的樣本數(shù)為449919.由于正常運(yùn)行時(shí)的系統(tǒng)是從啟動(dòng)狀態(tài)開(kāi)始運(yùn)行,考慮到系統(tǒng)運(yùn)行到正常狀態(tài)需要一定時(shí)間,本文在訓(xùn)練時(shí)將前6個(gè)小時(shí)的數(shù)據(jù)即21600條樣本去除.本文中正常樣本標(biāo)記為負(fù)樣本“0”,異常樣本標(biāo)記為正樣本“1”.
本文使用標(biāo)準(zhǔn)的評(píng)估指標(biāo),精確率(Precision),召回率(Recall)和F1分?jǐn)?shù)來(lái)評(píng)估WAGAN的異常檢測(cè)性能,各指標(biāo)計(jì)算公式如下:
(17)
(18)
(19)
精確率用于衡量檢測(cè)模型正確識(shí)別了多少正樣本,但是當(dāng)數(shù)據(jù)集嚴(yán)重不平衡時(shí),精確率很難有效反映模型性能,比如當(dāng)數(shù)據(jù)集中負(fù)樣本數(shù)量占比很大時(shí),模型性能很難通過(guò)精確率反映.召回率是衡量有多少正樣本被檢測(cè)出來(lái)的指標(biāo),但是只通過(guò)召回率也很難反映模型實(shí)際檢測(cè)性能.F1值能同時(shí)兼顧精確率和準(zhǔn)確率,因此需要將精確率、召回率和F1這3個(gè)指標(biāo)結(jié)合起來(lái)評(píng)估WAGAN模型的異常檢測(cè)性能.
將SWaT數(shù)據(jù)集進(jìn)行劃分,前7天的正常數(shù)據(jù)作為訓(xùn)練樣本,訓(xùn)練樣本中需要去除21600條系統(tǒng)未穩(wěn)定運(yùn)行的樣本,樣本總數(shù)為475200;后4天加入攻擊的數(shù)據(jù)作為測(cè)試樣本,樣本總數(shù)為449919.樣本是由51個(gè)傳感器數(shù)值組成,其維度d為51.為了獲取更多數(shù)據(jù)特征,使用K級(jí)離散小波變換依次對(duì)51列數(shù)值進(jìn)行分解重構(gòu),實(shí)驗(yàn)中K取值為3,離散小波變換的基波函數(shù)為“Haar”小波.為了獲取時(shí)間序列前后關(guān)聯(lián),使用滑動(dòng)窗口長(zhǎng)度w為30的滑動(dòng)窗口進(jìn)行切分處理且步長(zhǎng)為1,可以得到訓(xùn)練數(shù)據(jù)Xtrain,Xtrain∈N×K×w×d,其中N為Xtrain的總樣本數(shù)為473171,同理可得測(cè)試數(shù)據(jù)Xtest.
在實(shí)驗(yàn)過(guò)程中,實(shí)驗(yàn)平臺(tái)以及設(shè)備對(duì)實(shí)驗(yàn)數(shù)據(jù)的結(jié)果會(huì)產(chǎn)生影響,為了確保實(shí)驗(yàn)結(jié)果真實(shí)有效,所有實(shí)驗(yàn)都在同一環(huán)境下進(jìn)行.實(shí)驗(yàn)環(huán)境以及相關(guān)軟硬件配置如表1所示.
表1 實(shí)驗(yàn)環(huán)境
WAGAN模型中,生成器由兩個(gè)LSTM層和一個(gè)Attention模塊組成,生成器的輸入為隨機(jī)噪聲Z,Z∈K×w×d,Z的大小為3×30×51,第1個(gè)LSTM層的隱藏單元數(shù)為153,第2個(gè)LSTM層的隱藏單元數(shù)為51,激活函數(shù)為tanh,使用交叉熵為損失函數(shù)并使用梯度下降為優(yōu)化器,優(yōu)化器的學(xué)習(xí)率為0.1.判別器的輸入為真實(shí)樣本x,x的大小為3×30×51,其網(wǎng)絡(luò)結(jié)構(gòu)與生成器一致,激活函數(shù)為sigmoid,使用交叉熵為損失函數(shù)并使用Adam為優(yōu)化器,優(yōu)化器的學(xué)習(xí)率為0.001.生成器和判別器的訓(xùn)練交替運(yùn)行,batchsize為500,epoch大小為100.檢測(cè)異常時(shí),根據(jù)重構(gòu)誤差和判別器誤差來(lái)共同計(jì)算異常損失,通過(guò)參數(shù)λ來(lái)調(diào)節(jié)兩部分誤差權(quán)重并根據(jù)異常閾值τ來(lái)判斷是否異常,其中λ的值為0.2,τ的值為0.6.
為了驗(yàn)證WAGAN模型的異常檢測(cè)性能,將WAGAN模型和其他半監(jiān)督異常檢測(cè)方法進(jìn)行,比較方法包括OCSVM[1]、Bi-GAN[12]、EGAN[11]和MAD-GAN[16].上述半監(jiān)督方法訓(xùn)練時(shí)使用的數(shù)據(jù)集均是SWaT中正常運(yùn)行時(shí)的數(shù)據(jù),測(cè)試數(shù)據(jù)為添加了多種攻擊的數(shù)據(jù).
實(shí)驗(yàn)結(jié)果如表2所示,表中黑體部分為各衡量指標(biāo)中最好的結(jié)果,OCSVM方法是依據(jù)正常樣本的特征映射來(lái)訓(xùn)練模型,通過(guò)異常樣本在模型中特征映射和正常樣本有所區(qū)別來(lái)檢測(cè)異常,但是很多正常樣本與異常樣本的特征區(qū)分并不明顯,一些特殊情況下異常樣本的傳感器數(shù)值也符合正常樣本的數(shù)組范圍.Bi-GAN是一個(gè)雙向?qū)W習(xí)的過(guò)程,對(duì)于已經(jīng)配對(duì)的“原始樣本和隱變量”,其中原始樣本是已知的,隱變量是學(xué)習(xí)隨機(jī)噪聲分布;對(duì)于已經(jīng)配對(duì)的“生成樣本和隨機(jī)噪聲”,隨機(jī)噪聲是已知的,生成樣本是學(xué)習(xí)原始樣本.此方法使用編碼器和解碼器來(lái)學(xué)習(xí)正常樣本的隱藏特征,然后根據(jù)訓(xùn)練好的判別器識(shí)別異常樣本,此方法較OCSVM方法在精確率方面有所提升,但是召回率和F1分?jǐn)?shù)方面表現(xiàn)很差.EGAN與Bi-GAN的原理類(lèi)似,只是在模型效率方面做了些提升,檢測(cè)結(jié)果也不理想.MAD-GAN模型考慮了時(shí)間序列數(shù)據(jù)之間關(guān)聯(lián)性,按照不同時(shí)間尺度將多個(gè)樣本劃分為一組進(jìn)行訓(xùn)練,同時(shí)將生成器和判別器結(jié)合來(lái)識(shí)別異常樣本,模型異常檢測(cè)效果得到明顯提升.本文提出的WAGAN方法使用了離散小波變換在多個(gè)維度上挖掘數(shù)據(jù)特征,然后在不同時(shí)間尺度上將數(shù)據(jù)進(jìn)行分組并使用注意力機(jī)制和兩層LSTM模型提取時(shí)間序列數(shù)據(jù)前后關(guān)聯(lián)特征,該方法較其他方法提升明顯.綜上所述,OCSVM、EGAN和Bi-GAN因?yàn)榉椒ū旧硐拗魄覜](méi)有考慮時(shí)間序列前后關(guān)聯(lián)性,所以在檢測(cè)結(jié)果上較差;MAD-GAN方法在精確率上最好,達(dá)到92.68%,但是召回率和F1分?jǐn)?shù)表現(xiàn)一般;本文提出的WAGAN方法因?yàn)槭褂昧硕鄬与x散小波變換來(lái)增強(qiáng)原始數(shù)據(jù),所以檢測(cè)樣本的異常會(huì)被擴(kuò)大,這使得模型更容易識(shí)別出異常樣本同時(shí)也較容易將正常樣本誤判.雖然WAGAN方法精確率較MAD-GAN方法略低,為89.60%,但是召回率達(dá)到99.65%,F(xiàn)1分?jǐn)?shù)達(dá)到94.36%,較MAD-GAN方法提升明顯.在ICS異常檢測(cè)中,以略低的精確率來(lái)?yè)Q取更高的召回率來(lái)保證工控入侵檢測(cè)系統(tǒng)的低漏報(bào)率和穩(wěn)定性是十分值得的.
表2 不同方法異常檢測(cè)結(jié)果Table 2 Anomaly detection results of different methods
圖6 WAGAN模型檢測(cè)過(guò)程迭代圖
WAGAN模型在異常檢測(cè)時(shí)會(huì)依次讀取訓(xùn)練過(guò)程中每一次迭代的生成器和判別器模型,并根據(jù)待檢測(cè)的樣本來(lái)擬合最接近檢測(cè)樣本的隨機(jī)噪聲進(jìn)行異常檢測(cè).圖6是WAGAN模型100次迭代過(guò)程的檢測(cè)結(jié)果,從圖中可以看出WAGAN模型具有很高的穩(wěn)定性.如圖6(a)為WAGAN模型100次迭代的精確率圖,精確率一直在88%以上振蕩,當(dāng)?shù)降?2次時(shí)達(dá)到最大值89.60%;圖6(b)為WAGAN模型100次迭代的召回率圖,本方法通過(guò)多層離散小波變換分解重組將數(shù)據(jù)特征增強(qiáng)能有效識(shí)別出異常,召回率基本穩(wěn)定在99%以上;圖6(c)為WAGAN模型100次迭代的F1分?jǐn)?shù)圖,由于本方法召回率基本維持在99%以上,因此F1的波動(dòng)受精確率的影響,振蕩也與其相似,當(dāng)?shù)降?2次時(shí)達(dá)到最大值94.36%.
WAGAN模型在檢測(cè)異常樣本時(shí),生成器根據(jù)輸入樣本得到重構(gòu)誤差,判別器根據(jù)輸入樣本得到判別器誤差,重構(gòu)誤差和判別器誤差的權(quán)重和即為檢測(cè)樣本異常分?jǐn)?shù),通過(guò)比較異常分?jǐn)?shù)和閾值τ來(lái)判斷檢測(cè)樣本是否為異常.如圖7所示,本文選取了0.2-0.7共6個(gè)閾值,并根據(jù)評(píng)估指標(biāo)F1分?jǐn)?shù)來(lái)判斷WAGAN模型的異常檢測(cè)性能.當(dāng)τ的值為0.6時(shí),WAGAN模型的F1分?jǐn)?shù)在100次迭代中整體最高且基本穩(wěn)定在90%以上.
圖7 不同閾值τ下WAGAN模型F1分?jǐn)?shù)圖
本文提出WAGAN模型來(lái)檢測(cè)工控系統(tǒng)異常,根據(jù)生成器數(shù)值可能出現(xiàn)波動(dòng)采用多級(jí)離散小波變換分解重組的方式去除噪聲并增強(qiáng)數(shù)據(jù)特征,并使用注意力機(jī)制來(lái)提取有效特征.根據(jù)時(shí)間序列前后關(guān)聯(lián)性將原始數(shù)據(jù)進(jìn)行分組并使用LSTM網(wǎng)絡(luò)學(xué)習(xí)數(shù)據(jù)的潛在關(guān)聯(lián)性.在檢測(cè)階段,生成器根據(jù)測(cè)試樣本尋找與其最接近的隨機(jī)噪聲并得到重構(gòu)誤差,判別器根據(jù)測(cè)試樣本得到判別器誤差,WAGAN模型將兩者的權(quán)重和與閾值比較判斷測(cè)試樣本是否異常.為了驗(yàn)證模型性能,將WAGAN模型應(yīng)用在真實(shí)的SWaT數(shù)據(jù)集上,并與其他同類(lèi)方法進(jìn)行對(duì)比.根據(jù)實(shí)驗(yàn)結(jié)果可知,本文方法異常檢測(cè)性能更好且穩(wěn)定.