鄭燦偉,李世明,2,王禹賀,杜 軍,倪蘊(yùn)濤,趙 艷
1(哈爾濱師范大學(xué) 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,哈爾濱 150025)2(上海市信息安全綜合管理技術(shù)研究重點(diǎn)實(shí)驗(yàn)室,上海 200240)3(洛陽(yáng)師范學(xué)院 信息技術(shù)學(xué)院,河南 洛陽(yáng) 471934) E-mail:hsdlsm@163.com
工業(yè)控制系統(tǒng)(Industrial Control System,ICS)被應(yīng)用于電力、石油化工、制造業(yè)和和交通運(yùn)輸?shù)阮I(lǐng)域[1].此外,其在國(guó)家的關(guān)鍵基礎(chǔ)設(shè)施中也發(fā)揮著重要作用,如水利系統(tǒng)、金融系統(tǒng)和通信系統(tǒng)等.因此,ICS的安全性直接影響一個(gè)國(guó)家的經(jīng)濟(jì)命脈和社會(huì)穩(wěn)定.
隨著信息技術(shù)的快速發(fā)展和ICS網(wǎng)絡(luò)協(xié)議逐漸趨于標(biāo)準(zhǔn)化,工業(yè)化與信息化的融合也更加緊密.最初,ICS是隔離存在的系統(tǒng),故沒(méi)有充分考慮連接外部網(wǎng)絡(luò)后的安全問(wèn)題.現(xiàn)在,ICS與外部的連接逐漸頻繁,潛在的網(wǎng)絡(luò)安全問(wèn)題也逐漸暴露出來(lái).近年來(lái),世界ICS受到的網(wǎng)絡(luò)攻擊的次數(shù)顯著增加.2021年美國(guó)最大油氣管道遭受網(wǎng)絡(luò)攻擊,被迫關(guān)閉數(shù)天,引起美國(guó)汽油市場(chǎng)的波動(dòng);2018年臺(tái)積電的工廠和運(yùn)營(yíng)網(wǎng)絡(luò)遭受病毒攻擊,造成生產(chǎn)線的停滯;以及2015年烏克蘭電網(wǎng)遭受攻擊,導(dǎo)致數(shù)百萬(wàn)人在圣誕節(jié)期間陷入黑暗,等等.此外,據(jù)美國(guó)權(quán)威統(tǒng)計(jì)機(jī)構(gòu)統(tǒng)計(jì),僅在2010—2013年間,ICS應(yīng)急響應(yīng)小組累計(jì)響應(yīng)了600多起ICS安全事件,且年均安全事件呈現(xiàn)急劇上升趨勢(shì)[2].針對(duì)ICS的安全性問(wèn)題,權(quán)威組織提出相關(guān)標(biāo)準(zhǔn)和建議.2018年,ISA99委員會(huì)發(fā)布了ISA/IEC 62443安全標(biāo)準(zhǔn),該標(biāo)準(zhǔn)建議采用靈活的框架,以解決ICS中當(dāng)前和未來(lái)的安全漏洞[3].當(dāng)然,為了確保工業(yè)生產(chǎn)的穩(wěn)定性,制定相應(yīng)標(biāo)準(zhǔn)的同時(shí),還需要防范ICS被惡意入侵.因此,入侵檢測(cè)技術(shù)作為研究的熱點(diǎn),入侵檢測(cè)模型作為入侵檢測(cè)技術(shù)中的重要方法再次成為關(guān)注的焦點(diǎn).
入侵檢測(cè)模型適用于不同的場(chǎng)景.根據(jù)應(yīng)用場(chǎng)景不同,模型需要做出相應(yīng)的調(diào)整.基于深度學(xué)習(xí)[4-6]和機(jī)器學(xué)習(xí)[7,8]的傳統(tǒng)入侵檢測(cè)模型作為一種可靠的異常數(shù)據(jù)檢測(cè)方法,在傳統(tǒng)網(wǎng)絡(luò)中可以高準(zhǔn)確率的識(shí)別出攻擊類(lèi)型數(shù)據(jù).但是,工控場(chǎng)景中的數(shù)據(jù)具有不平衡、維度高、攻擊數(shù)據(jù)類(lèi)型復(fù)雜多樣的特點(diǎn),并且ICS對(duì)模型的分類(lèi)時(shí)間也有特殊要求.因此,需要對(duì)傳統(tǒng)入侵檢測(cè)模型進(jìn)行改進(jìn),以適用于工控場(chǎng)景.近年來(lái),基于工控應(yīng)用場(chǎng)景的特點(diǎn),借鑒傳統(tǒng)入侵檢測(cè)模型的思想,一些學(xué)者提出許多適用于ICS的入侵檢測(cè)模型.
針對(duì)數(shù)據(jù)不平衡問(wèn)題,傳統(tǒng)解決方式還有過(guò)采樣[9]、欠采樣[10]和SMOTE.但是,過(guò)采樣雖然可以擴(kuò)展小樣本的數(shù)量,提升模型分類(lèi)效果,但是會(huì)產(chǎn)生過(guò)擬合的現(xiàn)象.欠采樣通過(guò)刪除樣本的方式,提升模型分類(lèi)效果,同時(shí)也會(huì)增大丟失重要大樣本數(shù)據(jù)的概率.SMOTE方式增大了類(lèi)邊界重疊的概率,會(huì)生成一些無(wú)效樣本.文獻(xiàn)[11]使用改進(jìn)Border-SMOTE降低數(shù)據(jù)的不平衡性對(duì)模型檢測(cè)準(zhǔn)確率的影響,提升了分類(lèi)模型TWSVM對(duì)攻擊樣本的識(shí)別能力,但是模型對(duì)復(fù)雜攻擊類(lèi)型的效果有待驗(yàn)證.針對(duì)模型分類(lèi)時(shí)間問(wèn)題,文獻(xiàn)[12]使用改進(jìn)鯨魚(yú)算法優(yōu)化模型參數(shù)的方式,加快了模型的收斂速度,進(jìn)而減少分類(lèi)時(shí)間;文獻(xiàn)[13]通過(guò)包含隨機(jī)森林在內(nèi)的多組對(duì)比實(shí)驗(yàn),證明簡(jiǎn)單模型收斂速度快;但是,以上均沒(méi)有解決數(shù)據(jù)不平衡的問(wèn)題.OCSVM具有較快的收斂速度,但是模型準(zhǔn)確率較低[14].Dong H等人將單一的SVM應(yīng)用于Modbus TCP/IP協(xié)議下的ICS內(nèi),取得了較好的實(shí)驗(yàn)效果,但是難以解決多分類(lèi)問(wèn)題[15].針對(duì)模型分類(lèi)準(zhǔn)確率的問(wèn)題,石樂(lè)義、朱紅強(qiáng)等人[16]提出了基于相關(guān)信息熵的CNN-BiLSTM入侵檢測(cè)模型,將信息熵用于特征選擇,CNN-BiLSTM模型用于數(shù)據(jù)分類(lèi),提升了模型準(zhǔn)確率和收斂速度,但是模型的超參數(shù)多,不易訓(xùn)練;文獻(xiàn)[17]集成深度神經(jīng)網(wǎng)絡(luò)DNN和決策樹(shù)DT來(lái)用于檢測(cè)攻擊型數(shù)據(jù),在兩個(gè)數(shù)據(jù)集上證明其適用性,模型可以高準(zhǔn)確率的識(shí)別出正常數(shù)據(jù)和攻擊數(shù)據(jù),但是模型分類(lèi)效果僅局限于二分類(lèi)問(wèn)題.
綜上所述,雖然現(xiàn)存模型在ICS中取得了較好的檢測(cè)效果,但是依然存在諸多缺陷:1)沒(méi)解決數(shù)據(jù)不平衡問(wèn)題或解決數(shù)據(jù)不平衡問(wèn)題的方式存在問(wèn)題使得小樣本數(shù)據(jù)檢測(cè)率降低,數(shù)據(jù)分類(lèi)偏向于大樣本數(shù)據(jù);2)使用簡(jiǎn)單模型進(jìn)行分類(lèi),模型收斂速度快,但是準(zhǔn)確率較低且不適用于多分類(lèi)問(wèn)題;3)超參數(shù)較多的分類(lèi)模型,準(zhǔn)確率較高,但是不易訓(xùn)練,分類(lèi)時(shí)間較長(zhǎng).
針對(duì)上述問(wèn)題,本文將條件生成對(duì)抗網(wǎng)絡(luò)(CGAN)[18]和深度森林(Deep Forest)[19]相組合,融合兩者優(yōu)點(diǎn),提出一種綜合效果較好的CGAN-Deep Forest入侵檢測(cè)模型.模型在解決數(shù)據(jù)不平衡問(wèn)題的基礎(chǔ)上,具有準(zhǔn)確率高、小樣本檢測(cè)率高、分類(lèi)速度快的特點(diǎn).在Gas數(shù)據(jù)集上,通過(guò)與隨機(jī)森林和深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)比實(shí)驗(yàn),模型有效性和創(chuàng)新型得到驗(yàn)證.
生成對(duì)抗網(wǎng)絡(luò)(GAN)[20]是由Goodfelllow提出的一種借鑒零和博弈思想的數(shù)據(jù)生成模型,后被用于解決數(shù)據(jù)不平衡問(wèn)題[21-24].條件生成對(duì)抗網(wǎng)絡(luò)(CGAN)作為GAN的改進(jìn)模型,其結(jié)構(gòu)依然由生成器(G)和判別器(D)兩部分組成[25],如圖1所示.
圖1 CGAN模型結(jié)構(gòu)Fig.1 CGAN model structure
其中隨機(jī)變量x表示真實(shí)數(shù)據(jù),y表示數(shù)據(jù)標(biāo)簽,z表示噪聲數(shù)據(jù).CGAN與GAN上的不同之處在于生成器和判別器中分別加入條件標(biāo)簽y,可以定向生成指定類(lèi)型的數(shù)據(jù),完成數(shù)據(jù)的定向擴(kuò)充,彌補(bǔ)了GAN隨機(jī)生成數(shù)據(jù)的缺點(diǎn)[26].CGAN模型中生成器可接收噪聲及其標(biāo)簽(z|y),輸出生成數(shù)據(jù)G(z|y).判別器可接收生成數(shù)據(jù)G(z|y)、真實(shí)數(shù)據(jù)及其標(biāo)簽(x|y),并輸出損失函數(shù)對(duì)應(yīng)的數(shù)值用于反映輸入數(shù)據(jù)的真實(shí)性,該數(shù)值可進(jìn)一步指導(dǎo)模型參數(shù)更新.上述博弈過(guò)程中生成器和判別器交替訓(xùn)練、迭代更新,達(dá)到動(dòng)態(tài)平衡時(shí)價(jià)值函數(shù)收斂到0.5左右,此時(shí)模型趨于穩(wěn)定,生成器生成的數(shù)據(jù)接近于真實(shí)數(shù)據(jù).CGAN模型的數(shù)學(xué)表達(dá)式如公式(1)所示:
z~pz(z)[log(1-D(G(z|y)))]
(1)
如公式(1)所示,CGAN模型訓(xùn)練分兩步進(jìn)行:1)固定生成器G不動(dòng),調(diào)整判別器D來(lái)最大化價(jià)值函數(shù)V(D,G),讓判別器完成真實(shí)數(shù)據(jù)與生成數(shù)據(jù)的區(qū)分;2)固定判別器D不動(dòng),調(diào)整生成器G來(lái)最小化價(jià)值函數(shù)V(D,G),讓生成器盡可能生成判別器無(wú)法輕易識(shí)別的數(shù)據(jù).兩步交替進(jìn)行,直至達(dá)到動(dòng)態(tài)平衡為止.
深度森林作為一種深度學(xué)習(xí)算法,由多粒度掃描和級(jí)聯(lián)森林兩部分組成[27].多粒度掃描時(shí),首先對(duì)輸入數(shù)據(jù)進(jìn)行切分,其次將切分后的數(shù)據(jù)輸入到由隨機(jī)森林和完全隨機(jī)森林組成的森林層進(jìn)行處理,最后將處理后的特征向量輸入到級(jí)聯(lián)森林并進(jìn)行下一步處理.級(jí)聯(lián)森林的各層分別由隨機(jī)森林和完全隨機(jī)森林組成,其對(duì)多粒度掃描輸出的特征向量進(jìn)行逐層處理,最后用輸出概率向量表示分類(lèi)結(jié)果.
多粒度掃描借鑒卷積神經(jīng)網(wǎng)絡(luò)中卷積核的思想,具有對(duì)數(shù)據(jù)特征進(jìn)行不同尺度提取的優(yōu)點(diǎn)[28].多粒度掃描善于提取原始數(shù)據(jù)間的空間關(guān)系,所以當(dāng)數(shù)據(jù)為圖像格式時(shí)可以較好的發(fā)揮它的優(yōu)勢(shì);但是,在入侵檢測(cè)領(lǐng)域產(chǎn)生的數(shù)據(jù)通常都是結(jié)構(gòu)序列化數(shù)據(jù),因此特征間的關(guān)系不像圖像那樣突出.故在多粒度掃描時(shí)用不同大小的窗口和指定步長(zhǎng),對(duì)輸入數(shù)據(jù)特征信息進(jìn)行不同尺度的提取,不同大小的窗口可以增強(qiáng)數(shù)據(jù)的表現(xiàn)能力,增強(qiáng)數(shù)據(jù)特征間的關(guān)聯(lián)性,從而進(jìn)一步保證分類(lèi)準(zhǔn)確率.
級(jí)聯(lián)森林借鑒深度神經(jīng)網(wǎng)絡(luò)分層的思想,通過(guò)逐層處理獲取更多的潛在信息,逐步逼近正確分類(lèi)結(jié)果.因?yàn)橛?xùn)練層沒(méi)有使用卷積神經(jīng)網(wǎng)絡(luò),取而代之的是由決策樹(shù)[29]組成的森林層.決策樹(shù)作為基分類(lèi)器,通過(guò)集成學(xué)習(xí)方式將多個(gè)弱分類(lèi)器集合在一塊,構(gòu)成一個(gè)強(qiáng)分類(lèi)器,多個(gè)強(qiáng)分類(lèi)器作為一個(gè)訓(xùn)練層進(jìn)行分類(lèi)處理.所以,級(jí)聯(lián)森林的訓(xùn)練層參數(shù)少,計(jì)算復(fù)雜度低.
為了在保證準(zhǔn)確率的前提下,解決數(shù)據(jù)不平衡問(wèn)題,提高小樣本檢測(cè)率,降低整體模型的復(fù)雜度,減少分類(lèi)時(shí)間,本文提出基于CGAN-Deep Forest的工業(yè)控制系統(tǒng)入侵檢測(cè)框架,該框架主要由數(shù)據(jù)預(yù)處理和入侵檢測(cè)模型兩部分組成,其中入侵檢測(cè)模型又主要由CGAN和Deep Forest組成.本文入侵檢測(cè)模型的整體執(zhí)行流程為:首先,將ICS原始數(shù)據(jù)集進(jìn)行預(yù)處理,使其符合本文模型可接受的數(shù)據(jù)類(lèi)型;然后,將預(yù)處理后的數(shù)據(jù)放入CGAN中,對(duì)小樣本數(shù)據(jù)定向擴(kuò)充;最后,將擴(kuò)充后的數(shù)據(jù)集進(jìn)行特征提取后,輸入Deep Forest進(jìn)行數(shù)據(jù)分類(lèi),輸出分類(lèi)結(jié)果.
數(shù)據(jù)預(yù)處理一般情況下可分為數(shù)值化、標(biāo)準(zhǔn)化和歸一化.因本文所用數(shù)據(jù)集中無(wú)字符型屬性,故無(wú)需進(jìn)行one-hot編碼和數(shù)值化,只需進(jìn)行標(biāo)準(zhǔn)化和歸一化.
1)標(biāo)準(zhǔn)化:原始數(shù)據(jù)通過(guò)公式(2)進(jìn)行標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化處理之后將會(huì)加快模型梯度下降速度,進(jìn)而提高分類(lèi)精度.其中x表示原始數(shù)據(jù),μ表示均值,σ表示方差,z表示標(biāo)準(zhǔn)化處理后的結(jié)果.
(2)
2)歸一化:標(biāo)準(zhǔn)化完成以后,通過(guò)公式(3)將標(biāo)準(zhǔn)化數(shù)據(jù)映射在區(qū)間[-1,1]內(nèi)來(lái)消除數(shù)據(jù)量綱影響,使其符合模型的輸入,保證模型的準(zhǔn)確率.
(3)
CGAN作為一種特殊的深度學(xué)習(xí)模型,是一種數(shù)據(jù)生成模型而不是數(shù)據(jù)分類(lèi)模型.模型可以在生成器和判別器對(duì)抗過(guò)程中逐漸生成無(wú)限接近于真實(shí)數(shù)據(jù)的生成數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的定向擴(kuò)充.若數(shù)據(jù)是非平衡數(shù)據(jù),則可以使用CGAN來(lái)解決數(shù)據(jù)不平衡問(wèn)題,降低數(shù)據(jù)不平衡性對(duì)模型檢測(cè)率的影響,提高模型檢測(cè)的準(zhǔn)確率.
深度森林作為一種深度學(xué)習(xí)模型,與其它深度學(xué)習(xí)模型相比,具有超參數(shù)少、深度動(dòng)態(tài)增加、準(zhǔn)確率較高的特點(diǎn)[30].在本文入侵檢測(cè)模型中深度森林擔(dān)當(dāng)分類(lèi)器的角色,可以在保證較高準(zhǔn)確率的前提下?lián)碛懈斓哪P陀?xùn)練速度,降低數(shù)據(jù)分類(lèi)時(shí)間.
圖2 CGAN-Deep Forest模型結(jié)構(gòu)Fig.2 CGAN-Deep Forest model structure
鑒于ICS接收的數(shù)據(jù)具有非平衡性、攻擊類(lèi)型復(fù)雜和維度高的特點(diǎn),以及CGAN和深度森林所具有的優(yōu)良性能.CGAN可以實(shí)現(xiàn)數(shù)據(jù)的定向擴(kuò)充,生成小樣本數(shù)據(jù);深度森林作為分類(lèi)模型而言,具有準(zhǔn)確率高、易訓(xùn)練、小樣本檢測(cè)率高的特點(diǎn),適用于攻擊類(lèi)型復(fù)雜的工控環(huán)境,具有較好的綜合解決問(wèn)題的能力.本文充分整合CGAN和DeepForest兩個(gè)單一模型的優(yōu)點(diǎn),創(chuàng)建適用于ICS的入侵檢測(cè)模型CGAN-DeepForest,模型結(jié)構(gòu)如圖2所示.
將預(yù)處理后的Gas數(shù)據(jù)集輸入CGAN模型,按照指定的迭代次數(shù),完成CGAN模型的訓(xùn)練.然后,根據(jù)數(shù)據(jù)分布情況,輸入數(shù)據(jù)標(biāo)簽,借助訓(xùn)練完成的CGAN模型完成數(shù)據(jù)的定向擴(kuò)充.再將擴(kuò)充后的小樣本數(shù)據(jù)集與預(yù)處理后的Gas數(shù)據(jù)集進(jìn)行混合,對(duì)混合后的數(shù)據(jù)集進(jìn)行特征提取并按比例分成訓(xùn)練集和測(cè)試集,然后用訓(xùn)練集訓(xùn)練深度森林模型;訓(xùn)練結(jié)束之后,用測(cè)試集測(cè)試訓(xùn)練完的模型,輸出數(shù)據(jù)的分類(lèi)結(jié)果.
3.2.1 數(shù)據(jù)定向擴(kuò)充
CGAN的生成器和判別器一般情況下是由全連接層組成的一種深度神經(jīng)網(wǎng)絡(luò).本文模型中的CGAN借鑒卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),對(duì)傳統(tǒng)CGAN進(jìn)行了改進(jìn),將判別器中的一個(gè)全連接層替換為卷積神經(jīng)網(wǎng)絡(luò)[31],通過(guò)卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì)可以增強(qiáng)數(shù)據(jù)的表達(dá)能力,進(jìn)而保證CGAN模型經(jīng)過(guò)較少的迭代次數(shù)就可以達(dá)到較穩(wěn)定的狀態(tài),生成符合要求的擴(kuò)充數(shù)據(jù),加快模型的收斂速度.CGAN的判別器所用卷積神經(jīng)網(wǎng)絡(luò)參數(shù)如表1所示.
表1 卷積神經(jīng)網(wǎng)絡(luò)參數(shù)Table 1 Convolutional layer parameters
本文模型使用CGAN對(duì)數(shù)據(jù)集中的小樣本數(shù)據(jù)進(jìn)行定量擴(kuò)充,使數(shù)據(jù)集接近平衡狀態(tài).具體步驟如下:
Step1.數(shù)據(jù)預(yù)處理以后,按照指定的迭代次數(shù),分批次訓(xùn)練CGAN模型.將處理后的數(shù)據(jù)集分批次按照CGAN的輸入格式輸入CGAN模型進(jìn)行訓(xùn)練,完整遍歷一次數(shù)據(jù)集記為一次迭代.
Step2.訓(xùn)練過(guò)程中,將真實(shí)數(shù)據(jù)與生成數(shù)據(jù)進(jìn)行混合.訓(xùn)練判別器過(guò)程中,記錄每一批次判別器的損失函數(shù)值,同時(shí)更新判別器的參數(shù).若完成一次迭代,需將一次迭代中的所有批次損失函數(shù)求均值后記錄.
Step3.訓(xùn)練過(guò)程中,每一批次數(shù)據(jù)完成判別器的訓(xùn)練,就需固定判別器,訓(xùn)練生成器.訓(xùn)練過(guò)程中記錄CGAN模型的損失函數(shù),同時(shí)更新生成器的參數(shù).若完成一次迭代時(shí),需將一次迭代中的所有批次損失函數(shù)求均值后記錄.
Step4.在判別器和生成器完成指定迭代間隔以后,按照需求設(shè)置類(lèi)別參數(shù)和數(shù)量參數(shù),對(duì)小樣本數(shù)據(jù)進(jìn)行定向擴(kuò)充,解決數(shù)據(jù)不平衡問(wèn)題,并將擴(kuò)充后的數(shù)據(jù)存儲(chǔ).判別器和生成器參數(shù)的更新過(guò)程中,若判別器損失函數(shù)達(dá)到0.5,則說(shuō)明達(dá)到動(dòng)態(tài)平衡,生成器生成的數(shù)據(jù)近似為真實(shí)數(shù)據(jù),此時(shí)的CGAN模型達(dá)到最佳狀態(tài).
Step5.完成一次迭代以后,若沒(méi)有達(dá)到指定的迭代次數(shù),則繼續(xù)交替執(zhí)行生成器和判別器,執(zhí)行Step 2-Step 3,直到完成指定的迭代次數(shù).否則,將最接近CGAN最佳狀態(tài)時(shí)產(chǎn)生的擴(kuò)充數(shù)據(jù)集與原數(shù)據(jù)集進(jìn)行混合,準(zhǔn)備用于訓(xùn)練Deep Forest模型.
3.2.2 訓(xùn)練DeepForest模型
CGAN完成對(duì)數(shù)據(jù)擴(kuò)充以后,緩解了數(shù)據(jù)不平衡性對(duì)分類(lèi)模型準(zhǔn)確率和檢測(cè)率的影響.使用隨機(jī)森林[32]對(duì)數(shù)據(jù)進(jìn)行特征提取后,借助Deep Forest對(duì)數(shù)據(jù)集進(jìn)行分類(lèi).Deep Forest訓(xùn)練過(guò)程分為多粒度掃描和級(jí)聯(lián)森林兩步,如圖3和圖4所示.
圖3 多粒度掃描Fig.3 Multi-grained scanning
圖4 級(jí)聯(lián)森林Fig.4 Cascade forest
Step2.級(jí)聯(lián)森林階段,若有標(biāo)簽信息,將連接信息分為訓(xùn)練集和驗(yàn)證集,其中訓(xùn)練集分別輸入深度森林層的隨機(jī)森林和完全隨機(jī)森林組成的森林層進(jìn)行模型訓(xùn)練,用驗(yàn)證數(shù)據(jù)對(duì)模型進(jìn)行驗(yàn)證.若驗(yàn)證輸出結(jié)果滿足要求,結(jié)束模型訓(xùn)練,若不滿足將訓(xùn)練輸出結(jié)果與連接信息進(jìn)行整合形成新的連接信息,對(duì)自動(dòng)增加森林層進(jìn)行訓(xùn)練.
Step3.級(jí)聯(lián)森林階段,若無(wú)標(biāo)簽信息,輸入信息為測(cè)試集.進(jìn)入測(cè)試階段,說(shuō)明模型訓(xùn)練達(dá)到所需的要求,模型訓(xùn)練完成,模型層數(shù)無(wú)需增加,只需用訓(xùn)練好的模型對(duì)輸入的測(cè)試集輸出結(jié)果進(jìn)行預(yù)測(cè)即可.
Step4.最后用測(cè)試集對(duì)模型進(jìn)行測(cè)試,選出最大概率所對(duì)應(yīng)的類(lèi)標(biāo)簽作為輸出結(jié)果,輸出混淆矩陣,按照指定評(píng)價(jià)指標(biāo)對(duì)模型分類(lèi)效果進(jìn)行評(píng)估.
1)實(shí)驗(yàn)環(huán)境:編譯軟件為PyCharm編輯器,運(yùn)行環(huán)境為Python3.6,使用框架為T(mén)ensorFlow1.14、Keras2.3.1、Sklearn0.23.2,適用處理器為IntelCoreI54200H,內(nèi)存為8GBDDR3L.
2)數(shù)據(jù)集:本文使用數(shù)據(jù)集Gas來(lái)自密西西比州立大學(xué)搭建的天然氣管道實(shí)驗(yàn)平臺(tái),采集自天然氣管道控制系統(tǒng)網(wǎng)絡(luò)層的數(shù)據(jù)信息,經(jīng)過(guò)數(shù)據(jù)清洗以后形成數(shù)據(jù)集Gas.本文所用數(shù)據(jù)集為Gas數(shù)據(jù)集總量的10%,數(shù)據(jù)類(lèi)型分為8類(lèi),1類(lèi)正常數(shù)據(jù),7類(lèi)異常數(shù)據(jù),每條數(shù)據(jù)記錄包含26列固定屬性特征和1列標(biāo)簽屬性,數(shù)據(jù)分布如表2所示.
表2 數(shù)據(jù)分布Table 2 Data distribution
其中Category為攻擊類(lèi)型,Label為類(lèi)標(biāo)簽,Count為各類(lèi)的統(tǒng)計(jì)數(shù)量,Imbalance為非平衡系數(shù)(大樣本類(lèi)與小樣本類(lèi)的比值)[33].由Imbalance系數(shù)可知Gas數(shù)據(jù)集是非平衡數(shù)據(jù)集,標(biāo)簽為0的數(shù)據(jù)為大樣本,標(biāo)簽為1,3,5,6的數(shù)據(jù)為小樣本.
在不考慮數(shù)據(jù)集的不平衡性對(duì)模型影響的前提下,傳統(tǒng)模型使用基于混淆矩陣的準(zhǔn)確率(Acc)、查準(zhǔn)率(Precision)、查全率(Recall)作為模型評(píng)價(jià)指標(biāo),但是數(shù)據(jù)不平衡時(shí)小樣本類(lèi)對(duì)Acc的影響較小,因此會(huì)有誤報(bào)情況的出現(xiàn).本文在考慮到數(shù)據(jù)非平衡性影響的前提下,在以上評(píng)價(jià)指標(biāo)基礎(chǔ)上又引入F1作為模型評(píng)價(jià)指標(biāo),F1同時(shí)兼顧查準(zhǔn)率和查全率,其為Precision和Recall的一種加權(quán)平均,可以綜合的評(píng)價(jià)模型的效果.本文所用評(píng)價(jià)指標(biāo)公式為(4)-公式(7):
(4)
(5)
(6)
(7)
其中TP代表混淆矩陣中正確分類(lèi)的正常樣本數(shù);FP代表混淆矩陣中錯(cuò)誤分類(lèi)的正常樣本數(shù);TN代表混淆矩陣中正確分類(lèi)的異常樣本數(shù);FN代表混淆矩陣中錯(cuò)誤分類(lèi)的異常樣本數(shù).
針對(duì)本文模型設(shè)計(jì)3組對(duì)比實(shí)驗(yàn),驗(yàn)證本文模型的有效性和創(chuàng)新性.第1組對(duì)比實(shí)驗(yàn):改進(jìn)CGAN前后對(duì)比實(shí)驗(yàn),證明卷積層可以增加數(shù)據(jù)的表達(dá)能力,使判別器具有較穩(wěn)定的收斂效果.第2組對(duì)比實(shí)驗(yàn):使用深度森林作為分類(lèi)器的CGAN平衡前后的對(duì)比實(shí)驗(yàn),證明CGAN在處理數(shù)據(jù)不平衡問(wèn)題方面的有效性.第3組對(duì)比實(shí)驗(yàn):使用改進(jìn)CGAN完成數(shù)據(jù)平衡之后,使用不同的分類(lèi)器,驗(yàn)證本文所用深度森林分類(lèi)器,綜合來(lái)說(shuō),具有較好的分類(lèi)效果.
4.3.1 改進(jìn)CGAN對(duì)比實(shí)驗(yàn)
CGAN在判別器和生成器對(duì)抗過(guò)程中逐漸達(dá)到平衡狀態(tài),平衡狀態(tài)時(shí)判別器準(zhǔn)確率在0.5附近,判別器無(wú)法判別數(shù)據(jù)的真實(shí)性,此時(shí)CGAN模型達(dá)到最佳狀態(tài),生成器生成的數(shù)據(jù)最接近真實(shí)數(shù)據(jù).但是,原始CGAN不穩(wěn)定收斂于0.5附近,鑒于卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),故本文使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)CGAN判別器進(jìn)行改進(jìn),改進(jìn)前后對(duì)比如圖5所示.
圖5 CGAN改進(jìn)前后收斂狀態(tài)對(duì)比Fig.5 CGAN improves the convergence state comparison before and after
改進(jìn)之后,雖然也是在0.5附近波動(dòng),但是CGAN收斂更加穩(wěn)定,明顯更接近穩(wěn)定于0.5.可以證明CGAN中添加卷積改進(jìn)后,生成數(shù)據(jù)效果會(huì)更好.并且,當(dāng)改進(jìn)CGAN迭代到第55次時(shí),生成的數(shù)據(jù)最接近真實(shí)數(shù)據(jù),因此接下來(lái)實(shí)驗(yàn)選用改進(jìn)CGAN的第55次訓(xùn)練結(jié)果對(duì)數(shù)據(jù)集小樣本類(lèi)進(jìn)行擴(kuò)充.
4.3.2 CGAN平衡前后對(duì)比實(shí)驗(yàn)
對(duì)使用數(shù)據(jù)集的數(shù)據(jù)種類(lèi)進(jìn)行分類(lèi)統(tǒng)計(jì),表明本文使用數(shù)據(jù)集為非平衡數(shù)據(jù)集,標(biāo)簽為1、3、5和6數(shù)據(jù)較少.因此,使用改進(jìn)的CGAN對(duì)標(biāo)簽為1、3、5、6的小樣本類(lèi)分別進(jìn)行擴(kuò)充,進(jìn)行本階段實(shí)驗(yàn).在數(shù)據(jù)不平衡問(wèn)題被解決前后,分別將數(shù)據(jù)集的80%作為訓(xùn)練集,20%作為測(cè)試集,以深度森林作為分類(lèi)模型,進(jìn)行對(duì)比實(shí)驗(yàn).
在沒(méi)進(jìn)行數(shù)據(jù)平衡處理之前,分類(lèi)模型總準(zhǔn)確率為92%,時(shí)間消耗為28.02s,NMRI、MFCI和Dos攻擊的查準(zhǔn)率、查全率和F1均為0,具體分類(lèi)實(shí)驗(yàn)結(jié)果如表3所示.
對(duì)數(shù)據(jù)平衡處理,需要對(duì)數(shù)據(jù)進(jìn)行定量擴(kuò)充.為了尋找最佳擴(kuò)充量,對(duì)比以下3種擴(kuò)充方案.
方案1.對(duì)標(biāo)簽為1、5、6的小樣本分別擴(kuò)充750、1000和800條數(shù)據(jù),標(biāo)簽為3的數(shù)據(jù)不進(jìn)行擴(kuò)充,使部分小樣本在同一數(shù)量級(jí).經(jīng)過(guò)上述數(shù)據(jù)平衡處理之后,分類(lèi)模型總準(zhǔn)確率提高了3%,達(dá)到95%,時(shí)間消耗為48.83s,NMRI、MFCI和Dos的查準(zhǔn)率、查全率和F1分別接近提高95%、84%、90%;沒(méi)進(jìn)行數(shù)據(jù)擴(kuò)充的MSCI類(lèi)型實(shí)驗(yàn)結(jié)果變化不大,具體分類(lèi)實(shí)驗(yàn)結(jié)果如表4所示.
表4 CGAN平衡后Deep Forest分類(lèi)結(jié)果(Ⅰ)Table 4 Deep Forest classification results after CGAN equilibrium(Ⅰ)
表5 CGAN平衡后Deep Forest分類(lèi)結(jié)果(Ⅱ)Table 5 Deep Forest classification results after CGAN equilibrium(Ⅱ)
方案2.對(duì)標(biāo)簽為1、3、5、6的小樣本分別擴(kuò)充1000條數(shù)據(jù).經(jīng)上述數(shù)據(jù)平衡處理之后,模型總準(zhǔn)確率達(dá)到95%,時(shí)間消耗為63.85s,具體分類(lèi)實(shí)驗(yàn)結(jié)果如表5所示.
方案3.對(duì)標(biāo)簽為1、3、5、6的小樣本分別擴(kuò)充3000條數(shù)據(jù).經(jīng)上述數(shù)據(jù)平衡處理之后,模型總準(zhǔn)確率達(dá)到96%,時(shí)間消耗為247.78s,具體分類(lèi)實(shí)驗(yàn)結(jié)果如表6所示.
表6 CGAN平衡后Deep Forest分類(lèi)結(jié)果(Ⅲ)Table 6 Deep Forest classification results after CGAN equilibrium(Ⅲ)
以上4組實(shí)驗(yàn)結(jié)果表明,改進(jìn)CGAN在處理數(shù)據(jù)不平衡方面起到了較好的作用,數(shù)據(jù)的定向擴(kuò)充可以提高不同類(lèi)型小樣本檢測(cè)率.但是,對(duì)比擴(kuò)充方案1、方案2和方案3可知隨著小樣本數(shù)據(jù)量的增多小樣本檢測(cè)效果不再明顯提高,時(shí)間成本卻在顯著增加.基于上述情況,后續(xù)實(shí)驗(yàn)使用方案1對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充,驗(yàn)證本文模型綜合效果.
4.3.3 不同分類(lèi)器對(duì)比實(shí)驗(yàn)
本階段,通過(guò)使用平衡處理之后的數(shù)據(jù)集和不同類(lèi)型的分類(lèi)器進(jìn)行對(duì)比實(shí)驗(yàn),進(jìn)一步證明模型的創(chuàng)新性.本文模型可以在解決數(shù)據(jù)不平衡問(wèn)題和提升小樣本檢測(cè)率的情況下,提高整體檢測(cè)準(zhǔn)確率,降低模型訓(xùn)練和分類(lèi)時(shí)間.
分類(lèi)模型選用機(jī)器學(xué)習(xí)中的隨機(jī)森林時(shí),分類(lèi)模型總準(zhǔn)確率達(dá)到89%,時(shí)間消耗為3.07s,具體分類(lèi)實(shí)驗(yàn)結(jié)果如表7所示.
表7 CGAN平衡后隨機(jī)深林分類(lèi)結(jié)果Table 7 Random deep forest classification results after CGAN equilibrium
通過(guò)對(duì)比表4和表7實(shí)驗(yàn)結(jié)果表明:模型使用隨機(jī)森林作為分類(lèi)器時(shí),雖然對(duì)小樣本具有檢測(cè)效果,且模型收斂速度較快,但是各攻擊類(lèi)型的查準(zhǔn)率、查全率和F1整體低于本文模型的實(shí)驗(yàn)結(jié)果.另外,與本文模型相比,其整體準(zhǔn)確率也低了6%.
分類(lèi)模型選用深度卷積神經(jīng)網(wǎng)絡(luò)時(shí),其迭代訓(xùn)練150次之后,整體準(zhǔn)確率為94%,訓(xùn)練時(shí)間為73.45s,迭代過(guò)程如圖6所示.與本文模型相比,兩者準(zhǔn)確率相近時(shí),準(zhǔn)確率都在94%附近,時(shí)間成本提升了50%,深度卷積神經(jīng)網(wǎng)絡(luò)分類(lèi)時(shí)間大約多25s.
通過(guò)以上多組對(duì)比實(shí)驗(yàn)可以證明,本文模型CGAN-Deep Forest綜合效果較好.通過(guò)CGAN平衡前后對(duì)比實(shí)驗(yàn),證明CGAN在復(fù)雜的工控環(huán)境中,依舊具有較強(qiáng)的解決數(shù)據(jù)不平衡問(wèn)題的能力.通過(guò)不同分類(lèi)器間的對(duì)比實(shí)驗(yàn),證明經(jīng)過(guò)平衡處理之后,深度森林可以充分發(fā)揮自身優(yōu)勢(shì),多項(xiàng)評(píng)價(jià)指標(biāo)最佳,綜合表現(xiàn)能力最好.因此,本文模型各組成部分充分發(fā)揮自身優(yōu)勢(shì),進(jìn)而充分保障整體模型可以同時(shí)解決數(shù)據(jù)不平衡問(wèn)題、準(zhǔn)確率問(wèn)題、小樣本檢測(cè)率問(wèn)題和分類(lèi)時(shí)間問(wèn)題.
目前,在工業(yè)控制領(lǐng)域存在許多入侵檢測(cè)模型,但是缺少一種綜合性的入侵檢測(cè)模型,可以兼顧處理多方面問(wèn)題.因此,本文提出入侵檢測(cè)模型CGAN-DeepForest,應(yīng)用于ICS的入侵檢測(cè)領(lǐng)域.模型各組成部分優(yōu)勢(shì)互補(bǔ),確保具有較強(qiáng)的綜合解決問(wèn)題的能力.首先,為了數(shù)據(jù)生成模型具有較為穩(wěn)定的效果,對(duì)原始CGAN進(jìn)行改進(jìn).然后,借助改進(jìn)CGAN來(lái)完成數(shù)據(jù)的定向擴(kuò)充,解決數(shù)據(jù)的不平衡問(wèn)題.最后,對(duì)平衡后的數(shù)據(jù)集使用隨機(jī)森林進(jìn)行特征提取后,使用準(zhǔn)確率高、小樣本檢測(cè)性能好、訓(xùn)練和分類(lèi)時(shí)間短的深度森林對(duì)數(shù)據(jù)進(jìn)行分類(lèi),輸出分類(lèi)結(jié)果.經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,在工業(yè)控制領(lǐng)域,CGAN-DeepForest模型可以取得了較好的效果.未來(lái)研究重點(diǎn)在于,進(jìn)一步改進(jìn)CGAN,使其震動(dòng)幅度減小,降低CGAN的發(fā)散可能性.在不同數(shù)據(jù)集上驗(yàn)證本文模型的有效性,證明模型的普適性.