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