顧兆軍,劉婷婷,2,隋 翯
(1.中國民航大學 信息安全測評中心,天津 300300;2.中國民航大學 計算機科學與技術學院,天津 300300;3.中國民航大學 航空工程學院,天津 300300)
工業(yè)控制系統(tǒng)(Industrial Control System,ICS)是國家關鍵基礎設施的核心[1],物理安全和網(wǎng)絡安全是其平穩(wěn)運行的必要條件[2]。然而隨著工業(yè)控制系統(tǒng)逐漸接入互聯(lián)網(wǎng),其網(wǎng)絡安全問題愈加凸顯[3-4]。工業(yè)控制系統(tǒng)網(wǎng)絡安全保障體系包括防護、檢測、響應和恢復4個層面[5],檢測是其中重要環(huán)節(jié),負責識別違反安全策略的行為或被攻擊的跡象[6-7],為告警和響應提供必要信息。
檢測從技術角度可分為誤用檢測和異常檢測[8]。異常檢測由于對未知攻擊的高效識別,受到研究人員的廣泛關注,基于統(tǒng)計分析、基于數(shù)據(jù)挖掘、基于特征匹配和基于機器學習等方面的異常檢測研究成果頗為豐富。近年,基于深度神經(jīng)網(wǎng)絡的異常檢測技術逐漸成為研究熱點[9-11]。自動編碼器網(wǎng)絡(AutoEncoder,AE)[12]、循環(huán)神經(jīng)網(wǎng)絡(Rerrent Neural Network,RNN)[13]、長短時記憶網(wǎng)絡(Long-Short Term Memory,LSTM)[14]、卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)[15]和深度自動編碼高斯混合網(wǎng)絡(Deep Autoencoding Gaussian Mixture Model,DAGMM)[16]等深度神經(jīng)網(wǎng)絡在應用中都取得了良好的效果。然而,工業(yè)控制系統(tǒng)的高實時性要求檢測方法準確率更高,誤報率更低;同時,工業(yè)控制系統(tǒng)中的類不平衡問題現(xiàn)象使分類器易于犧牲異常類來提高模型擬合能力,從而導致其準確率下降,泛化能力變差。
文獻[17]提出的生成式對抗網(wǎng)絡(Generative Adversarial Network,GAN)為工業(yè)控制系統(tǒng)異常檢測提供了全新視角。該模型通過生成器與鑒別器博弈,使生成器能夠不斷學習從隱空間到真實數(shù)據(jù)的映射,從而使生成數(shù)據(jù)更符合真實數(shù)據(jù)分布。但是傳統(tǒng)的生成式對抗網(wǎng)絡模型無法處理高維特征的圖像檢測問題,因此文獻[18]提出深度卷積生成式對抗網(wǎng)絡(AnoGAN),設計了從圖像到隱空間映射的異常評分方法,實現(xiàn)了醫(yī)療圖像異常識別,并成功分割出了圖像中的異常區(qū)域。針對時間序列多元異常檢測問題,文獻[19]將GAN與LSTM-RNN相結合,提出了一種新的MAD-GAN模型。該模型同時考慮整個變量集特性以捕獲變量之間的隱空間交互,在異常評分中也同時考慮鑒別損失和重構損失,在多個數(shù)據(jù)集上的實驗結果表明該模型不僅具有優(yōu)異的檢測性能,在維數(shù)縮減、迭代穩(wěn)定性等方面也具有獨特優(yōu)勢。文獻[20]的實驗研究也得到了類似的結論。然而,上述模型均為基于“單向”生成式對抗網(wǎng)絡模型的異常檢測方法,生成器需要學習真實數(shù)據(jù)對應的隱空間特征,即其先驗分布,從而導致檢測算法的時間復雜度很高,計算成本偏大。
為了提高隱空間特征的學習效果和學習效率,文獻[21]通過引入編碼器設計了雙向生成式對抗網(wǎng)絡(BiGAN),使模型具備學習真實數(shù)據(jù)到隱空間逆映射功能,為數(shù)據(jù)添加了隱空間特征“標簽”,從而使模型具備了分類能力,尤其是在圖像分類和識別方面具有突出優(yōu)勢。以雙向生成式對抗網(wǎng)絡模型為基礎,結合網(wǎng)絡入侵行為特征,文獻[22]率先提出高效異常檢測生成式對抗網(wǎng)絡方法(EGBAD),并實驗證明了該方法不僅適用于圖像數(shù)據(jù),在網(wǎng)絡入侵數(shù)據(jù)檢測中,尤其在時間復雜度方面具有優(yōu)異性能。進一步針對入侵檢測中的離散數(shù)據(jù),文獻[23]在BiGAN基礎上采用Dropout全連接網(wǎng)絡,并使用Wasserstein距離替代了交叉熵和JS散度,并提出一種由剩余損失加權求和計算鑒別損失的模型,使檢測準確率、召回率和F1得分都得到明顯提升。BiGAN模型雖然通過引入編碼器提高了真實數(shù)據(jù)得到對應的隱空間特征映射的學習能力,但處理數(shù)據(jù)類不平衡數(shù)據(jù)時,模型容易陷入局部最優(yōu)。
因此,文獻[24]提出了一種采用“編碼-解碼-編碼”三層子網(wǎng)結構作為生成器的生成式對抗網(wǎng)絡模型——GANomaly。該模型通過使原始數(shù)據(jù)和二次編碼后數(shù)據(jù)的隱空間向量之間距離最小化,來學習正常數(shù)據(jù)分布;并通過被檢測數(shù)據(jù)與該分布之間的距離評斷是否異常,從而進一步提升了算法的學習能力?;贕ANomaly思想,針對類不平衡數(shù)據(jù),文獻[25]提出異常分數(shù)由表觀損失和潛在損失共同構成,并利用該方法通過對滾動軸承基準數(shù)據(jù)分析,實現(xiàn)了對物理機構的故障診斷。
上述已有研究成果充分說明基于生成式對抗網(wǎng)絡的異常檢測模型在處理類不平衡數(shù)據(jù)時具有獨特優(yōu)勢。筆者提出了一種用于工業(yè)控制系統(tǒng)異常檢測的隱空間特征重構生成式對抗網(wǎng)絡模型——Latent Feature Reconstruction GAN(LFR-GAN)。在訓練階段,通過引入新的編碼器,學習生成數(shù)據(jù)到隱空間的映射,實現(xiàn)生成數(shù)據(jù)的隱空間特征重構,并嵌入SE Block(Sequeze and Excitation Block)模塊[26]提升有效特征權重,提高隱空間特征重構能力;鑒別器則同時鑒別兩個編碼器和一個生成器產(chǎn)生的3個數(shù)據(jù)對,加快模型收斂,提高模型精度和泛化能力。在檢測階段,綜合考慮重構和鑒別損失,借鑒WGAN-GP[27]研究思路,采用L2范數(shù)優(yōu)化異常評分公式,克服模式崩塌[28]問題。最后,在公開數(shù)據(jù)集SWaT[29]和WADI[30]上對LFR-GAN模型進行了驗證,并與AnoGAN、BiGAN和WGAN-GP等方法進行了對比。結果表明,從學習能力、檢測能力、穩(wěn)定性等方面,LFR-GAN模型都具有明顯的優(yōu)勢。
模型分為訓練和檢測兩個階段。在訓練階段,模型通過編碼器E1、E2和生成器G與鑒別器D不斷對抗,學習正常樣本的數(shù)據(jù)分布和隱空間特征。模型訓練完成之后,基于訓練模型對未知狀態(tài)的測試樣本進行異常檢測。通過特殊設計的異常評分公式,計算待測數(shù)據(jù)樣本的異常得分并排序,根據(jù)經(jīng)驗比例篩選出異常數(shù)據(jù),從而判斷待測數(shù)據(jù)是否異常。模型算法流程如圖1所示。
圖1 LFR-GAN異常檢測模型算法流程
訓練階段如圖2所示,數(shù)據(jù)空間輸入樣本x經(jīng)過編碼器E1編碼,得到其在隱空間的特征E1(x);同時隱空間隨機噪聲z經(jīng)過生成器G解碼,在數(shù)據(jù)空間得到生成樣本G(z);然后生成樣本G(z)進一步經(jīng)過編碼器E2編碼,得到生成數(shù)據(jù)在隱空間的重構特征E2(G(z))。從而,得到了3對由數(shù)據(jù)空間樣本和其隱空間特征組成的數(shù)據(jù)對——(x,E1(x)),(G(z),z)和(G(z),E2(G(z)))。鑒別器D通過鑒別這3個數(shù)據(jù)對得到鑒別損失,并根據(jù)鑒別損失逐步遞歸求解模型梯度,實現(xiàn)權重更新,反向優(yōu)化編碼器E1、E2和生成器G。
訓練過程中,對于生成器,其使生成樣本G(z)盡可能接近真實樣本x;對于編碼器E2,其使重構的隱空間特征E2(G(z))盡可能接近于真實樣本對應的隱空間特征E1(x);編碼器E1、E2以及生成器G通過與鑒別器D不斷對抗博弈實現(xiàn)迭代優(yōu)化,以使鑒別器越來越難以分辨這3個數(shù)據(jù)對的來源,使得生成數(shù)據(jù)趨近于真實數(shù)據(jù),隱空間的重構特征趨近于真實數(shù)據(jù)映射到隱空間的特征。
對于鑒別器,其目標是準確分辨出3個數(shù)據(jù)對的來源,并給出數(shù)據(jù)對來自于生成數(shù)據(jù)的可能性。當數(shù)據(jù)對來自真實數(shù)據(jù)(x,E1(x))時,鑒別器給出的數(shù)據(jù)對來自于生成數(shù)據(jù)可能性判據(jù)D(x,E1(x))應趨向于0,當數(shù)據(jù)對來自生成器(G(z),z)或(G(z),E2(G(z)))時,鑒別器給出的數(shù)據(jù)對來自于生成數(shù)據(jù)可能性判據(jù)D(G(z),z)和D(G(z),E2(G(z)))應趨向于1。
通過以上分析,該模型的訓練目標是實現(xiàn)一個最大最小二元博弈平衡:
(1)
而V(D,E1,E2,G)可表示為
V(D,E1,E2,G)=Ex~pX[Ez~pE1(·|x)‖D(x,z)‖w]+Ez~pZ[Ex~pG(·|z)‖1-D(x,z)‖w]+
(2)
圖2 LFR-GAN模型訓練過程示意圖
在訓練過程中,可以通過計算KID值[31](Kernel-Inception Distance)來評估模型學習訓練樣本分布的情況。KID值是真實樣本和生成樣本概率分布之間的差異,計算公式如下:
DKID=MMD(Pr,Pg) ,
(3)
其中,Pr為真實樣本的分布,Pg為生成樣本的分布,MMD(Pr,Pg)可表示為
(4)
(5)
其中,d為訓練集維數(shù)。
按式(3)~(5)可以計算隱空間特征z分布和真實數(shù)據(jù)編碼得到的隱空間特征E1(x)分布之間的KID值。KID值可以反映模型學習能力,KID值越小,表示兩個分布之間的差異越小,模型的學習能力越強。
模型訓練完成之后,將已訓練好的編碼器、生成器和鑒別器重組構成檢測模型,如圖3(a)所示。根據(jù)檢測模型產(chǎn)生的損失,使用異常評分公式來計算檢測數(shù)據(jù)的異常得分S:
S=λLG+(1-λ)LD,
(6)
其中,λ是一個常量,根據(jù)經(jīng)驗取0.2;LG為重構損失,用來衡量測試樣本和生成樣本的差異;LD為鑒別損失,用來衡量(x,E1(x))和(G(E1(x)),E2(G(E1(x))))兩個數(shù)據(jù)對特征匹配損失,以評估生成數(shù)據(jù)是否和真實數(shù)據(jù)有相同的特征。
圖3 LFR-GAN模型檢測過程示意圖
LG和LD的計算公式如下:
LG=‖x-G(E1(x))‖2,
(7)
LD=‖fD(x,E1(x))-fD(G(E1(x)),E2(G(E1(x)))‖2。
(8)
式(7)中的x為測試數(shù)據(jù),E1(x)表示該數(shù)據(jù)編碼后的隱空間特征,G(E1(x))表示將編碼器E1生成的隱空間特征解碼后的生成數(shù)據(jù)。式(8)中fD為嵌入鑒別器中的中間層,如圖3(b)所示,fD(·)為該中間層的輸出。L2范數(shù)對異常值更加敏感,更有利于得到穩(wěn)定解,因此采用L2范數(shù)對LG和LD兩個損失函數(shù)進行計算。通過以上計算,測試數(shù)據(jù)的異常評分越高,越有可能為異常。在計算出所有樣本的異常分數(shù)后,將數(shù)據(jù)按異常分數(shù)降序排列,根據(jù)經(jīng)驗預先設置異常比例,將異常分數(shù)處于該比例范圍內的樣本標記為異常。
實驗采用SWaT和WADI兩個公開數(shù)據(jù)集,SWaT(the Secure Water Treatment)是一個水處理操作實驗系統(tǒng),數(shù)據(jù)集采集了11天實驗數(shù)據(jù),其中最后4天里共發(fā)動36次攻擊。WADI(WAter DIstribution)是一個分布式跨區(qū)域水務管道系統(tǒng),連續(xù)16天采集了系統(tǒng)的網(wǎng)絡流量、傳感器和執(zhí)行器數(shù)據(jù),其中只有2天具有攻擊數(shù)據(jù),二者均是典型的類不平衡數(shù)據(jù)集。本實驗將兩個數(shù)據(jù)集均分成訓練集和測試集。兩個訓練集中所有數(shù)據(jù)均為正常樣本。兩個測試集異常樣本占比分別約為11.98%和5.99%,數(shù)據(jù)集詳細信息如表1所示。
表1 SWaT和WADI數(shù)據(jù)集情況
實驗使用Intel 酷睿i7 9750H處理器和NVDIA GeForce GTX 1650顯卡,于Tensor Flow 1.14.0架構在Python 3.6下實現(xiàn)。實驗采用Adam優(yōu)化器,學習率r=0.000 01,隱空間向量維度設為256,隱藏層維度設為128,訓練輪數(shù)根據(jù)經(jīng)驗設置為60。
首先,根據(jù)式(3)~(5)計算LFR-GAN模型在SWaT和WADI兩個數(shù)據(jù)集上的KID值隨迭代次數(shù)變化,來檢驗模型在訓練階段的學習能力,并與AnoGAN,WGAN-GP和BiGAN進行對比,結果如圖4所示。
由圖4可知,隨著迭代次數(shù)增加,LFR-GAN模型KID值基本處于0.1以下,明顯低于AnoGAN和WGAN-GP,與BiGAN相比也可以得到更低值,表明LFR-GAN模型得到的隱空間特征z分布和真實數(shù)據(jù)編碼得到的隱空間特征E1(x)分布間差異更小,模型的學習能力更強。在WADI數(shù)據(jù)集的初始學習階段,LFR-GAN模型KID值出現(xiàn)一些偏大值,是由于LFR-GAN模型在學習高維數(shù)據(jù)時尚未達到最優(yōu)結果;隨著迭代次數(shù)增加,LFR-GAN模型KID值逐漸回落到低值穩(wěn)定狀態(tài),模型表現(xiàn)出明顯的學習能力優(yōu)勢。
此外,隨迭代次數(shù)增加,除在WADI數(shù)據(jù)集的初始學習階段出現(xiàn)一些波動外,LFR-GAN模型KID值基本處于穩(wěn)定狀態(tài),而AnoGAN,WGAN-GP和BiGAN均出現(xiàn)較大幅度的波動且在實驗參數(shù)范圍內未見收斂趨勢。說明與上述3個模型相比,具有SE Block的LFR-GAN模型有更好的學習穩(wěn)定性,可以在更少的迭代次數(shù)下達到最佳學習狀態(tài)。
工業(yè)控制系統(tǒng)異常檢測注重檢測效率,異常的出現(xiàn)往往會造成巨大的損失,所以在檢測階段更關注召回率,并兼顧準確率、精確率和F1得分。實驗使用召回率、精確率和準確率來反映模型的檢測性能,F(xiàn)1得分作為召回率和精確率的調和平均,檢測結果如圖5所示。
由圖5可知,LFR-GAN模型在SWaT數(shù)據(jù)集上的召回率為0.971 7,在WADI數(shù)據(jù)集上的召回率為0.996 3,相比其他模型,LFR-GAN模型的召回率大概可以提高2%~8%。召回率提高意味著異常數(shù)據(jù)誤報率降低,LFR-GAN既可以更準確地識別異常樣本,提高系統(tǒng)的安全性,又可以兼顧系統(tǒng)的實時性,避免由于誤報率過高導致的系統(tǒng)無效響應。實驗結果表明,基于隱空間特征重構的LFR-GAN針對不平衡數(shù)據(jù)集,相比其他模型具有更好的檢測性能。
此外,LFR-GAN模型的準確率和精確率均高于其他模型,在SWaT數(shù)據(jù)集上的準確率為0.933 7,精確率為0.952 3;在WADI數(shù)據(jù)集上的準確率為0.970 6,精確率為0.976 9。相比其他模型,準確率提高了約5%~11%,精確率提高了約2%~7%。精確率提高意味著漏報率降低,LFR-GAN可以更好地預測異常數(shù)據(jù)。上述表明LFR-GAN無需使用異常樣本進行訓練,也可實現(xiàn)高準確率和高精確率。并且LFR-GAN模型的F1得分也高于其他模型,在SWaT數(shù)據(jù)集上的F1得分為0.956 4;在WADI數(shù)據(jù)集上的F1得分為0.971 5,相比其他模型,F(xiàn)1得分大概提高了3%~8%。F1得分作為模型的綜合評價指標,它同時考慮精確率和召回率,讓兩者達到一個平衡點。所以F1分數(shù)在一定程度上反映了模型的綜合性能和穩(wěn)定性,F(xiàn)1值越大,模型綜合性能和穩(wěn)定性越好,進一步說明了LFR-GAN模型的優(yōu)勢。
由于精確率-召回率曲線(Precision-Recall Curve,PR曲線)對樣本比例敏感,本實驗還使用PR曲線來衡量模型在類不平衡情況下的異常檢測性能,結果如圖6所示。
PR曲線可以用來對比分類器間的性能優(yōu)劣。由圖6可知,LFR-GAN在兩個數(shù)據(jù)集上的PR曲線均可包圍其他三個模型的PR曲線,曲線與坐標軸圍成的面積最大。因此,LFR-GAN模型的分類性能最優(yōu),BiGAN較好,WGAN-GP中等,AnoGAN性能最差??梢?,在類不平衡情況下,LFR-GAN模型的PR曲線更飽滿,對應的曲線下面積更大,分類性能更好,與圖5結果相一致。
實驗通過每次迭代得到的PRC AUC(Area Under Curve)值來反映模型在檢測階段的運行穩(wěn)定情況。PRC AUC值即為PR曲線下面積,它能夠說明模型在驗證階段的性能,面積越大,表示分類器的性能越好。在模型每次迭代后進入檢測階段,得到PRC AUC值并與AnoGAN、WGAN-GP和BiGAN進行對比,結果如圖7所示。
由圖7可知,從第一次迭代開始,LFR-GAN的運行數(shù)值一直高于其他模型,并處于上升的階段。模型趨于穩(wěn)定后,在WADI數(shù)據(jù)集上,LFR-GAN的PRC AUC值最優(yōu)時接近1。上述結果說明,模型趨于穩(wěn)定后,LFR-GAN模型運行的情況最好。此外,隨迭代次數(shù)增加,LFR-GAN模型基本在10次迭代內PRC AUC值達到最大,且運行平穩(wěn),而AnoGAN的值最低,WGAN-GP和BiGAN模型需迭代15~30次后才能達到穩(wěn)定。實驗證明了子網(wǎng)結構采用卷積神經(jīng)網(wǎng)絡的LFR-GAN能更好地提取樣本的局部特征,且具有隱空間特征重構的模型可用更少的迭代次數(shù)完成學習,達到最優(yōu)狀態(tài),模型具有更好的運行穩(wěn)定性。
為了更直觀地展示各模型異常檢測的效果,實驗分別在SWaT和WADI測試集隨機選取1 000個樣本點,根據(jù)設定的異常評分公式(式(6))計算每個樣本的異常評分,檢驗模型的分類能力,并與AnoGAN、WGAN-GP和BiGAN進行對比,結果如圖8和圖9所示。
LFR-GAN相比其他模型能更好地區(qū)分異常樣本,而AnoGAN和WGAN-GP均存在漏報的現(xiàn)象,BiGAN相對漏報率低,但沒有一個清晰的分類邊界??梢娕c其他模型相比,LFR-GAN特殊設計的異常評分公式,能夠更有效劃分正負樣本的界限。
筆者針對工業(yè)控制系統(tǒng)異常檢測工作中類不平衡問題,根據(jù)生成式對抗網(wǎng)絡架構,新增生成數(shù)據(jù)向其隱空間映射的編碼器,引入SE Block模塊,采用L2范數(shù)優(yōu)化異常評分公式,提出了LFR-GAN異常檢測模型,并在SWaT和WADI數(shù)據(jù)集上進行了性能驗證。
與AnoGAN,WGAN-GP和BiGAN的對比表明,LFR-GAN模型在處理類不平衡問題時,訓練過程全部使用正常樣本,但卻可以獲得更好的學習性能、檢測結果和模型穩(wěn)定性??梢奓FR-GAN模型魯棒性更強,穩(wěn)定性更好,具有很好的現(xiàn)實可用性和有效性。隨著檢測技術和設備性能不斷提升,計算能力和存儲能力不斷增強,LFR-GAN模型在ICS異常檢測中將更具有前景。