靳燕 姚悅
1 引言
面對(duì)日益嚴(yán)峻的網(wǎng)絡(luò)安全問(wèn)題,各種安全防御技術(shù)已被提出并得以應(yīng)用。以防范和自我保護(hù)為主的被動(dòng)保護(hù)方式,主要包括數(shù)據(jù)加密、安全路由、訪問(wèn)控制、報(bào)文鑒別等,其在有效防范網(wǎng)絡(luò)攻擊上雖有重要作用,但缺少實(shí)時(shí)發(fā)現(xiàn)攻擊行為的能力。入侵檢測(cè)系統(tǒng)通過(guò)采集主機(jī)審計(jì)數(shù)據(jù)和網(wǎng)絡(luò)全局流量,來(lái)實(shí)現(xiàn)關(guān)鍵點(diǎn)的實(shí)時(shí)監(jiān)控,并依靠檢測(cè)分析引擎來(lái)發(fā)現(xiàn)異常行為,與其他安全技術(shù)可有效互補(bǔ),共同為網(wǎng)絡(luò)系統(tǒng)提供安全保障[1]。
檢測(cè)分析模塊的構(gòu)建是入侵檢測(cè)技術(shù)實(shí)施的關(guān)鍵,傳統(tǒng)方式下的人工編碼,對(duì)專家領(lǐng)域知識(shí)依賴大,存在效率低、適應(yīng)性差、不易擴(kuò)展等缺點(diǎn)。數(shù)據(jù)挖掘技術(shù)用于入侵檢測(cè)分類建模中,可從訓(xùn)練數(shù)據(jù)集中自動(dòng)提取攻擊模式,生成分類模型,有效改善了分類建模效率,提高了分類檢測(cè)準(zhǔn)確率。分類模型可以判定用戶行為是否異常,在兩類行為的區(qū)分認(rèn)識(shí)上,不同算法的處理方式不同。常用的分類算法包括NaiveBayes[2]、RIPPER[3]、SVM(支持向量機(jī)Support Vector Machine)[4]等。
Boosting方法屬性能提升算法[5],通過(guò)多次迭代來(lái)改善基分類器的分類性能,本文將NaiveBayes、RIPPER和SVM作為Boosting方法的基分類算法,在KDD CUP99數(shù)據(jù)集上加以應(yīng)用,通過(guò)分類結(jié)果的相關(guān)性能比較來(lái)分析Boosting算法的提升效果,并進(jìn)一步給出更適合于KDD CUP99的基分類算法。
2 分類算法原理分析
分類屬數(shù)據(jù)挖掘中的預(yù)測(cè)任務(wù),是根據(jù)其他屬性值來(lái)預(yù)測(cè)離散的目標(biāo)屬性值。在KDD CUP99中,目標(biāo)屬性是class,取離散的23種類型。分類之前,需要事先產(chǎn)生一個(gè)分類模型,不同分類算法學(xué)習(xí)到的分類模型也不同。
2.1 NaiveBayes算法原理分析
NaiveBayes為貝葉斯分類的一種,其基于統(tǒng)計(jì)學(xué)原理,通過(guò)事件的先驗(yàn)概率,來(lái)獲得事件可能所屬每類的后驗(yàn)概率,選最大后驗(yàn)概率的對(duì)應(yīng)類作為該事件的所屬類。
對(duì)于KDD CUP99數(shù)據(jù)集,NaiveBayes引入條件概率來(lái)量化數(shù)據(jù)集的樣本類序列中,出現(xiàn)某類攻擊事件的概率,該條件概率記為P(Itr | Evt),Evt表示樣本類序列,Itr表示某類攻擊事件。使用Bayes公式可得出P(Itr | Evt)的值,如公式(1)所述:
P(Itr | Evt) = P(Evt | Itr) P(Itr)/ P(Evt)(1)
P(Evt) = P(Itr) * P(Evt | Itr) + P(┐Itr)* P(Evt | ┐ Itr) (2)
公式(1)的P(Itr)為先驗(yàn)概率,可依據(jù)領(lǐng)域?qū)<医?jīng)驗(yàn)或數(shù)據(jù)集的樣本分布來(lái)給定。P(Evt | Itr)為給定攻擊下的事件序列的條件概率,系統(tǒng)全部事件構(gòu)成了每個(gè)攻擊的事件序列,進(jìn)而可算出構(gòu)成給定攻擊的事件序列占全部攻擊事件序列的相對(duì)概率,即為P(Evt | Itr)。同樣,可算得P(Evt | ┐ Itr)的條件概率。
應(yīng)用公式(1)和(2),算得P(Itr | Evt)的值,反映了事件序列中存在攻擊事件的可能程度。攻擊檢測(cè)中,將取最大P(Itr | Evt)值所對(duì)應(yīng)的Itr作為檢測(cè)類別。
NaiveBayes以屬性相獨(dú)立為前提,在屬性相關(guān)較小的數(shù)據(jù)集上的性能較好。當(dāng)屬性相關(guān)較大或?qū)傩暂^多時(shí),NaiveBayes的分類效果下降。
2.2 RIPPER算法原理分析
RIPPER屬基于規(guī)則的分類算法,通過(guò)樣本學(xué)習(xí)可產(chǎn)生類似if cndt1 then class1 elseif cndt2 then class2,…,else default的規(guī)則集。if部分為某類的判定條件,then部分為預(yù)測(cè)類,default為算法定義的默認(rèn)類。
在兩類問(wèn)題中,RIPPER選擇多數(shù)類為默認(rèn)類,學(xué)習(xí)少數(shù)類的分類規(guī)則。在多類問(wèn)題中,依據(jù)類別出現(xiàn)頻率的大小,按小到大進(jìn)行排序,設(shè)排序后的類別序列為class1, class2,…, classn,class1代表了極少發(fā)生的類,classn為最頻繁發(fā)生的類,是RIPPER定義的default。
對(duì)于KDD CUP99,RIPPER按類別出現(xiàn)頻率遞增產(chǎn)生類別序列,并按此順序?yàn)槊總€(gè)類別尋找檢測(cè)規(guī)則,class1的檢測(cè)規(guī)則應(yīng)可將class1與 {class2,…, class23 }相區(qū)分,依此產(chǎn)生其他類別的檢測(cè)規(guī)則。在對(duì)用戶行為進(jìn)行檢測(cè)時(shí),仍按規(guī)則順序進(jìn)行匹配,匹配項(xiàng)對(duì)應(yīng)的類別即為檢測(cè)類別,沒(méi)有滿足的規(guī)則時(shí),就檢測(cè)為default。
RIPPER算法的類別序使得出現(xiàn)頻率極小的類在預(yù)測(cè)時(shí)得以關(guān)注,在不均衡類分布的數(shù)據(jù)集中[6],其分類性能往往優(yōu)于其他算法。
2.3 SVM算法原理分析
SVM按線性方程式的求解來(lái)對(duì)待分類問(wèn)題,通過(guò)尋找類間超平面來(lái)實(shí)現(xiàn)分類模型的構(gòu)建。超平面選取基于了結(jié)構(gòu)風(fēng)險(xiǎn)最小化的理論,在樣本的特征空間中,尋找最優(yōu)的分割超平面,進(jìn)而產(chǎn)生最優(yōu)分類器。針對(duì)線性不可分的情況,SVM通過(guò)引入核函數(shù)可將樣本空間轉(zhuǎn)為高維空間下的線性可分,在分類以及回歸等數(shù)據(jù)挖掘任務(wù)中得到廣泛應(yīng)用。對(duì)于KDD CUP99數(shù)據(jù)集,SVM將樣本按向量對(duì)待,通過(guò)求解線性方程的參數(shù),來(lái)確定類別的支持向量。
2.4 Boosting算法原理分析
Boosting算法通過(guò)多輪迭代以產(chǎn)生一個(gè)用于分類預(yù)測(cè)的函數(shù)系列,并結(jié)合權(quán)重加以組合共同決策,進(jìn)而改善原有弱分類算法的分類準(zhǔn)確度。
將迭代次數(shù)記為T次,可產(chǎn)生出T個(gè)簡(jiǎn)單分類器。每個(gè)簡(jiǎn)單分類器的分類準(zhǔn)確度,通過(guò)其發(fā)言權(quán)加以表達(dá)。在進(jìn)行預(yù)測(cè)時(shí),T個(gè)簡(jiǎn)單分類器的加權(quán)組合將是最終的分類結(jié)果。
3 分類建模及結(jié)果分析
3.1 參與分類建模的數(shù)據(jù)樣本
KDD CUP99網(wǎng)絡(luò)攻擊數(shù)據(jù)集共包含42個(gè)屬性,樣本分屬23個(gè)類別[7],同類別的樣本實(shí)例數(shù)量差別極大。本文從KDD CUP99_10%中無(wú)放回隨機(jī)抽樣,抽樣比例為10%,樣本分布如表1所示。
3.2 參與建模的分類算法及結(jié)果比較
本文選用Boosting算法中較具代表性的AdaBoost算法進(jìn)行模型構(gòu)建,選用的基算法為:NaiveBayes、RIPPER和SVM。為較直觀的分析Boosting算法的性能提升效果,依次與三類算法產(chǎn)生的單個(gè)分類模型進(jìn)行指標(biāo)比較。表2、表3和表4分別為單算法和基于該算法的AdaBoost的分類結(jié)果(以/作為兩算法的分隔)。
本文做兩類比較。(1)三個(gè)基算法間的分類比較。表2、表3和表4的單分類器產(chǎn)生的分類結(jié)果中,對(duì)數(shù)量較多的Normal、Neptune和Smurf,NaiveBayes不及RIPPER和SVM;對(duì)極小量的類,RIPPER優(yōu)于SVM和NaiveBayes,中間類的分類效果較為相似。(2)基算法與AdaBoost算法的分類比較。比較每張表中的基算法與AdaBoost算法的結(jié)果,AdaBoost對(duì)NaiveBayes的提升無(wú)效,對(duì)RIPPER和SVM的分類效果改善明顯。
本次所選樣本共包含49402條,使用三類基算法NaiveBayes、RIPPER和SVM的建模耗時(shí)依次為:0.33秒、24.77秒和4.54秒;使用AdaBoost后,耗時(shí)均有所增加,依次為:79.92秒、179.45秒和72.81秒。
4 結(jié)束語(yǔ)
本文圍繞入侵檢測(cè)系統(tǒng)的檢測(cè)分析模塊的構(gòu)建方法,分析了Naive Bayes、RIPPER、SVM和Boosting的相關(guān)原理,并在KDD CUP99的部分?jǐn)?shù)據(jù)上進(jìn)行分類建模。從實(shí)驗(yàn)分類結(jié)果及耗時(shí)上做總體比較:RIPPER對(duì)KDDCUP 99的總體分類效果較好,尤其在小類分類上表現(xiàn)極佳,但規(guī)則學(xué)習(xí)過(guò)程花費(fèi)時(shí)間較長(zhǎng);使用Boosting(本文以AdaBoost算法為代表)后,對(duì)基分類的性能改善明顯,但同樣存在建模耗時(shí)的問(wèn)題。針對(duì)KDD CUP99的分類學(xué)習(xí)問(wèn)題,據(jù)本文的實(shí)驗(yàn)結(jié)論,可從分類的具體目的出發(fā),如重視哪些類的分類性能、對(duì)建模效率有無(wú)要求等因素綜合考慮,選取合適的算法。在不考慮分類效率的前提下,可選用基于RIPPER的Boosting算法,既可以提高小類的分類性能,對(duì)其他類的分類也較好。
參考文獻(xiàn)
[1] 靳燕.檢測(cè)未知攻擊的數(shù)據(jù)預(yù)處理算法研究[J].山西師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,27(4):23-26.
[2] 韓紹金,李建勛.基于密度核估計(jì)的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)算法[J].計(jì)算機(jī)工程與應(yīng)用, 2014 (15): 107-112.
[3] Seerat B, Qamar U. Rule induction using enhanced RIPPER algorithm for clinical decision support system[C]//Intelligent Control and Information Processing (ICICIP), 2015 Sixth International Conference on. IEEE, 2015: 83-91.
[4] Moraes R, Valiati J F, Neto W P G O. Document-level sentiment classification: An empirical comparison between SVM and ANN[J]. Expert Systems with Applications, 2013, 40(2): 621-633.
[5] 李詒靖,郭海湘,李亞楠等.一種基于Boosting的集成學(xué)習(xí)算法在不均衡數(shù)據(jù)中的分類[J].系統(tǒng)工程理論與實(shí)踐, 2016(1):44-47.
[6] 靳燕,彭新光.折中規(guī)劃分類性能的少數(shù)類誤分代價(jià)優(yōu)化設(shè)計(jì)[J/OL].計(jì)算機(jī)工程與應(yīng)用, 2016 http://www.cnki.net/kcms/detail/11.2127.TP.20160414.1542.044.html.
[7] 張新有,賈磊.入侵檢測(cè)數(shù)據(jù)集KDD CUP99研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,(22):56-59.
基金項(xiàng)目:
1.山西省自然科學(xué)基金資助項(xiàng)目(編號(hào)No.2010011022-2);
2.山西大學(xué)商務(wù)學(xué)院科研基金資助項(xiàng)目(編號(hào)No.2014010)。
作者簡(jiǎn)介:
靳燕(1982-),女,碩士,山西大學(xué)商務(wù)學(xué)院信息學(xué)院,講師;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)安全、數(shù)據(jù)挖掘。
姚悅(1993-),女,學(xué)士,英大商務(wù)服務(wù)有限公司,初級(jí)工程師;主要研究方向和關(guān)注領(lǐng)域:數(shù)據(jù)分析。