楊 杰,唐亞純,譚道軍,劉小兵
湖南科技學(xué)院電子與信息工程學(xué)院,湖南永州425199
隨著互聯(lián)網(wǎng)、人工智能和大數(shù)據(jù)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)安全面臨著前所未有的復(fù)雜威脅。當(dāng)前人們需要更強(qiáng)大、更有效的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(network intrusion detection system,NIDS)來(lái)檢測(cè)日益多樣而復(fù)雜的網(wǎng)絡(luò)入侵行為[1]。網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的目標(biāo)是通過(guò)分析網(wǎng)絡(luò)流量中是否存在惡意活動(dòng)來(lái)發(fā)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)中任何未經(jīng)授權(quán)的訪(fǎng)問(wèn)[2],其任務(wù)是建立一個(gè)能夠區(qū)分攻擊和正常網(wǎng)絡(luò)流的預(yù)測(cè)模型。因此,NIDS可以將入侵檢測(cè)轉(zhuǎn)化為模式識(shí)別和分類(lèi),利用相關(guān)算法對(duì)網(wǎng)絡(luò)中的各種行為進(jìn)行收集、清理、建模和分類(lèi)[3]。
經(jīng)過(guò)幾十年的發(fā)展,目前NIDS方法基于檢測(cè)方式的不同,可以分為基于特征檢測(cè)的方法和基于異常檢測(cè)的方法[4]?;谔卣鳈z測(cè)的方法[5]首先對(duì)各種攻擊模式進(jìn)行分析,提取攻擊特征,然后將特征加入到特征庫(kù)用于檢測(cè)新的攻擊,當(dāng)檢測(cè)樣本與特征庫(kù)信息匹配時(shí)即可判定為攻擊行為。這類(lèi)方法誤報(bào)率低,但具有一定的滯后性,只能檢測(cè)特征庫(kù)內(nèi)已有的攻擊模式,對(duì)新型攻擊的檢測(cè)率低?;诋惓z測(cè)的方法[6]通過(guò)建立概率統(tǒng)計(jì)模型,對(duì)正常信息流量樣本的模式進(jìn)行泛化描述并生成基準(zhǔn)模型,當(dāng)檢測(cè)樣本的模式與基準(zhǔn)模型不符時(shí)即可認(rèn)定為異常攻擊。該類(lèi)方法漏報(bào)率低,對(duì)新型攻擊具有一定的檢測(cè)能力,但是也存在檢測(cè)精度不夠的問(wèn)題。針對(duì)當(dāng)前入侵檢測(cè)方面面臨的問(wèn)題,許多研究學(xué)者提出了多種技術(shù)用于提高檢測(cè)方法的準(zhǔn)確度和穩(wěn)定性,其中大多數(shù)方法是通過(guò)降低誤報(bào)率和檢測(cè)未知攻擊來(lái)提高檢測(cè)精度[7]。隨著深度學(xué)習(xí)的出現(xiàn)和發(fā)展,手工定義特征的任務(wù)能夠被可訓(xùn)練的多層網(wǎng)絡(luò)所取代,從而在入侵檢測(cè)任務(wù)中能夠獲得較傳統(tǒng)機(jī)器學(xué)習(xí)更高的準(zhǔn)確性和更低的誤報(bào)率,因此各類(lèi)深度學(xué)習(xí)方法廣泛應(yīng)用于NIDS領(lǐng)域。Lin等[7]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)方法來(lái)進(jìn)行網(wǎng)絡(luò)入侵檢測(cè)的方法,該方法隨著訓(xùn)練樣本數(shù)目的增多而精度隨之提高。Almiani等[8]提出了一種基于多層遞歸神經(jīng)網(wǎng)絡(luò)的自動(dòng)入侵檢測(cè)系統(tǒng)用于抵御霧計(jì)算面臨的網(wǎng)絡(luò)攻擊。張思聰?shù)萚9]提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)(deep convolution neural network,dCNN)的入侵檢測(cè)方法,該方法最大的特點(diǎn)是將一維入侵?jǐn)?shù)據(jù)轉(zhuǎn)換為二維“圖像數(shù)據(jù)”用于訓(xùn)練網(wǎng)絡(luò),有效提升了入侵檢測(cè)系統(tǒng)的檢測(cè)精度。雖然準(zhǔn)確率和誤報(bào)率一直是NIDS研究的重點(diǎn),但是實(shí)時(shí)性和檢測(cè)效率也是一項(xiàng)很重要的指標(biāo)。在深度學(xué)習(xí)中,相較于其他神經(jīng)網(wǎng)絡(luò),自編碼器能夠有效地降低特征維度,并容易與其他模型相結(jié)合,在提高檢測(cè)精度的同時(shí),大大降低模型的訓(xùn)練時(shí)間。自編碼器作為一種無(wú)監(jiān)督學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò),由一個(gè)將輸入映射到一個(gè)隱藏層的編碼器函數(shù)和一個(gè)解碼器函數(shù)組成,通過(guò)最小化損失函數(shù)來(lái)產(chǎn)生所學(xué)習(xí)的重構(gòu)輸入。Alqatf等[10]提出了一種基于堆疊自編碼器的深度學(xué)習(xí)框架,用于正常樣本的特征學(xué)習(xí),然后使用支持向量機(jī)(support vector machine,SVM)分類(lèi)器提高方法的準(zhǔn)確性。Andresini等[11]采用深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練輸入數(shù)據(jù)的特征,然后將自編碼器作為異常檢測(cè)器用于細(xì)化分類(lèi),從而提高了對(duì)不可預(yù)見(jiàn)攻擊的分類(lèi)精度。Mirza等[12]提出了一種基于稀疏自編碼器和長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)混合的深度學(xué)習(xí)網(wǎng)絡(luò)入侵檢測(cè)方法,該方法利用自編碼器進(jìn)行數(shù)據(jù)的降維和特征提取,而后使用LSTM網(wǎng)絡(luò)來(lái)處理計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)的順序性質(zhì),從而能夠有效地應(yīng)對(duì)不可預(yù)見(jiàn)和不可預(yù)測(cè)的網(wǎng)絡(luò)攻擊。雖然上述方法能夠取得一定的效果,但是,這類(lèi)方法在利用自編碼器壓縮原始數(shù)據(jù)同時(shí),不可避免要丟失信息,而且這些研究?jī)H從正常樣本中訓(xùn)練單個(gè)自編碼器,未考慮攻擊樣本,因此對(duì)新型攻擊樣本的檢測(cè)率較低。
為了解決傳統(tǒng)NIDS對(duì)新型入侵行為檢測(cè)精度低、誤報(bào)率高以及檢測(cè)效率低的問(wèn)題,提出了一種基于多通道自編碼器的深度學(xué)習(xí)方法,該方法結(jié)合了基于特征檢測(cè)和異常檢測(cè)方法的優(yōu)點(diǎn),在無(wú)監(jiān)督階段分別采用正常流量和攻擊流量訓(xùn)練兩個(gè)自編碼器,兩個(gè)自編碼器根據(jù)輸入樣本重構(gòu)出兩個(gè)新特征向量。然后,將兩個(gè)重構(gòu)特征向量與原始樣本共同組成多通道的特征向量表示,最后利用一維CNN網(wǎng)絡(luò)對(duì)多通道特征向量表示進(jìn)行處理,學(xué)習(xí)通道之間可能存在的依賴(lài)關(guān)系。本文方法將無(wú)監(jiān)督的多通道特征學(xué)習(xí)和有監(jiān)督的跨通道特征依賴(lài)有效地結(jié)合起來(lái),用于提高模型的準(zhǔn)確性。
本文方法的創(chuàng)新之處在于使用自編碼器派生流量數(shù)據(jù)的多通道表示形式,分別利用正常流量和攻擊流量來(lái)訓(xùn)練自編碼器模型,為網(wǎng)絡(luò)流的原始特征向量表示提供這些自動(dòng)編碼器構(gòu)建的特征向量。而后借助卷積的深度學(xué)習(xí)架構(gòu),來(lái)揭示跨通道特征表示中隱藏的依賴(lài)關(guān)系,而這個(gè)特征表示有助于入侵檢測(cè)模型將攻擊流從正常流中分離出來(lái),從而保證本文方法能夠有效降低誤報(bào)率以及提高未知攻擊的檢測(cè)精度。
自編碼器[12]是一種經(jīng)過(guò)特殊訓(xùn)練的神經(jīng)網(wǎng)絡(luò),其作用是通過(guò)將輸入數(shù)據(jù)作為學(xué)習(xí)目標(biāo),對(duì)輸入數(shù)據(jù)進(jìn)行表征學(xué)習(xí)。自編碼器網(wǎng)絡(luò)由兩個(gè)函數(shù)組成:編碼器f通過(guò)映射函數(shù)h=f(x)將輸入向量x映射到隱藏表示h,參數(shù)為θf(wàn);解碼器g是利用映射函數(shù)=g(h)將得到的隱藏表示h映射回輸入空間中,獲得重構(gòu)向量,參數(shù)為θg。通常,函數(shù)g和f分別對(duì)應(yīng)不同的神經(jīng)網(wǎng)絡(luò)。由兩個(gè)網(wǎng)絡(luò)組成的自編碼器所包含的參數(shù){θf(wàn),θg}通過(guò)最小化損失函數(shù)來(lái)共同學(xué)習(xí),其中損失函數(shù)的懲罰項(xiàng)可以定義為。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一類(lèi)包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),主要用于處理具有網(wǎng)格狀拓?fù)浣Y(jié)構(gòu)的數(shù)據(jù)。CNN可以通過(guò)應(yīng)用相關(guān)過(guò)濾器成功捕獲數(shù)據(jù)中的空間或時(shí)間依賴(lài)性,從而產(chǎn)生良好的內(nèi)部表示。通常,CNN通常由兩部分組成:一個(gè)是特征提取部分,由交替的卷積層和空間池化層組成;另一個(gè)是用于預(yù)測(cè)或分類(lèi)的部分,由可訓(xùn)練的完全連接層和分類(lèi)器組成。
一般來(lái)說(shuō),當(dāng)局部特征之間的位置關(guān)系被確定時(shí),卷積層提取具有局部相關(guān)性的特征。卷積利用多個(gè)一定的權(quán)重(即卷積內(nèi)核),對(duì)一個(gè)區(qū)域內(nèi)的數(shù)據(jù)進(jìn)行內(nèi)積運(yùn)算,其輸出值就是提取的特征之一。構(gòu)成用于乘法運(yùn)算的核元素對(duì)應(yīng)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的權(quán)值矩陣。所有可能偏移的可訓(xùn)練核與輸入數(shù)據(jù)卷積,在卷積層生成特征映射。卷積層根據(jù)線(xiàn)性卷積濾波器和非線(xiàn)性激活函數(shù)σ構(gòu)建特征映射f:
式中,(i,j)表示特征映射中的位置;xij表示中心為(i,j)的輸入數(shù)據(jù);k表示特征圖中的通道索引。
本文提出的用于解決網(wǎng)絡(luò)入侵檢測(cè)問(wèn)題的多通道深度學(xué)習(xí)方法,它結(jié)合了基于兩個(gè)自編碼器的多通道特征構(gòu)建的無(wú)監(jiān)督方法和利用跨通道特征相關(guān)性的有監(jiān)督方法。提出模型的總體架構(gòu)如圖1所示。
Fig.1 Architecture of proposed model圖1 所提模型的架構(gòu)示意圖
本文使用特殊類(lèi)的自動(dòng)編碼器進(jìn)行特征學(xué)習(xí),將單通道樣本轉(zhuǎn)換為多通道樣本。假定是一組N個(gè)訓(xùn)練樣本,其中每個(gè)xi∈RD是與D個(gè)特征上定義的輸入樣本相對(duì)應(yīng)的行向量,yi表示正常樣本或攻擊樣本的對(duì)應(yīng)二進(jìn)制標(biāo)簽。X=[x1,x2,…,xN]T∈RN×D表示N個(gè)D維隨機(jī)變量x∈RD的數(shù)據(jù)矩陣。采用分別表示X中標(biāo)記為正常樣本和攻擊樣本的子集。然后,Xn和Xa中的樣本可分別用于學(xué)習(xí)兩個(gè)獨(dú)立的自動(dòng)編碼器gn·fn(以Zn表示)和ga·fa(以Za表示)。由于解碼器網(wǎng)絡(luò)頂層產(chǎn)生的激活對(duì)應(yīng)于同一輸入空間中的一個(gè)重構(gòu)向量,因此本文思想是將其視為新的學(xué)習(xí)特征。特別地,每個(gè)自動(dòng)編碼器可以被用于從樣本x構(gòu)建新的特征向量=g(f(x))∈RD,然后這些特征可以被認(rèn)為通過(guò)級(jí)聯(lián)將單通道樣本轉(zhuǎn)換為多通道樣本。因此,每個(gè)樣本xi∈RD都可以由多通道樣本代替:
通過(guò)這種方式,將正常樣本和攻擊樣本的自編碼器重構(gòu)的特征進(jìn)行合成用于豐富樣本xi的信息。當(dāng)樣本屬于兩個(gè)不同的分布時(shí),標(biāo)記為正常的樣本xi應(yīng)該與而非的表示形式更相似,即;反之亦然。自編碼器步驟中的目標(biāo)是在受監(jiān)督階段利用一個(gè)通道對(duì)其他每個(gè)通道的影響,以便更好地區(qū)分正常和攻擊兩個(gè)類(lèi)之間的差異。
對(duì)于學(xué)習(xí)三個(gè)通道之間的表示有兩種方案:一種解決方案是采用(1×1)卷積核的濾波器,該濾波器用于跨通道參數(shù)卷積,因此可以通過(guò)增加特征數(shù)量將學(xué)習(xí)表示以RD×3(三通道表示)而不是R3D的形式進(jìn)行連接;另一種解決方案是將學(xué)習(xí)到的特征連接到空間R3D而不是RD×3中,然后將它們輸入到完全連接層中。然而,在完全連接層中,由于訓(xùn)練的輸出不受輸入特征的順序的影響,使得輸入的拓?fù)浔煌耆雎浴R虼?,使用這種方案可能會(huì)失去基于信道的排序和學(xué)習(xí)新的跨信道特性的可能性。
本文定義的自動(dòng)編碼器為三層,這些層中包含40×10×40個(gè)神經(jīng)元。為了執(zhí)行數(shù)據(jù)正則化并且防止出現(xiàn)過(guò)度擬合,在解碼層之前放置一個(gè)Dropout層,其定義可以表示為:
式中,l表示神經(jīng)網(wǎng)絡(luò)層號(hào),rl表示滿(mǎn)足伯努利分布的隨機(jī)向量,p表示保留概率,yl和yl′分別表示神經(jīng)網(wǎng)絡(luò)第l層神經(jīng)元的輸出向量和經(jīng)過(guò)隨機(jī)阻斷后的隨機(jī)向量。分別表示第l層第i個(gè)神經(jīng)元的權(quán)重系數(shù)和偏置,f表示激活函數(shù),分別表示第l層第i個(gè)神經(jīng)元激活函數(shù)的輸入值和輸出值。自編碼器網(wǎng)絡(luò)訓(xùn)練過(guò)程中使用Dropout是在每次訓(xùn)練過(guò)程中按照概率p隨機(jī)將部分神經(jīng)元的權(quán)重置為0,即將某些神經(jīng)元丟掉,這樣可以縮減參數(shù)量,使得局部數(shù)據(jù)簇差異性更加明顯,從而避免過(guò)擬合。Dropout層一般選擇保留概率p的值為0.5,因?yàn)榇藭r(shí)Dropout層效果最好,生成的網(wǎng)絡(luò)結(jié)構(gòu)最豐富。
神經(jīng)網(wǎng)絡(luò)中常見(jiàn)的激活函數(shù)有Sigmoid、tanh和ReLU等函數(shù)。對(duì)于每個(gè)隱藏層,本文選擇整流線(xiàn)性單元(rectified linear unit,ReLU)作為激活函數(shù),而對(duì)于最后一層,則使用線(xiàn)性激活函數(shù)Sigmoid。多通道自動(dòng)編碼器采用均方誤差(mean square error,MSE)作為損失函數(shù)。
由于CNN起初被廣泛應(yīng)用于圖像處理領(lǐng)域,網(wǎng)絡(luò)的輸入大多數(shù)是二維矩陣形式,因此特征圖和卷積核等網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)均被設(shè)置為二維。隨著語(yǔ)言識(shí)別領(lǐng)域引入CNN后,為了適應(yīng)語(yǔ)言信號(hào)的一維特性,一維CNN應(yīng)運(yùn)而生。一維CNN處理一維輸入向量,且卷積中的濾波器僅沿一維滑動(dòng)。為了更好地利用跨通道的特征組合信息,本文采用一維CNN進(jìn)行特征處理。
對(duì)于1D CNN模型,為了給過(guò)濾器尺寸降維和減少訓(xùn)練過(guò)程中的計(jì)算量,可以將過(guò)濾器的核大小限制為1,即使用(1×1)的卷積核來(lái)減小空間尺寸。同時(shí),(1×1)卷積還具有在通道維度上組合現(xiàn)有信息以獲得更多抽象通道信息的效果[13]。本文的想法是利用一維卷積,以增加跨信道信息,即將三通道表示X′輸入到濾波器大小等于1的1D卷積層。然后使用多于三個(gè)的濾波器組,用于增加非線(xiàn)性跨通道依賴(lài)的數(shù)量。特別地,給定樣本,一維卷積的感受野由表示,并且每個(gè)濾波器k用于計(jì)算特征映射中信號(hào)fi,j,k的公式定義如下:
式中,wk,bk∈R3分別表示權(quán)重和偏置系數(shù),σ表示非線(xiàn)性激活函數(shù)。中每個(gè)特征的通道用相同的共享權(quán)重系數(shù)進(jìn)行卷積,并以非線(xiàn)性映射到特征映射。在卷積層中采用K個(gè)濾波器,可以將RD×3中的樣本轉(zhuǎn)換為RD×K中的特征映射。然后將一維卷積層的輸出展平并作為兩個(gè)堆疊的全連接層的輸入處理。全連接層的作用是將在卷積層和池化層中生成的神經(jīng)元連接到更高層的所有神經(jīng)元,并使用最終的分類(lèi)器模塊執(zhí)行分類(lèi)操作,輸出分類(lèi)概率。本文使用Softmax分類(lèi)器作為最后的分類(lèi)模塊,在回歸中將x分類(lèi)為類(lèi)別j的概率為:
式中,θj表示第j個(gè)權(quán)重向量,xi為第i個(gè)數(shù)據(jù)樣本。
在各個(gè)研究領(lǐng)域,基于CNN的深度學(xué)習(xí)技術(shù)已取得了巨大的進(jìn)步。盡管深度學(xué)習(xí)可以以數(shù)據(jù)驅(qū)動(dòng)的方式學(xué)習(xí)特征和優(yōu)化權(quán)重參數(shù),但是模型架構(gòu)的選擇仍然是一個(gè)非常直觀(guān)的手動(dòng)過(guò)程。輸入和輸出變量以及學(xué)習(xí)參數(shù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)需要人工干預(yù)進(jìn)行調(diào)整。然而,由于網(wǎng)絡(luò)結(jié)構(gòu)的總數(shù)隨著網(wǎng)絡(luò)深度的增加呈指數(shù)級(jí)增長(zhǎng),因此不可能對(duì)所有可能的候選結(jié)構(gòu)進(jìn)行評(píng)估來(lái)獲得最佳的權(quán)重參數(shù)。為了克服這一繁瑣的過(guò)程并保持模型的靈活性,本文提出了一種利用遺傳算法(genetic algorithm,GA)自動(dòng)尋找CNN模型最優(yōu)拓?fù)涞姆椒ā?/p>
本節(jié)主要利用GA算法關(guān)注CNN的特征提取部分,通過(guò)優(yōu)化生成最佳拓?fù)?。?dāng)內(nèi)核在原始數(shù)據(jù)上移動(dòng)時(shí),CNN的卷積和池化層會(huì)檢測(cè)模式并提取給定輸入的關(guān)鍵特征。因此,為這些層確定適當(dāng)?shù)臋?quán)重參數(shù)可以提升相當(dāng)大網(wǎng)絡(luò)的性能。此類(lèi)超參數(shù)的最佳子集可能會(huì)隨輸入數(shù)據(jù)的動(dòng)態(tài)變化而變化,因此最好使用系統(tǒng)方法確定這些參數(shù)。如果卷積核非常大,網(wǎng)絡(luò)就不容易考慮輸入數(shù)據(jù)的細(xì)節(jié)特性,而當(dāng)內(nèi)核非常小時(shí),可能會(huì)因?yàn)閷W(xué)習(xí)過(guò)多的信息而造成混亂。此外,每個(gè)卷積層的核數(shù)會(huì)影響特征學(xué)習(xí)的過(guò)程,每個(gè)內(nèi)核生成不同的特征映射,以不同的視角充當(dāng)特征檢測(cè)器。隨著核數(shù)的增加,分析輸入數(shù)據(jù)的角度也不同。并且,在增加核數(shù)的過(guò)程中,還需要找到一個(gè)能很好地從輸入數(shù)據(jù)中學(xué)習(xí)特征并降低計(jì)算復(fù)雜度的最優(yōu)值。在大多數(shù)使用CNN的研究中,網(wǎng)絡(luò)結(jié)構(gòu)的選擇是基于經(jīng)驗(yàn)表現(xiàn)而不是理論依據(jù)。
本文采用遺傳算法優(yōu)化一維CNN模型的拓?fù)浣Y(jié)構(gòu),以提高入侵檢測(cè)時(shí)的預(yù)測(cè)性能。由于每個(gè)架構(gòu)因素都會(huì)影響網(wǎng)絡(luò)的性能,因此必須同時(shí)調(diào)整所有參數(shù)才能找到CNN的最佳結(jié)構(gòu)。通過(guò)GA算法對(duì)卷積和池化層操作的內(nèi)核數(shù)、內(nèi)核大小以及池化窗口大小進(jìn)行優(yōu)化。將每層組件的大小以二進(jìn)制字符串編碼。如圖2所示。
Fig.2 Chromosome structure in CNN optimization model圖2 CNN優(yōu)化模型中的染色體結(jié)構(gòu)
基于GA的CNN優(yōu)化過(guò)程包括以下步驟:
(1)初始化種群:遺傳算法的搜索過(guò)程首先創(chuàng)建一組可能的解。遺傳算法最重要的任務(wù)是表達(dá)染色體所要解決的問(wèn)題的潛在解,并為每個(gè)染色體的性能建立度量標(biāo)準(zhǔn)。由于潛在解的表達(dá)影響到所有的遺傳操作,每一條染色體都應(yīng)該恰當(dāng)?shù)胤从衬繕?biāo)問(wèn)題的特征。因此,每個(gè)染色體包含每個(gè)卷積層內(nèi)核數(shù)、內(nèi)核大小以及窗口大小對(duì)應(yīng)的潛在值。
(2)定義適應(yīng)度函數(shù):通過(guò)預(yù)定義的適應(yīng)度函數(shù)來(lái)測(cè)量每個(gè)染色體的性能。本文由入侵檢測(cè)總體分類(lèi)準(zhǔn)確性作為適應(yīng)度函數(shù)。根據(jù)適應(yīng)度評(píng)分,達(dá)到較高分類(lèi)準(zhǔn)確度的染色體將比具有較低分類(lèi)準(zhǔn)確度的染色體更頻繁地繁殖。
(3)遺傳操作:一旦計(jì)算出整個(gè)種群的適應(yīng)度值,就應(yīng)用選擇、交叉和突變的遺傳算子來(lái)產(chǎn)生下一代的新種群。遺傳算子為種群提供了新的信息,通過(guò)這些操作,GA趨向收斂于最優(yōu)或接近最優(yōu)的解決方案。
(4)輸出最優(yōu)解:基于GA搜索,獲得CNN的超參數(shù)的最終子集。
如圖2所示,基于多通道自編碼器的深度學(xué)習(xí)的入侵檢測(cè)方法主要由多通道自編碼器和一維CNN組成。該模型結(jié)合了基于特征檢測(cè)和異常檢測(cè)方法的優(yōu)點(diǎn),利用正常流量和攻擊流量分別訓(xùn)練各自通道的自編碼器模型,然后利用1d CNN網(wǎng)絡(luò)提取多通道表示中隱藏的相互關(guān)系,從而降低了不平衡數(shù)據(jù)對(duì)模型的影響,極大提升了樣本的檢測(cè)精度,而且由于模型使用了無(wú)監(jiān)督的自編碼器和輕量型1d CNN網(wǎng)絡(luò),有效提高了模型的檢測(cè)效率。下面給出具體的訓(xùn)練流程:
(1)利用數(shù)據(jù)預(yù)處理初始化訓(xùn)練樣本集;
(2)利用處理后的樣本集對(duì)每個(gè)通道的自編碼器進(jìn)行訓(xùn)練;
(3)將不同通道自編碼器計(jì)算的特征向量進(jìn)行重構(gòu),并作為1D CNN的輸入;
(4)利用重構(gòu)向量訓(xùn)練CNN,并采用GA算法優(yōu)化CNN的超參數(shù);
(5)利用訓(xùn)練后的模型對(duì)樣本進(jìn)行檢測(cè),并基于Softmax分類(lèi)器輸出分類(lèi)結(jié)果。
在算法1中給出了本文方法的偽代碼。
算法1本文方法的偽代碼
為了評(píng)估所提入侵檢測(cè)方法的有效性,本文方法在Python 3.7中使用Keras 2.3庫(kù)和TensorFlow進(jìn)行測(cè)試,并將測(cè)試結(jié)果與深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNN)[1]、自學(xué)入侵檢測(cè)系統(tǒng)(self-taught learning intrusion detection systems,STL-IDS)[10]、Grayscale[13]、CNN-1D[14]、寬線(xiàn)性分類(lèi)器與深層神經(jīng)網(wǎng)絡(luò)組合模型(wide linear classifier&deep neural network combined model,WnD)[15]和改進(jìn)的密度峰值聚類(lèi)算法與深度置信網(wǎng)絡(luò)(modified density peak clustering algorithm and deep belief networks,MDPCA-DBN)[16]等現(xiàn)有的深度學(xué)習(xí)入侵檢測(cè)方法進(jìn)行對(duì)比。對(duì)于測(cè)試數(shù)據(jù)集,使用Hyperopt庫(kù)中的樹(shù)狀結(jié)構(gòu)Parzen估計(jì)器算法進(jìn)行超參數(shù)優(yōu)化,其中使用20%的訓(xùn)練集作為驗(yàn)證集。而且測(cè)試數(shù)據(jù)使用最小-最大縮放器進(jìn)行縮放。表1給出了實(shí)現(xiàn)最佳驗(yàn)證損失的參數(shù)配置。
Table 1 Experimental parameter configuration表1 實(shí)驗(yàn)參數(shù)配置
自動(dòng)編碼器被定義為3層。這些層包括KDDCUP99和UNSW-NB15數(shù)據(jù)集中的40×10×40神經(jīng)元和CICIDS2017中的50×10×50神經(jīng)元。為了進(jìn)行數(shù)據(jù)正則化和防止過(guò)擬合,在解碼層之前放置一個(gè)丟失層。對(duì)于自動(dòng)編碼器,選擇均方誤差作為損失函數(shù)。同時(shí),為每個(gè)隱藏層選擇ReLU作為激活函數(shù),最后一層則使用線(xiàn)性激活函數(shù)。
在分類(lèi)器方面,該結(jié)構(gòu)由1個(gè)一維卷積層和3個(gè)完全連通的層組成。該網(wǎng)絡(luò)以D×3大小的樣本為輸入,預(yù)測(cè)伯努利概率。輸入樣本由具有64個(gè)濾波器的1D卷積層轉(zhuǎn)換為尺寸為D×64的特征映射,該特征映射分別由尺寸為320、160和2的全連接層處理。而最后一層的Softmax激活函數(shù)得到輸出概率。為了執(zhí)行數(shù)據(jù)正則化,在網(wǎng)絡(luò)中的每一層后面都有一個(gè)丟失層。分類(lèi)器通過(guò)最小化二進(jìn)制交叉熵作為損失函數(shù)來(lái)對(duì)權(quán)重進(jìn)行優(yōu)化。
本文采用3個(gè)基準(zhǔn)數(shù)據(jù)集KDDCUP99[1]、UNSWNB15[17]和CICIDS2017[18]對(duì)本文方法進(jìn)行測(cè)試。每個(gè)數(shù)據(jù)集包括標(biāo)記的訓(xùn)練集(經(jīng)過(guò)處理用于訓(xùn)練入侵檢測(cè)模型)和測(cè)試集(評(píng)估經(jīng)過(guò)訓(xùn)練后模型的入侵檢測(cè)能力)。下面給出3個(gè)數(shù)據(jù)集的具體描述。
KDDCUP99數(shù)據(jù)集是在1999年組織的KDD工具競(jìng)賽中引入的。這是一個(gè)經(jīng)常用于評(píng)估入侵檢測(cè)系統(tǒng)的基準(zhǔn)數(shù)據(jù)集。該數(shù)據(jù)集包含在軍事網(wǎng)絡(luò)環(huán)境中模擬的網(wǎng)絡(luò)流,并記錄為具有42個(gè)屬性的向量,其中訓(xùn)練集包含4 898 431個(gè)樣本,測(cè)試集包含311 027個(gè)樣本。為了控制訓(xùn)練階段的成本,本文采用10%的訓(xùn)練數(shù)據(jù)用于訓(xùn)練模型,整個(gè)測(cè)試集用于評(píng)估階段。此外,整個(gè)數(shù)據(jù)集中的正常流量和攻擊流量均不平衡,攻擊百分比高于正常流量(訓(xùn)練集中的80.3%vs19.7%,測(cè)試集的80.5%vs19.5%)。
UNSW-NB15數(shù)據(jù)集是由澳大利亞網(wǎng)絡(luò)安全中心(ACCS)的網(wǎng)絡(luò)范圍實(shí)驗(yàn)室中的IXIA PerfectStorm工具創(chuàng)建的。該數(shù)據(jù)集由一個(gè)訓(xùn)練集和一個(gè)測(cè)試集組成,其中包括網(wǎng)絡(luò)流樣本,它們被存儲(chǔ)為43個(gè)屬性的向量。訓(xùn)練集中的數(shù)據(jù)集相當(dāng)均衡,而測(cè)試集中的數(shù)據(jù)集則存在不平衡,攻擊流量的百分比略高于正常流量的百分比(68.1%vs31.9%)。
CICIDS2017由加拿大網(wǎng)絡(luò)安全研究所于2017年收集,此數(shù)據(jù)集包含正常流量和最新的攻擊流量。它還包括使用帶有標(biāo)記的流量特征抓取工具CICFlowMeter執(zhí)行的網(wǎng)絡(luò)流量分析結(jié)果。數(shù)據(jù)集中每個(gè)網(wǎng)絡(luò)流樣本都具有79個(gè)屬性。在本文實(shí)驗(yàn)中,通過(guò)分層隨機(jī)抽樣的方式選擇原始日志中的80%的正常流量和20%的攻擊流量創(chuàng)建訓(xùn)練集和測(cè)試集,其中訓(xùn)練集和測(cè)試集分別包含10萬(wàn)和90萬(wàn)個(gè)樣本。表2中給出了3個(gè)數(shù)據(jù)集的相關(guān)參數(shù)。
Table 2 Relevant parameters of 3 data sets表2 3個(gè)數(shù)據(jù)集的相關(guān)參數(shù)
通過(guò)分析訓(xùn)練的入侵檢測(cè)模型的準(zhǔn)確率和F-分?jǐn)?shù)來(lái)衡量所提出方法的整體性能,這些度量值可以簡(jiǎn)單地從混淆表中獲得。其中,準(zhǔn)確率是正確標(biāo)記流量的比率,定義為:
式中,TP和TN分別表示為正確預(yù)測(cè)流量為正常和攻擊類(lèi)型的樣本數(shù),F(xiàn)P和FN分別表示為錯(cuò)誤預(yù)測(cè)流量為正常和攻擊類(lèi)型的樣本數(shù),TP+TN+FP+FN為總樣本數(shù)。測(cè)試結(jié)果的準(zhǔn)確率越高,算法正確預(yù)測(cè)流量類(lèi)型的性能越高。
F-分?jǐn)?shù)是精度和召回率的調(diào)和平均值,其中精度p衡量入侵檢測(cè)系統(tǒng)僅識(shí)別攻擊的能力,召回率r可以看作是系統(tǒng)發(fā)現(xiàn)所有攻擊的能力,其定義為:
F值越高,算法所達(dá)到的精確性和召回率之間的平衡越好。
本文方法采用4個(gè)實(shí)驗(yàn)來(lái)驗(yàn)證性能的優(yōu)越性。第一個(gè)實(shí)驗(yàn)是消融研究,通過(guò)設(shè)置神經(jīng)網(wǎng)絡(luò)(neural network,NN)、人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)、CNN和人工卷積神經(jīng)網(wǎng)絡(luò)(artificial convolution neural network,ACNN)4種網(wǎng)絡(luò)結(jié)構(gòu)來(lái)驗(yàn)證本文多通道深度學(xué)習(xí)算法的有效性;第二個(gè)實(shí)驗(yàn)是魯棒性,通過(guò)在不平衡數(shù)據(jù)集中進(jìn)行測(cè)試,驗(yàn)證本文方法的穩(wěn)健性;第三個(gè)實(shí)驗(yàn)是探討自編碼器zn和za重建樣本的過(guò)程,分析多通道自動(dòng)編碼器的有效性;第四個(gè)實(shí)驗(yàn)是對(duì)比研究,通過(guò)與其他幾種入侵檢測(cè)算法結(jié)果對(duì)比驗(yàn)證本文方法的優(yōu)勢(shì)。
4.3.1 消融研究
首先給出4種網(wǎng)絡(luò)結(jié)構(gòu)NN、ANN、CNN和ACNN的架構(gòu):
(1)NN網(wǎng)絡(luò)模型由一個(gè)輸入層和圖2體系結(jié)構(gòu)的最后4個(gè)層組成(1個(gè)Flatten層,2個(gè)FC層和1個(gè)Softmax層),輸入樣本為xi∈RD,即:
(2)ANN網(wǎng)絡(luò)的架構(gòu)與NN相同,但輸入樣本采用兩個(gè)自編碼器的組合信息,架構(gòu)為:
(3)CNN網(wǎng)絡(luò)的架構(gòu)是在NN中添加一維卷積層,架構(gòu)為:
(4)ACNN網(wǎng)絡(luò)的架構(gòu)與CNN相同,但是輸入數(shù)據(jù)采用自編碼器的組合信息,架構(gòu)為:
圖3和圖4給出了本文方法與4個(gè)網(wǎng)絡(luò)NN、ANN、CNN和ACNN在準(zhǔn)確性和F-分?jǐn)?shù)的測(cè)試結(jié)果。從圖中可以看出,本文方法在準(zhǔn)確性和F-分?jǐn)?shù)指標(biāo)上明顯優(yōu)于所有基線(xiàn),從而證實(shí)了組合自動(dòng)編碼器、1D卷積和多通道輸入的有效性,能夠提高入侵檢測(cè)任務(wù)的準(zhǔn)確性。特別要注意的是,與卷積解耦的自動(dòng)編碼器不能保證性能的整體提高。另一方面,撇開(kāi)自動(dòng)編碼器,卷積密集層通??梢蕴岣呷肭謾z測(cè)的準(zhǔn)確性。在任何情況下,將卷積應(yīng)用于自動(dòng)編碼器豐富的數(shù)據(jù)時(shí),通常都可以實(shí)現(xiàn)較高的精度和F-分?jǐn)?shù)。通過(guò)分析發(fā)現(xiàn),卷積導(dǎo)致的模型優(yōu)越性取決于在多個(gè)通道(而不是通過(guò)級(jí)聯(lián)構(gòu)建的單個(gè)通道)上計(jì)算卷積的能力,并在原始變量及其基于自動(dòng)編碼器的對(duì)應(yīng)變量中尋找特征。
Fig.3 Accuracy of different network models on 3 data sets圖3 不同網(wǎng)絡(luò)模型在3個(gè)數(shù)據(jù)集上的準(zhǔn)確率結(jié)果
Fig.4 F-score of different network models on 3 data sets圖4 不同網(wǎng)絡(luò)模型在3個(gè)數(shù)據(jù)集上的F-分?jǐn)?shù)結(jié)果
此外,本文還對(duì)比了幾個(gè)網(wǎng)絡(luò)估計(jì)的參數(shù)個(gè)數(shù),如表3所示。從表中可以看到,本文方法的較高準(zhǔn)確度通常是以估計(jì)參數(shù)的數(shù)量較多為代價(jià)的。同時(shí),攻擊樣本占比越小,所需參數(shù)越多。
Table 3 Estimated parameters of different networks表3 不同網(wǎng)絡(luò)的估計(jì)參數(shù)
4.3.2 魯棒性
第二個(gè)實(shí)驗(yàn)主要是用于分析本文方法在解決不平衡數(shù)據(jù)問(wèn)題時(shí)的魯棒性。對(duì)于這個(gè)實(shí)驗(yàn)的分析數(shù)據(jù),本文采用CICIDS2017數(shù)據(jù)集,該數(shù)據(jù)集基于現(xiàn)實(shí)世界網(wǎng)絡(luò)的情景收集到的不平衡數(shù)據(jù),其中包括正常流量占80%,攻擊流量占20%。為了驗(yàn)證本文方法對(duì)不平衡數(shù)據(jù)的魯棒性,將數(shù)據(jù)集中的正常流量和攻擊流量進(jìn)行組合,獲得攻擊流量占總樣本的100%、75%、50%、25%和5%5個(gè)樣本子集用于測(cè)試。
圖5給出了本文方法與4個(gè)網(wǎng)絡(luò)NN、ANN、CNN和ACNN在5個(gè)樣本子集中的F-分?jǐn)?shù)測(cè)試結(jié)果。從圖中可以看出,本文方法對(duì)應(yīng)的F-分?jǐn)?shù)下降幅度最小,在所有方法中F-分?jǐn)?shù)仍是最高,從而說(shuō)明本文方法適用于不平衡數(shù)據(jù)的入侵檢測(cè)。
Fig.5 F-score of different network models on unbalanced data圖5 不同網(wǎng)絡(luò)模型在不平衡數(shù)據(jù)上的F-分?jǐn)?shù)結(jié)果
4.3.3 多通道自編碼器分析
第三個(gè)實(shí)驗(yàn)是對(duì)多通道自編碼器進(jìn)行分析,探討自編碼器Zn和Za準(zhǔn)確地從正常和攻擊兩類(lèi)樣本中重建樣本的過(guò)程。圖6顯示了當(dāng)UNSW-NB15數(shù)據(jù)集中使用自動(dòng)編碼器Zn和Za重構(gòu)正常流x和攻擊流時(shí)的重構(gòu)誤差箱形圖,計(jì)算方式為。
Fig.6 Reconstruction error analysis圖6 重構(gòu)誤差分析
從圖6中可以看出,自動(dòng)編碼器Zn在重建正常樣本時(shí)比重建攻擊樣本更準(zhǔn)確,同時(shí)Za則具有相反的表現(xiàn)。從而證明了利用多通道自編碼器將正常樣本和攻擊樣本分開(kāi)訓(xùn)練能夠引入有助于區(qū)分這兩個(gè)類(lèi)別的信息。此外,從圖中還觀(guān)察到,本文方法可以更好地受益于兩個(gè)類(lèi)別中基于自動(dòng)編碼器的樣本數(shù)量。
4.3.4 對(duì)比研究
第四個(gè)實(shí)驗(yàn)給出了本文方法與DNN、AIDA、CNN-1D、Gray-scale、WnD和MDPCA-DBN等幾種入侵檢測(cè)算法結(jié)果對(duì)比。
Fig.7 Comparison of different algorithms on KDDCUP99圖7 不同算法在KDDCUP99數(shù)據(jù)集上的對(duì)比結(jié)果
圖7~圖9給出了不同入侵檢測(cè)算法在3個(gè)數(shù)據(jù)集上的測(cè)試結(jié)果對(duì)比。從圖中可以看出,本文方法在3個(gè)數(shù)據(jù)集上測(cè)試的準(zhǔn)確率和F-分?jǐn)?shù)結(jié)果整體上優(yōu)于對(duì)比方法,充分說(shuō)明本文方法的有效性和優(yōu)越性。此外,從圖中觀(guān)察到唯一的例外是在KDDCUP99數(shù)據(jù)集上,本文方法的結(jié)果處于次優(yōu)解,DNN模型具有最佳的準(zhǔn)確率和F-分?jǐn)?shù)。這是因?yàn)镈NN通過(guò)一個(gè)深度神經(jīng)網(wǎng)絡(luò)以及文本表示方法來(lái)學(xué)習(xí)入侵檢測(cè)模型,然后在系統(tǒng)調(diào)用中捕獲上下文和與序列相關(guān)的信息,該模型通過(guò)優(yōu)化過(guò)程尋找網(wǎng)絡(luò)的最佳參數(shù)和最佳拓?fù)?。因此,在KDDCUP99數(shù)據(jù)集上DNN的較高精度可以歸因于文本表示方法以及所確定體系結(jié)構(gòu)的拓?fù)浣Y(jié)構(gòu)和參數(shù)設(shè)置。
Fig.8 Comparison of different algorithms on UNSW-NB15圖8 不同算法在UNSW-NB15數(shù)據(jù)集上的對(duì)比結(jié)果
Fig.9 Comparison of different algorithms on CICIDS2017圖9 不同算法在CICIDS2017數(shù)據(jù)集上的對(duì)比結(jié)果
本文提出了一種基于多通道自編碼器深度學(xué)習(xí)的入侵檢測(cè)方法,用于解決當(dāng)前入侵檢測(cè)方法中存在的準(zhǔn)確率低、誤報(bào)率高的問(wèn)題。本文方法采用無(wú)監(jiān)督的多通道特征學(xué)習(xí)和有監(jiān)督的跨通道特征依賴(lài)有效結(jié)合的方式構(gòu)建檢測(cè)模型:首先在無(wú)監(jiān)督階段,分別采用正常流量和攻擊流量訓(xùn)練兩個(gè)自編碼器,原始樣本與兩個(gè)編碼器重構(gòu)出的新特征向量共同組成多通道特征向量表示;然后將多通道特征向量作為一維CNN網(wǎng)絡(luò)的輸入,用于學(xué)習(xí)通道之間可能的依賴(lài)關(guān)系。同時(shí),為了保持模型的靈活性,本文采用遺傳算法優(yōu)化一維CNN模型的拓?fù)浣Y(jié)構(gòu),以提高入侵檢測(cè)時(shí)的預(yù)測(cè)性能。實(shí)驗(yàn)結(jié)果表明,本文方法能夠有效提高入侵檢測(cè)系統(tǒng)的準(zhǔn)確率,比其他方法的測(cè)試結(jié)果更佳。