汪 盼,宋雪樺,王昌達(dá),陳 鋒,徐夏強,蔡冠宇
1.江蘇大學(xué) 計算機科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212013
2.江蘇僅一聯(lián)合智造有限公司,江蘇 丹陽 212300
3.鎮(zhèn)江市丹徒區(qū)科學(xué)技術(shù)局,江蘇 鎮(zhèn)江 212000
隨著通信技術(shù)的迅速發(fā)展,基于Internet 的研究和應(yīng)用越來越廣泛,網(wǎng)絡(luò)安全問題日益凸顯,安全防護(hù)技術(shù)已成為研究熱點之一。入侵檢測系統(tǒng)[1](Instrusion Detection System,IDS)是一種保護(hù)用戶隱私和數(shù)據(jù)的重要網(wǎng)絡(luò)安全防御手段。IDS 能夠主動發(fā)現(xiàn)和識別入侵行為并采取相應(yīng)操作,從而確保網(wǎng)絡(luò)運行安全可靠。
為有效識別各種網(wǎng)絡(luò)攻擊,研究者將機器學(xué)習(xí)方法引入IDS 中,其中支持向量機算法[2](Support Vector Machine,SVM)較早應(yīng)用在入侵檢測技術(shù)中。假設(shè)n為訓(xùn)練樣本數(shù),則SVM 算法的時間、空間復(fù)雜度分別為O(n3)、O(n2),當(dāng)網(wǎng)絡(luò)入侵樣本較少時,SVM 算法具有良好的學(xué)習(xí)和檢測能力。文獻(xiàn)[3]提出了一種基于交替決策樹(Alternating Decision Trees,ADT)分類的入侵攻擊方法,通過與樸素貝葉斯算法的對比實驗驗證了該方法提高檢測準(zhǔn)確率的同時降低了誤報率。近來,遺傳算法、隨機森林[4]等算法先后應(yīng)用于網(wǎng)絡(luò)入侵檢測。但是面對海量入侵?jǐn)?shù)據(jù)的分類問題,傳統(tǒng)淺層機器學(xué)習(xí)方法會受到時間和空間的限制,系統(tǒng)處理速度大幅度降低。
基于此,面向海量數(shù)據(jù)的入侵檢測方法的研究重點在于進(jìn)行特征學(xué)習(xí)和降維。Han等人[5]提出的入侵檢測方法將樸素貝葉斯網(wǎng)絡(luò)與主成分分析算法(Principal Component Analysis,PCA)結(jié)合,采用PCA 提取主要數(shù)據(jù)特征,可以有效減少網(wǎng)絡(luò)數(shù)據(jù)的維數(shù)。Hinton 等人[6]提出的深度信念網(wǎng)絡(luò)(Deep Belief Network,DBN)可以實現(xiàn)對大量無標(biāo)簽數(shù)據(jù)進(jìn)行特征提取,該理論已成功地運用在語音識別、計算機視覺等領(lǐng)域。高妮等人[7]提出了面向IDS 的DBN 模型,深入分析和驗證了DBN 網(wǎng)絡(luò)結(jié)構(gòu)對異常入侵行為識別性能的影響,實驗結(jié)果表明DBN 適用于高維、非線性的海量無標(biāo)簽數(shù)據(jù)的關(guān)鍵特征提取。文獻(xiàn)[8]充分考慮了DBN能夠挖掘海量網(wǎng)絡(luò)數(shù)據(jù)的豐富內(nèi)在信息,提出了基于DBN-MSVM入侵檢測方法。文獻(xiàn)[9]將DBN與核極限學(xué)習(xí)機(Kernel Extreme Learning Machine,KELM)結(jié)合,提出了一種混合深度學(xué)習(xí)算法。汪洋等人[10]針對網(wǎng)絡(luò)入侵檢測中數(shù)據(jù)分布不平衡問題,提出了DBN-WOS-KELM 算法,能夠?qū)崿F(xiàn)在線更新輸出權(quán)重。
為了DBN在重建誤差時獲得更好的收斂速度和訓(xùn)練效果,本文引入自適應(yīng)學(xué)習(xí)速率(Adaptive Learning Rate,ALR)思想,根據(jù)參數(shù)每次迭代方向的異同來動態(tài)調(diào)整學(xué)習(xí)率,提出了一種基于改進(jìn)的深度信念網(wǎng)絡(luò)的入侵檢測(Softmax Classification based on Improved Deep Belief Network,IDBN-SC)方法。在訓(xùn)練DBN模型過程中,利用自適應(yīng)學(xué)習(xí)速率實現(xiàn)模型參數(shù)的快速收斂,采用softmax分類器對網(wǎng)絡(luò)入侵行為進(jìn)行識別分類。該方法可以有效提高對網(wǎng)絡(luò)數(shù)據(jù)的檢測準(zhǔn)確率而且檢測速度快。
受限玻爾茲曼機[11](Restricted Boltzmann Machine,RBM)是一個包含可視層單元(v)和隱藏層單元(h)的兩層神經(jīng)網(wǎng)絡(luò),如圖1所示。
圖1 RBM結(jié)構(gòu)模型
可視層單元v(v1,v2,…,vn)表示輸入數(shù)據(jù),隱藏層單元h(h1,h2,…,hm)進(jìn)行特征提取,W為連接v和h之間的權(quán)重矩陣,a,b分別表示隱藏層和可視層的偏置向量,v和h服從伯努利分布。RBM 采用對比分歧算法(Contrastive Divergence,CD)的學(xué)習(xí)方法更新RBM 模型的參數(shù)θ(W,a,b)。
在入侵檢測過程中,網(wǎng)絡(luò)數(shù)據(jù)只有部分特征被真正利用,因此通過深度信念網(wǎng)絡(luò)進(jìn)行提取數(shù)據(jù)特征,實現(xiàn)對海量高維原始網(wǎng)絡(luò)數(shù)據(jù)特征降維。DBN結(jié)構(gòu)模型如圖2所示,DBN是由多層受限玻爾茲曼機網(wǎng)絡(luò)和單層反向傳播(Back Propagation,BP)網(wǎng)絡(luò)依次堆疊構(gòu)成的深層神經(jīng)網(wǎng)絡(luò)[12]。
圖2 DBN結(jié)構(gòu)模型
在訓(xùn)練深度信念網(wǎng)絡(luò)模型過程中,DBN 可以分為無監(jiān)督的預(yù)訓(xùn)練和基于BP算法的權(quán)值微調(diào)兩個過程。
(1)無監(jiān)督的預(yù)訓(xùn)練:通過對比分歧算法逐層訓(xùn)練RBM 網(wǎng)絡(luò),將無標(biāo)簽原始網(wǎng)絡(luò)數(shù)據(jù)映射至不同特征空間,從而保留數(shù)據(jù)的關(guān)鍵特征信息,獲得較優(yōu)的低維表示。
(2)基于BP 算法的權(quán)值微調(diào):BP 網(wǎng)絡(luò)設(shè)置在深度信念網(wǎng)絡(luò)的最后一層,利用被附加到DBN 頂層的帶標(biāo)簽數(shù)據(jù),將誤差損失自頂而下地逐層傳播至每一層RBM 網(wǎng)絡(luò),對整個DBN 的權(quán)值進(jìn)行調(diào)整,從而獲得最優(yōu)的低維表示數(shù)據(jù)[13]。
在基于BP 算法的權(quán)值微調(diào)過程中,首先計算訓(xùn)練樣本xi經(jīng)過DBN 的實際輸出表示xi',對于輸出層節(jié)點k,根據(jù)式(7)計算其實際輸出表示與期望輸出表示xi的誤差項δk:
計算每個隱藏層節(jié)點h的誤差項δh,更新每個網(wǎng)絡(luò)模型參數(shù)θij:
其中,θhk為隱藏層節(jié)點h與后續(xù)輸出層節(jié)點k的連接權(quán)值,η表示學(xué)習(xí)速率。
一般來說,逐層訓(xùn)練RBM網(wǎng)絡(luò)需要較長的時間,因此選擇適當(dāng)?shù)膶W(xué)習(xí)速率參數(shù)是提高DBN性能的重要因素。由于RBM在訓(xùn)練過程中每次迭代后的梯度更新方向不盡相同,為了提高RBM網(wǎng)絡(luò)訓(xùn)練收斂速度,本文提出了一種自適應(yīng)學(xué)習(xí)速率(ALR)方法。
與RBM 網(wǎng)絡(luò)采用全局學(xué)習(xí)速率不同,ALR 方法是每個連接權(quán)重Wij對應(yīng)一個學(xué)習(xí)速率εij。在更新模型參數(shù)過程中,學(xué)習(xí)速率由式(11)確定:
其中,μ表示學(xué)習(xí)速率的增量系數(shù) (μ >1),d表示學(xué)習(xí)速率的衰減系數(shù)(d <1)。
如果兩個相鄰的更新梯度具有相同的方向,則當(dāng)前模型參數(shù)的學(xué)習(xí)速率增加,而對于方向相反的參數(shù)更新梯度,則學(xué)習(xí)速率減小,從而可以有效避免訓(xùn)練過程中在非最優(yōu)解處產(chǎn)生振蕩。
傳統(tǒng)固定學(xué)習(xí)率在網(wǎng)絡(luò)更新權(quán)值過程中并不總是朝著減少損失函數(shù)的方向進(jìn)行每一步調(diào)節(jié),這導(dǎo)致收斂速度大幅度下降,但自適應(yīng)學(xué)習(xí)速率方法可以根據(jù)相鄰兩次更新方向的異同自適應(yīng)變化,能夠克服傳統(tǒng)固定學(xué)習(xí)率方法的缺點,通過自動調(diào)節(jié)學(xué)習(xí)率以變步長的方式加速了每個RBM 網(wǎng)絡(luò)無監(jiān)督學(xué)習(xí)(即從可視層輸入高維數(shù)據(jù)到隱藏層所表示的低維抽象數(shù)據(jù)的過程)。
預(yù)訓(xùn)練階段,在求解目標(biāo)函數(shù)的最優(yōu)解過程中,ALR 方法實現(xiàn)利用誤差曲面的凹凸性自動增大或減少學(xué)習(xí)速度,確保模型能夠準(zhǔn)確且迅速地找到最優(yōu)點。采用ALR方法的DBN模型不僅能夠提高訓(xùn)練網(wǎng)絡(luò)的魯棒性,還能減少收斂過程所需的時間。
在每個RBM 的無監(jiān)督學(xué)習(xí)過程中,網(wǎng)絡(luò)輸出與吉布斯采樣過程的中間狀態(tài)有關(guān),ALR方法以變步長的方式有規(guī)律地增大或者減小模型對數(shù)據(jù)內(nèi)在關(guān)聯(lián)的學(xué)習(xí)力度。同時分層降維能夠達(dá)到高維數(shù)據(jù)維數(shù)呈指數(shù)下降趨勢,因此,在單個RBM 運用ALR 方法加速收斂的情況下,由多個RBM構(gòu)成的DBN能夠產(chǎn)生收斂速度指數(shù)提高的效果。
本文提出的入侵檢測方法總體設(shè)計框架如圖3 所示,主要包含3個模塊:數(shù)據(jù)預(yù)處理、IDBN特征降維、入侵識別。
圖3 IDBN-SC入侵檢測方法總體框架
(1)數(shù)據(jù)預(yù)處理。首先數(shù)值化NSL-KDD 數(shù)據(jù)集[14]存在的所有字符型屬性特征,再歸一化處理數(shù)值型數(shù)據(jù),獲得標(biāo)準(zhǔn)化數(shù)據(jù)集。
(2)IDBN 特征降維。對預(yù)處理后獲得的數(shù)據(jù)集進(jìn)行無監(jiān)督的預(yù)訓(xùn)練和基于BP 算法的權(quán)值微調(diào),獲得最優(yōu)的低維表示[15]。
(3)入侵識別。把降維數(shù)據(jù)輸入到softmax分類器[16]進(jìn)行訓(xùn)練分類。softmax 分類器輸出的是分類概率,選取概率最大的分類,以具體的入侵類別的形式輸出結(jié)果。
NSL-KDD 數(shù)據(jù)集的每條數(shù)據(jù)由38 個數(shù)字型屬性特征和3個字符型屬性特征組成。訓(xùn)練之前,需要對數(shù)據(jù)進(jìn)行預(yù)處理。首先采用屬性映射方法將所有字符型特征變換成數(shù)值型數(shù)據(jù)。例如“protocol_type”屬性特征存在3種類型取值:tcp、udp、icmp,將其分別轉(zhuǎn)化為二進(jìn)制向量[1,0,0] 、[0,1,0] 和[0,0,1] 。以此類推,“service”屬性特征存在70種類型取值,“flag”屬性特征存在11種類型取值,這樣可以建立符號值與其對應(yīng)特征向量的映射關(guān)系,將41 個原始屬性特征映射成122 維特征數(shù)據(jù)。然后最小-最大規(guī)范化處理獲得的數(shù)據(jù),以消除各屬性間的量綱影響。根據(jù)式(12)將各屬性特征歸一化到同一數(shù)量級,即[0,1] 范圍。
其中,y為特征屬性值,ymax、ymin分別為該屬性的最大值和最小值。
設(shè)樣本類別數(shù)量為k,模型參數(shù)為θ,對于給定的樣本輸入x,根據(jù)式(13)計算每一個類別j的概率值p(y=j|x):
對有m個樣本點的數(shù)據(jù)集,softmax 回歸[17]的損失代價函數(shù)為:
其中λ是權(quán)重衰減項,1{?}是示性函數(shù),其取值規(guī)則:1{值為真的表達(dá)式}=1,1{值為假的表達(dá)式}=0。
式(14)運用了貝葉斯正則化的思想使J(θ)為嚴(yán)格凸函數(shù),保證函數(shù)存在唯一解。對式(14)進(jìn)行極小化,求出J(θ)對θj的偏導(dǎo)數(shù),得到:
根據(jù)式(16)更新模型參數(shù)θ:
其中α為學(xué)習(xí)速率。
與SVM分類器相比,softmax分類器計算簡單且高效,主要用于解決多分類問題。SVM 的計算是無標(biāo)定的,并且難以針對所有分類的評分值給出直觀解釋,而softmax 函數(shù)將原始分類評分轉(zhuǎn)化成歸一化的對數(shù)概率,允許計算出對于所有分類標(biāo)簽的可能性,鼓勵正確分類的歸一化的對數(shù)概率變高,其余的變低。
針對網(wǎng)絡(luò)數(shù)據(jù)的入侵識別問題,每種網(wǎng)絡(luò)攻擊類型之間是互斥的,softmax分類器的目標(biāo)函數(shù)選擇交叉熵,使得目標(biāo)類的1{}?等于1,其他類的示性函數(shù)等于0。同時在softmax分類過程中網(wǎng)絡(luò)數(shù)據(jù)的屬性特征對其分類概率的影響是乘性的,使得目標(biāo)類的對數(shù)概率遠(yuǎn)大于其他類。
硬件環(huán)境:64位Windows10操作系統(tǒng)、Intel i7處理器、8 GB內(nèi)存和4 GB GPU的計算機。
開發(fā)環(huán)境:Eclipse+PyDev。
編程語言:Python。
測試數(shù)據(jù)集:NSL-KDD 數(shù)據(jù)集。該數(shù)據(jù)集包含125 973 個訓(xùn)練數(shù)據(jù)和22 543 個測試數(shù)據(jù),各類數(shù)據(jù)具體分布情況如表1所示。
表1 各種類型數(shù)據(jù)分布情況
NSL-KDD 數(shù)據(jù)集被分成拒絕服務(wù)攻擊(Denial of Service,DoS)、遠(yuǎn)程用戶攻擊(Remote to Local,R2L)、用戶到根攻擊(User to Root,U2R)、端口掃描攻擊(Probe)4大類攻擊類型和1類正常(Normal)數(shù)據(jù)。
實驗中,采用檢測準(zhǔn)確率(Accuracy,AC)、誤報率(False Alarm Rate,F(xiàn)AR)、檢測時間(Ti)和重構(gòu)誤差(error)作為衡量模型的性能的評價指標(biāo)。
其中,n為樣本個數(shù),m為每層網(wǎng)絡(luò)輸入層節(jié)點個數(shù),vki為第k個樣本的原始數(shù)據(jù),vki'為第k個樣本的重構(gòu)數(shù)據(jù)。
本文設(shè)計了3組實驗:(1)不同IDBN網(wǎng)絡(luò)深度對入侵檢測的性能影響;(2)不同學(xué)習(xí)速率對重構(gòu)誤差的影響;(3)本文提出的入侵檢測方法與其他方法的性能對比。
實驗中自適應(yīng)速率的初始值設(shè)置為0.05,增量系數(shù)μ和衰減系數(shù)d分別取值為1.25和0.8,將IDBN預(yù)訓(xùn)練的迭代次數(shù)設(shè)置為100 次,基于BP 算法的權(quán)值微調(diào)的迭代次數(shù)設(shè)置為120次。
4.3.1 IDBN網(wǎng)絡(luò)深度實驗
針對IDBN 的深度是影響入侵檢測效果的重要因素,實驗對5 種不同的IDBN 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行檢測準(zhǔn)確率和誤報率對比。設(shè)置 IDBN2、IDBN3、IDBN4、IDBN5和IDBN6分別表示為122-110-30、122-110-70-30、122-110-90-60-30、122-110-90-70-50-30 和 122-110-95-70-50-40-30的RBM網(wǎng)絡(luò)結(jié)構(gòu)(IDBNi表示IDBN包含i層RBM)。從圖4 可看出,IDBN 采用 4 層的 RBM 網(wǎng)絡(luò)結(jié)構(gòu)的檢測準(zhǔn)確率最大,誤報率最低。
圖4 不同深度的IDBN的性能對比
4.3.2 學(xué)習(xí)速率對比實驗
本文提出的入侵檢測方法中,IDBN 選取4 層RBM網(wǎng)絡(luò)對輸入數(shù)據(jù)進(jìn)行特征降維。NSL-KDD數(shù)據(jù)集中41個屬性特征經(jīng)過數(shù)據(jù)預(yù)處理轉(zhuǎn)化成122維特征,因此設(shè)置IDBN 的輸入層節(jié)點數(shù)為122,隱藏層節(jié)點數(shù)依次選取110,90,60和30。
將自適應(yīng)學(xué)習(xí)速率與三個不同的全局固定學(xué)習(xí)速率 (ε=0.005,ε=0.05 和ε=0.5) 進(jìn)行比較,對比結(jié)果如圖5所示。對于固定的學(xué)習(xí)速率來說,設(shè)置ε=0.5 的重構(gòu)誤差最大,ε=0.005 的訓(xùn)練收斂速度緩慢,而ε=0.05的結(jié)果最好。與固定學(xué)習(xí)速率相比,ALR在迭代次數(shù)為90左右之后,重構(gòu)誤差趨于平穩(wěn),在保證低重構(gòu)誤差的同時具有較快的收斂速度。
圖5 ALR與固定全局學(xué)習(xí)速率的重構(gòu)誤差對比
4.3.3 各分類方法的檢測性能對比實驗
將IDBN、PCA、自編碼網(wǎng)絡(luò)(AutoEncoder Network,AEN)方法進(jìn)行對比來分析特征降維效果。首先利用特征學(xué)習(xí)方法進(jìn)行降維,然后采用softmax 分類器對降維后的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行入侵分類。在訓(xùn)練過程中分別抽取NSL-KDD數(shù)據(jù)集中20%、40%、50%、70%的數(shù)據(jù)進(jìn)行實驗分析。
從表2可以看出,在70%數(shù)據(jù)訓(xùn)練階段,IDBN方法的準(zhǔn)確率較PCA 和AEN 分別提高了2.97 個百分點和1.19個百分點。IDBN結(jié)合了無監(jiān)督學(xué)習(xí)和有監(jiān)督學(xué)習(xí)的優(yōu)點,通過多次映射能夠發(fā)現(xiàn)海量網(wǎng)絡(luò)數(shù)據(jù)中的復(fù)雜結(jié)構(gòu)及其概率分布。因此,對不同的數(shù)據(jù)集的測試表明,IDBN的準(zhǔn)確率都比較高,對高維無標(biāo)簽網(wǎng)絡(luò)數(shù)據(jù)的特征提取效果最好。
表2 IDBN與其他特征學(xué)習(xí)方法的準(zhǔn)確率對比%
在NSL-KDD數(shù)據(jù)集中隨機提取不同攻擊類型進(jìn)行分類實驗,對比分析不同入侵行為的準(zhǔn)確率和誤報率。其中SVM 的核函數(shù)采用徑向基函數(shù),設(shè)置核函數(shù)控制因子g=0.000 01,懲罰因子C=1 000,采用10 折交叉驗證獲得較高的準(zhǔn)確率。人工神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)采用5層結(jié)構(gòu),利用BP算法優(yōu)化網(wǎng)絡(luò),其余參數(shù)和DBN類似。
從表3可以看出,IDBN-SC方法對Normal、DoS、R2L、U2L 和Probe 的識別準(zhǔn)確率分別是98.34%、97.25%、83.47%、78.12%和96.26%,相比其他四種方法準(zhǔn)確率平均提高 7.49 個百分點。IDBN-SC 方法對 Normal、DoS、R2L、U2L 和 Probe 的誤報率分別是 0.87%、1.23%、10.49%、17.12%、2.94%,誤報率平均降低6.01 個百分點。IDBN-SC 方法利用IDBN 模型保留網(wǎng)絡(luò)數(shù)據(jù)的關(guān)鍵重要特征,去除冗余特征,實現(xiàn)高維特征向量的特征提取,同時softmax 分類器支持類別互斥的數(shù)據(jù)分類。因此,實驗結(jié)果表明IDBN-SC 方法在對不同入侵行為的檢測準(zhǔn)確率方面要高于其他四種分類方法,且更能精確檢測網(wǎng)絡(luò)入侵行為。
表3 針對不同攻擊類型的性能比較 %
進(jìn)一步驗證IDBN-SC 方法的性能,隨機抽取NSLKDD 數(shù)據(jù)集中20%、40%、50%、70%的數(shù)據(jù),分別進(jìn)行檢測準(zhǔn)確率和時間的對比分析。
從表4可以看出,IDBN-SC方法在不同的數(shù)據(jù)集上的準(zhǔn)確率分別為96.43%、98.65%、97.37%、98.24%,相比較其他四種方法準(zhǔn)確率平均提高3.02 個百分點。而IDBN-SC 方法在不同數(shù)據(jù)集上的分類處理時間分別為6.87 s、10.56 s、14.64 s、18.73 s,相比softmax方法平均縮短5.58 s,相比IDBN-SVM 方法平均縮短2.77 s。實驗結(jié)果表明IDBN-SC方法在準(zhǔn)確率上顯著提高了網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的識別能力,極大地縮短了softmax 分類器的訓(xùn)練時間。SVM分類器的時間復(fù)雜度是其輸入向量的指數(shù)函數(shù),softmax 分類器的時間復(fù)雜度是其輸入向量的一次函數(shù),ADT 分類器的時間復(fù)雜度與其輸入向量和樹的深度有關(guān),NN 算法的時間復(fù)雜度與其輸入向量和網(wǎng)絡(luò)層數(shù)有關(guān)。因此,通過IDBN進(jìn)行特征降維,IDBN-SC方法有效地減少分類器輸入向量維數(shù),以縮短網(wǎng)絡(luò)數(shù)據(jù)分類的處理時間。
表4 幾種入侵檢測方法的性能對比
針對傳統(tǒng)的入侵檢測方法很難快速準(zhǔn)確地分類通信過程中海量無標(biāo)簽網(wǎng)絡(luò)數(shù)據(jù)的問題,本文利用深度學(xué)習(xí)在數(shù)據(jù)特征降維的優(yōu)勢,提出基于改進(jìn)的深度信念網(wǎng)絡(luò)的softmax 分類入侵檢測方法。該方法利用IDBN 將大量高維無標(biāo)簽數(shù)據(jù)進(jìn)行特征提取,使用ALR 保證模型參數(shù)快速收斂,采用softmax 分類器進(jìn)行入侵行為識別。實驗表明本文提出的IDBN-SC方法不僅提高了網(wǎng)絡(luò)攻擊分類準(zhǔn)確率,同時顯著地縮短了入侵檢測的分類處理時間。IDBN-SC方法為入侵檢測在區(qū)塊鏈、物聯(lián)網(wǎng)等領(lǐng)域的網(wǎng)絡(luò)安全應(yīng)用提供了一種高效、可行的研究方法。