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