沈?qū)W利,覃淑娟
(遼寧工程技術(shù)大學(xué) 電子與信息工程學(xué)院,遼寧 葫蘆島 125105)(*通信作者電子郵箱qinshujuanup@163.com)
隨著網(wǎng)絡(luò)規(guī)模的日益擴(kuò)大和網(wǎng)絡(luò)攻擊的日益增加,入侵檢測(cè)(Intrusion Detection, ID)依然是人們研究的熱點(diǎn)之一。為了提高入侵檢測(cè)系統(tǒng)(Intrusion Detection System, IDS)對(duì)未知網(wǎng)絡(luò)攻擊的識(shí)別能力和用戶數(shù)據(jù)的關(guān)聯(lián)性分析能力,許多研究學(xué)者將機(jī)器學(xué)習(xí)的方法引入到入侵檢測(cè)系統(tǒng)中[1-2],如支持向量機(jī)(Support Vector Machine, SVM)[3-5]在處理小樣本數(shù)據(jù)集時(shí)檢測(cè)率較高,但是由于其時(shí)間復(fù)雜度(為O(n3))和空間復(fù)雜度(為O(n2))的局限性,處理海量數(shù)據(jù)集時(shí)性能較差;神經(jīng)網(wǎng)絡(luò)(Neural Network, NN)[6-7]在一定程度上具有適應(yīng)性和可擴(kuò)展性,但是處理海量數(shù)據(jù)集時(shí)魯棒性仍有待提高;深度學(xué)習(xí)(Deep Learning, DL)[8-10]能夠挖掘高維數(shù)據(jù)的潛在特征,分類識(shí)別能力較強(qiáng),但是現(xiàn)有的方法沒(méi)有考慮到少數(shù)類別樣本的入侵檢測(cè)問(wèn)題。而在入侵檢測(cè)系統(tǒng)中,把提權(quán)(User to Root, U2R)攻擊識(shí)別為正常用戶數(shù)據(jù),比把拒絕服務(wù)(Denial of Service, DoS)攻擊識(shí)別為正常用戶數(shù)據(jù)對(duì)系統(tǒng)的危害更大,因此,在保證較高檢測(cè)率和較低誤報(bào)率的基礎(chǔ)上,識(shí)別并阻斷少數(shù)類別的攻擊有著重要的現(xiàn)實(shí)意義。
針對(duì)上述問(wèn)題,本文提出了一種基于合成少數(shù)類過(guò)采樣技術(shù)(Synthetic Minority Oversampling Technique, SMOTE)和深度信念網(wǎng)絡(luò)的異常檢測(cè)(anomaly detection based on SMOTE and Deep Belief Network, SMOTE-DBN)方法,在保證其他類別樣本檢測(cè)率的前提下,能夠提高少數(shù)類別樣本的檢測(cè)率,同時(shí)降低誤報(bào)率。
基于SMOTE和深信網(wǎng)的異常檢測(cè)框架包含三部分內(nèi)容,如圖1所示。
1) 數(shù)據(jù)預(yù)處理。如圖1(a)部分所示,通過(guò)合成少數(shù)類過(guò)采樣技術(shù)(SMOTE)降低數(shù)據(jù)集的不平衡度,再將數(shù)據(jù)集中的符號(hào)型特征數(shù)據(jù)數(shù)值化,并對(duì)數(shù)據(jù)型特征數(shù)據(jù)進(jìn)行歸一化處理,詳見(jiàn)3.1節(jié)內(nèi)容。
2) 數(shù)據(jù)特征降維。如圖1(b)部分所示,將預(yù)處理后的數(shù)據(jù)集用深度信念網(wǎng)絡(luò)(Deep Belief Network, DBN)進(jìn)行特征抽取,先用受限玻爾茲曼機(jī)(Restricted Boltzmann Machine, RBM)對(duì)數(shù)據(jù)集自底向上進(jìn)行預(yù)訓(xùn)練,獲得模型的初始參數(shù),再用BP(Back Propagation)網(wǎng)絡(luò)微調(diào)模型參數(shù),獲得較優(yōu)模型參數(shù),更好地將原始高維數(shù)據(jù)映射至低維數(shù)據(jù),詳見(jiàn)2.3、2.4節(jié)內(nèi)容。
3)邏輯回歸(Logistic Regression, LR)分類器。如圖1(c)部分所示,通過(guò)softmax邏輯回歸分類器,對(duì)較優(yōu)低維數(shù)據(jù)集進(jìn)行5種用戶數(shù)據(jù)狀態(tài)的識(shí)別,詳見(jiàn)2.5節(jié)內(nèi)容。
圖1 基于SMOTE-DBN模型的異常檢測(cè)框架
SMOTE算法是一種典型的過(guò)取樣方法[11-12]。它用少數(shù)類樣本控制人工樣本的生成與分布,實(shí)現(xiàn)均衡數(shù)據(jù)集的目的。核心思想是在某少數(shù)類別樣本中隨機(jī)地選取一個(gè)樣本點(diǎn),并在其最近鄰的k個(gè)樣本之間,插入n個(gè)人工合成的少數(shù)類別樣本,從而增加少數(shù)類別樣本的數(shù)量,均衡化數(shù)據(jù)集。
由于入侵檢測(cè)基準(zhǔn)數(shù)據(jù)集中的數(shù)據(jù)分布很不均勻,現(xiàn)有檢測(cè)方法對(duì)少數(shù)類別樣本的檢測(cè)率很低[13-14],因此采用SMOTE方法來(lái)消除非均衡樣本集對(duì)檢測(cè)精度的影響。
此外,由于SMOTE選取樣本的隨機(jī)性,可能會(huì)選取在樣本集邊緣的樣本點(diǎn)進(jìn)行近鄰插值,引起模糊樣本邊界的問(wèn)題。為了避免新合成的樣本點(diǎn)具有極少的少數(shù)類樣本特征,致使數(shù)據(jù)集的原始分布改變,要盡可能地選取不在樣本邊緣的樣本點(diǎn),K-means算法[15]能有效解決這個(gè)問(wèn)題。用K-means計(jì)算出樣本點(diǎn)的簇心m,選取簇心的k個(gè)近鄰進(jìn)行插值操作,得出新樣本xnew:
xnew=m+rand(0,1)*(x-m)
(1)
其中x為簇心m的近鄰樣本,rand(0,1)表示0~1的隨機(jī)數(shù)。
插入新樣本的步驟如算法1所示。
算法1 插入新樣本。
輸入:原始少數(shù)類訓(xùn)練樣本集,需要合成的樣本數(shù)n,循環(huán)變量k。
輸出:少數(shù)類訓(xùn)練樣本集。
fort=1,2,…,k
用K-means算法記錄少數(shù)類樣本的簇心m
fori=1,2,…,n
隨機(jī)選取簇心m的近鄰樣本點(diǎn)x,用式(1)在x與m之間插入新的樣本點(diǎn)
end
DBN[16]是由若干層非監(jiān)督的RBM網(wǎng)絡(luò)和單層BP神經(jīng)網(wǎng)絡(luò)構(gòu)成的深層神經(jīng)網(wǎng)絡(luò)。訓(xùn)練模型的主要步驟如下:
1)用對(duì)比分歧(Contrastive Divergence, CD)算法[17]單獨(dú)無(wú)監(jiān)督地訓(xùn)練每一層RBM網(wǎng)絡(luò),確保特征向量映射到不同特征空間時(shí),盡可能多地保留特征信息。
2)BP網(wǎng)絡(luò)接收RBM的低維輸出特征向量作為輸入特征向量,有監(jiān)督地訓(xùn)練實(shí)體關(guān)系分類器。由于每一層RBM網(wǎng)絡(luò)只能確保自身層內(nèi)的權(quán)值對(duì)該層特征向量映射達(dá)到最優(yōu),并不是對(duì)整個(gè)DBN的特征向量映射達(dá)到最優(yōu),所以反向傳播網(wǎng)絡(luò)將錯(cuò)誤信息自頂向下傳播至每一層RBM,微調(diào)整個(gè)DBN。RBM網(wǎng)絡(luò)訓(xùn)練模型的過(guò)程可以看作對(duì)一個(gè)深層BP網(wǎng)絡(luò)權(quán)值參數(shù)的初始化,使DBN克服了BP網(wǎng)絡(luò)因隨機(jī)初始化權(quán)值參數(shù)而容易陷入局部最優(yōu)和訓(xùn)練時(shí)間長(zhǎng)的缺點(diǎn)。
通過(guò)上述步驟,能夠構(gòu)建出具有多隱藏層的非線性網(wǎng)絡(luò)結(jié)構(gòu),挖掘海量數(shù)據(jù)集的潛在特征,從而學(xué)習(xí)出高維數(shù)據(jù)的較優(yōu)低維表示,得到更易分類的入侵檢測(cè)數(shù)據(jù)特征。
RBM是DBN的核心模塊之一[18],由可見(jiàn)層單元(v)和隱藏層單元(h)構(gòu)成。可見(jiàn)層與隱藏層的層內(nèi)無(wú)連接,層級(jí)之間全連接。如圖2所示,可見(jiàn)層單元為v=(v1,v2,…,vm)描述輸入數(shù)據(jù)的特征,隱藏層單元為h=(h1,h2,…,hm),通過(guò)學(xué)習(xí)輸入數(shù)據(jù)的特征自動(dòng)生成。
圖2 RBM結(jié)構(gòu)
已知v的情況下,隱藏層節(jié)點(diǎn)的條件概率分布滿足:
(2)
同理,在已知h的情況下,可見(jiàn)層節(jié)點(diǎn)的條件概率分布滿足:
(3)
關(guān)于RBM建立的能量函數(shù)為:
(4)
其中:θ={W,b,c}為RBM的模型參數(shù),W為可見(jiàn)層到隱藏層間的權(quán)值連接矩陣,b和c分別表示可見(jiàn)層和隱藏層上的乘性偏置。
基于能量函數(shù),可以建立v,h的聯(lián)合分布函數(shù):
(5)
為了求得聯(lián)合概率分布的最大值,更新模型參數(shù),本文采用CD算法獲取樣本。首先,初始可見(jiàn)單元狀態(tài)被設(shè)置為一個(gè)訓(xùn)練樣本,并由初始可見(jiàn)層單元v學(xué)習(xí)得到第一層隱藏層單元h1,獲得后驗(yàn)概率P(h1|v)。再由隱藏層單元h1確定每個(gè)可見(jiàn)單元取值為1的概率,重構(gòu)獲得新的可見(jiàn)層單元v1。接著采用梯度下降法求解參數(shù),訓(xùn)練樣本的梯度為:
(6)
獲得模型參數(shù)的更新規(guī)則:
(7)
預(yù)訓(xùn)練過(guò)程如算法2所示。
算法2 預(yù)訓(xùn)練過(guò)程。
輸入:可見(jiàn)層特征變量v=(v1,v2,…,vm),初始權(quán)重W,乘性偏置b、c,學(xué)習(xí)率ε,迭代次數(shù)k。
輸出:RBM的模型參數(shù)θ={W,b,c}。
fort=1,2,…,k
forj=1,2,…,n
fori=1,2,…,m
P(vi|h(t))
fori=1,2,…,m
forj=1,2,…n
由式(7)更新模型參數(shù)θ={W,b,c}
end
BP神經(jīng)網(wǎng)絡(luò)是帶監(jiān)督的前饋神經(jīng)網(wǎng)絡(luò)[19],有監(jiān)督的訓(xùn)練經(jīng)過(guò)預(yù)訓(xùn)練的DBN模型,利用輸出誤差自頂向下地估計(jì)每一層RBM的傳播誤差,獲得更優(yōu)的模型參數(shù)。BP微調(diào)權(quán)重過(guò)程如算法3所示。
算法3 BP微調(diào)權(quán)重過(guò)程。
輸入:可見(jiàn)層特征變量v=(v1,v2,…,vm),預(yù)訓(xùn)練得到的模型參數(shù)θ={W,b,c},迭代次數(shù)k,學(xué)習(xí)率ε。
輸出:微調(diào)后的模型參數(shù)θ={W,b,c}。
fort=1,2,…,k
對(duì)所有vi的輸出單元oi,計(jì)算其誤差梯度σi(ei為期望輸出):
σi=oi(1-oi)(ei-oi)
(8)
對(duì)所有隱藏層單元hj,計(jì)算其誤差梯度σj,并更新模型參數(shù)θ:
(9)
(10)
end
測(cè)試數(shù)據(jù)集中有五種用戶數(shù)據(jù)狀態(tài)[20-21],分別為正常狀態(tài)(Normal)、拒絕服務(wù)(Denial of Service, DoS)攻擊、遠(yuǎn)程未授權(quán)(Remote to Local, R2L)攻擊、提權(quán)(User to Root, U2R)攻擊、端口掃描(Probing),依序標(biāo)記為1~5,如表1所示。
由表1可知,數(shù)據(jù)集中有多類用戶數(shù)據(jù)狀態(tài),而softmax分類器能夠適應(yīng)多分類問(wèn)題,且相較于SVM等分類器結(jié)構(gòu)簡(jiǎn)單,因此,構(gòu)建一個(gè)softmax分類器,對(duì)訓(xùn)練后獲得的較優(yōu)低維表示的數(shù)據(jù)進(jìn)行分類。
如式(11)所示,對(duì)測(cè)試數(shù)據(jù)集進(jìn)行五種用戶數(shù)據(jù)狀態(tài)的識(shí)別:
(11)
其中:θ′={W′,b′}為模型參數(shù),W′表示權(quán)值矩陣,b′表示加性偏置。
表1 測(cè)試數(shù)據(jù)集分布
將要分類的較優(yōu)低維數(shù)據(jù)x′輸入到一套超平面中,每個(gè)超平面代表一個(gè)類,以輸入的數(shù)據(jù)到第j類超平面的距離表示該數(shù)據(jù)屬于第j類的概率,概率最大的類即為數(shù)據(jù)的所屬類別:
P(y=j|x(i),θ′)=softmaxj(W′x′(i)+b′)
(12)
本文采用KDD 1999數(shù)據(jù)集[22]作為測(cè)試數(shù)據(jù)集。該數(shù)據(jù)集中的每一項(xiàng)數(shù)據(jù)共有41項(xiàng)特征屬性和1項(xiàng)標(biāo)簽屬性,特征屬性包括傳輸控制協(xié)議(Transmission Control Protocol, TCP)基本連接特征(No.1~No.9)、TCP連接的內(nèi)容特征(No.10~No.22)、基于時(shí)間的網(wǎng)絡(luò)流量特征(No.23~No.31)以及基于主機(jī)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征(No.32~No.41),特征屬性的類型分別為連續(xù)型(Continuous, C)和離散型(Symbolic, S)[23],如表2所示。實(shí)驗(yàn)所選取的數(shù)據(jù)集如表3所示。
表2 數(shù)據(jù)集特征
數(shù)據(jù)預(yù)處理分3個(gè)步驟。
1)降低數(shù)據(jù)集的不平衡度。
由表3可知,KDD 1999數(shù)據(jù)集的數(shù)據(jù)狀態(tài)分布很不均衡,訓(xùn)練集中樣本U2R的數(shù)量遠(yuǎn)小于DoS和Normal的樣本數(shù),因此,本文采用SMOTE技術(shù),將U2R的樣本數(shù)增大至原來(lái)的10倍,以均衡樣本數(shù)。
2)字符型特征數(shù)值化。
用屬性映射法將字符型特征數(shù)據(jù)數(shù)值化,分別為T(mén)CP、用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol, UDP)、網(wǎng)際控制報(bào)文協(xié)議(Internet Control Message Protocol, ICMP),如表4所示。
3)數(shù)據(jù)型特征歸一化。
將數(shù)值化后的數(shù)據(jù)取對(duì)數(shù),再根據(jù)式(13)歸一化到[0,1]區(qū)間內(nèi):
y=(y-min)/(max-min)
(13)
其中:y為屬性值,min為對(duì)應(yīng)特征屬性的最小值,max為對(duì)應(yīng)特征屬性的最大值。
表3 實(shí)驗(yàn)數(shù)據(jù)集
表4 字符型特征數(shù)值化
評(píng)價(jià)標(biāo)準(zhǔn)定義如下。
TP(True Positive):樣本正確判斷為正類的樣本數(shù)。
TN(True Negative):樣本正確判斷為負(fù)類的樣本數(shù)。
FP(False Positive):樣本錯(cuò)誤判斷為負(fù)類的實(shí)際正類樣本數(shù)。
FN(False Negative):樣本錯(cuò)誤判斷為正類的實(shí)際負(fù)類樣本數(shù)。
則檢測(cè)率(Detection Rate, DR)、誤報(bào)率(False Alarm, FA)、精確率(Accuracy, AC)分別如下:
DR=TN/(TN+FN)
(14)
FA=FP/(TP+FP)
(15)
AC=(TP+TN)/(TP+FP+TN+FN)
(16)
實(shí)驗(yàn)環(huán)境:Windows 7 (64位)操作系統(tǒng),Intel Core i5- 5200U CPU @2.2 GHz,4 GB RBM,Python3.5。
實(shí)驗(yàn)內(nèi)容:
1)設(shè)置實(shí)驗(yàn)參數(shù)。
2)在相同分類方法的基礎(chǔ)上驗(yàn)證SMOTE技術(shù)對(duì)異常入侵檢測(cè)的影響。
3)在相同數(shù)據(jù)集上分析不同分類技術(shù)對(duì)異常入侵檢測(cè)的影響。
3.3.1 實(shí)驗(yàn)參數(shù)設(shè)置
實(shí)驗(yàn)過(guò)程中,用DBN對(duì)選取的數(shù)據(jù)集進(jìn)行訓(xùn)練,由于DBN的參數(shù)設(shè)置會(huì)影響到模型的訓(xùn)練結(jié)果,根據(jù)文獻(xiàn)[24-25]對(duì)模型的部分參數(shù)進(jìn)行了設(shè)置,訓(xùn)練參數(shù)如表5所示,同時(shí)通過(guò)固定參數(shù),驗(yàn)證了微調(diào)的迭代次數(shù)對(duì)檢測(cè)率結(jié)果的影響,如圖3所示。
由圖3可知,當(dāng)?shù)螖?shù)大于100時(shí),精確率曲線逐漸趨于平緩。為了避免過(guò)擬合,后續(xù)實(shí)驗(yàn)中選取微調(diào)的迭代次數(shù)為100。
3.3.2 SMOTE算法的有效性驗(yàn)證
為了驗(yàn)證SMOTE算法的有效性,將經(jīng)過(guò)SMOTE技術(shù)處理前后的數(shù)據(jù)集在DBN算法上進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,經(jīng)過(guò)SMOTE預(yù)處理的數(shù)據(jù)集相較于未經(jīng)過(guò)SMOTE的數(shù)據(jù)集在精確率方面提高了2.01個(gè)百分點(diǎn),檢測(cè)率結(jié)果如圖4所示,DoS的檢測(cè)率有所降低,但是對(duì)少數(shù)類樣本U2R的檢測(cè)率有明顯提高,其他類別樣本的檢測(cè)率與未經(jīng)過(guò)SMOTE處理的數(shù)據(jù)集檢測(cè)率相當(dāng)。
表5 實(shí)驗(yàn)參數(shù)
圖3 精確率隨微調(diào)迭代次數(shù)的變化
圖4 SMOTE處理前后檢測(cè)率對(duì)比
3.3.3 對(duì)比實(shí)驗(yàn)
將SMOTE-DBN方法與DBN和SVM方法在相同數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn),如表6所示,SMOTE-DBN方法的檢測(cè)率相對(duì)略高于DBN和SVM方法,且在誤報(bào)率方面相對(duì)較低。
表6 SMOTE-DBN與DBN、SVM實(shí)驗(yàn)結(jié)果對(duì)比 %
本文提出了一種基于SMOTE和深度信念網(wǎng)絡(luò)的異常檢測(cè)方法,提高了入侵檢測(cè)的數(shù)據(jù)分析能力。通過(guò)SMOTE處理技術(shù),均衡化非均衡數(shù)據(jù)集,在一定程度上解決了分類器傾向于將用戶數(shù)據(jù)歸類到多數(shù)類類別樣本的問(wèn)題。同時(shí)結(jié)合softmax算法改進(jìn)了DBN算法,并與DBN和SVM方法進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,SMOTE-DBN算法的性能相對(duì)較優(yōu),對(duì)高維數(shù)據(jù)有很強(qiáng)的特征提取能力和信息識(shí)別能力,可應(yīng)用于網(wǎng)絡(luò)分布復(fù)雜的環(huán)境下;但DBN中的結(jié)構(gòu)參數(shù)為人工設(shè)置,不一定是最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),因此如何選取合理的網(wǎng)絡(luò)參數(shù)是下一步解決的問(wèn)題。