張康寧,廖光忠
(1.武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430081;2.武漢科技大學(xué)智能信息處理與實(shí)時(shí)工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430081)
網(wǎng)絡(luò)信息時(shí)代為人們的生活和工作提供了諸多便利,與此同時(shí)網(wǎng)絡(luò)安全問(wèn)題也逐漸受到人們的關(guān)注.防火墻作為一種傳統(tǒng)的網(wǎng)絡(luò)安全技術(shù),通過(guò)在網(wǎng)絡(luò)邊界建立相應(yīng)的網(wǎng)絡(luò)通信監(jiān)控系統(tǒng)來(lái)隔離內(nèi)部和外部網(wǎng)絡(luò),以阻擋來(lái)自外部的網(wǎng)絡(luò)入侵.但防火墻是一種被動(dòng)防護(hù)技術(shù),面對(duì)日益隱蔽且復(fù)雜的網(wǎng)絡(luò)攻擊難以形成有效的保護(hù).網(wǎng)絡(luò)入侵檢測(cè)作為一種主動(dòng)防護(hù)手段,通過(guò)收集和分析網(wǎng)絡(luò)行為、安全日志及審計(jì)數(shù)據(jù)等,檢測(cè)網(wǎng)絡(luò)中潛在的攻擊行為,能夠在網(wǎng)絡(luò)系統(tǒng)受到危害前實(shí)現(xiàn)攔截和響應(yīng)入侵,提供對(duì)外部攻擊、內(nèi)部攻擊和誤操作的實(shí)時(shí)保護(hù).
機(jī)器學(xué)習(xí)的發(fā)展為解決網(wǎng)絡(luò)入侵提供了廣闊的思路.根據(jù)檢測(cè)方法不同,入侵檢測(cè)一般分為誤用檢測(cè)和異常檢測(cè).誤用檢測(cè)根據(jù)先驗(yàn)知識(shí)對(duì)攻擊行為進(jìn)行判斷,通過(guò)特征庫(kù)對(duì)比識(shí)別異?;驖撛诘娜肭滞{,常用方法有專(zhuān)家系統(tǒng)、條件概率等[1].此類(lèi)方法對(duì)已知類(lèi)型的攻擊具有很高的檢測(cè)精度,但受限于先驗(yàn)知識(shí),對(duì)未知的入侵行為無(wú)法檢測(cè),需要人為更新數(shù)據(jù)庫(kù)[2].異常檢測(cè)[3]則是通過(guò)對(duì)網(wǎng)絡(luò)中正常行為的普遍特征進(jìn)行概括,建立入侵檢測(cè)模型,當(dāng)網(wǎng)絡(luò)中的行為偏離此模型時(shí),被判定為網(wǎng)絡(luò)入侵行為,生成警告,常用方法有統(tǒng)計(jì)異常檢測(cè)[4]、貝葉斯推理[5]等.此類(lèi)方法能夠?qū)ξ粗娜肭中袨檫M(jìn)行識(shí)別,但受限于網(wǎng)絡(luò)行為的復(fù)雜性及多樣性,異常檢測(cè)模型難以對(duì)所有正常行為進(jìn)行準(zhǔn)確的概括,存在誤報(bào)率高的問(wèn)題[6].
集成學(xué)習(xí)作為近些年機(jī)器學(xué)習(xí)領(lǐng)域的研究熱點(diǎn),被越來(lái)越多的應(yīng)用于各種領(lǐng)域.入侵檢測(cè)作為一個(gè)典型的分類(lèi)問(wèn)題,已有很多學(xué)者將集成學(xué)習(xí)應(yīng)用于此類(lèi)研究.為提高集成學(xué)習(xí)的檢測(cè)準(zhǔn)確率,要求基分類(lèi)器應(yīng)“好而不同”[7],即要求基分類(lèi)器兼具一定的準(zhǔn)確性和多樣性.為提高基分類(lèi)器之間的差異,常用的方法有數(shù)據(jù)樣本擾動(dòng)、特征屬性擾動(dòng)、輸出表示擾動(dòng)及算法參數(shù)擾動(dòng).本文將支持向量機(jī)(SVM)與Bagging集成學(xué)習(xí)結(jié)合,對(duì)Bagging集成的樣本擾動(dòng)方式進(jìn)行了改進(jìn),并結(jié)合特征選擇算法來(lái)增大基分類(lèi)器之間的差異,提高檢測(cè)準(zhǔn)確率,同時(shí)避免了SVM在處理大樣本數(shù)據(jù)時(shí)的計(jì)算難題.
集成學(xué)習(xí)的基分類(lèi)器常采用弱分類(lèi)器,如神經(jīng)網(wǎng)絡(luò)、貝葉斯、決策樹(shù)等.SVM作為一種強(qiáng)分類(lèi)器,一般認(rèn)為進(jìn)行集成學(xué)習(xí)的性能提升有限,但由于SVM在應(yīng)用上的一些缺陷,如最優(yōu)解計(jì)算、參數(shù)選擇及多分類(lèi)問(wèn)題等,使得基于SVM的集成學(xué)習(xí)具有性能提升的空間.因此,SVM集成已成為機(jī)器學(xué)習(xí)領(lǐng)域的熱門(mén)研究.
SVM建立在統(tǒng)計(jì)學(xué)習(xí)理論[8-9]的VC維概念和結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理基礎(chǔ)上,根據(jù)有限樣本信息在模型復(fù)雜性和學(xué)習(xí)能力之間尋求折中,以獲得好的泛化能力.其基本思想是基于訓(xùn)練集在樣本空間中找到一個(gè)劃分超平面,將不同類(lèi)別的樣本分開(kāi).但在樣本空間中存在若干超平面能將樣本分開(kāi),因此需要找到一個(gè)最優(yōu)決策面,使得分類(lèi)結(jié)果的魯棒性最佳.其具體描述如下:
s.t.yi(wTxi+b)≥1,i=1,2,…,m.
(1)
(1)式為支持向量機(jī)的基本型.
求解(1)式,對(duì)約束條件添加拉格朗日乘子α(α≥0),將其轉(zhuǎn)化為求解的對(duì)偶問(wèn)題,即:
(2)
解出α后,求出w與b即可得到支持向量機(jī)模型
(3)
L.K.Hansen等[10]通過(guò)將多個(gè)神經(jīng)網(wǎng)絡(luò)結(jié)合來(lái)提高學(xué)習(xí)器泛化性能的研究,首次提出了集成學(xué)習(xí)的概念,目前集成學(xué)習(xí)代表性算法主要有Boosting[11]和Bagging.Boosting是一種迭代算法,通過(guò)前一分類(lèi)器的分類(lèi)結(jié)果來(lái)更新后一分類(lèi)器的樣本分布,對(duì)弱學(xué)習(xí)器進(jìn)行自適應(yīng)調(diào)整,但其采用串行運(yùn)算,計(jì)算復(fù)雜度明顯提高,難以適應(yīng)高速網(wǎng)絡(luò)的實(shí)時(shí)入侵檢測(cè)任務(wù).相比Boosting算法,Bagging算法的集成個(gè)體之間相互獨(dú)立,可以并行運(yùn)算,大大提高了檢測(cè)效率,具有更加廣闊的應(yīng)用前景.因此,本文采用Bagging-SVM集成學(xué)習(xí)來(lái)進(jìn)行網(wǎng)絡(luò)安全的實(shí)時(shí)入侵檢測(cè).
近年來(lái),基于Bagging-SVM的集成學(xué)習(xí)得到了許多研究者的關(guān)注,在很多領(lǐng)域得到了應(yīng)用,但受限于SVM難以對(duì)大規(guī)模數(shù)據(jù)進(jìn)行有效的處理,集成SVM在入侵檢測(cè)方面的研究相對(duì)較少.目前針對(duì)入侵檢測(cè)通用的數(shù)據(jù)集為KDD Cup1999,其包含近500萬(wàn)條訓(xùn)練數(shù)據(jù)和30萬(wàn)條測(cè)試數(shù)據(jù).為應(yīng)對(duì)此類(lèi)超大規(guī)模數(shù)據(jù)集,常用的做法是從原始數(shù)據(jù)集中隨機(jī)抽取少量樣本進(jìn)行訓(xùn)練和測(cè)試.譚愛(ài)平等[12]通過(guò)隨機(jī)采樣分別從訓(xùn)練集和數(shù)據(jù)集中抽取29 313和24 974個(gè)樣本用于實(shí)驗(yàn),但其總量仍只約占原始數(shù)據(jù)的1/100,大量信息被丟失.付子爔等[13]提出了一種基于增量學(xué)習(xí)的SVM算法,實(shí)現(xiàn)了對(duì)入侵?jǐn)?shù)據(jù)的動(dòng)態(tài)學(xué)習(xí),提高了學(xué)習(xí)效率,具有一定的應(yīng)用價(jià)值.但是數(shù)據(jù)增量學(xué)習(xí)新知識(shí)時(shí)不可避免的遺忘舊知識(shí),相比整個(gè)數(shù)據(jù)集的學(xué)習(xí)準(zhǔn)確率稍有下降.因此,如何對(duì)數(shù)據(jù)集進(jìn)行比較完備學(xué)習(xí)的同時(shí)提高學(xué)習(xí)效率是入侵檢測(cè)技術(shù)具有實(shí)際應(yīng)用價(jià)值的前提,而改進(jìn)取樣方式的Bagging-SVM算法可以有效實(shí)現(xiàn)上述目標(biāo).
集成學(xué)習(xí)要求基分類(lèi)器的錯(cuò)誤率不能高于50%,即能達(dá)到優(yōu)于各子分類(lèi)器的結(jié)果.利用這一特性,SVM不必尋找最優(yōu)解即能使集成學(xué)習(xí)模型達(dá)到較好的分類(lèi)效果,降低了SVM求解二次規(guī)劃的時(shí)間和空間復(fù)雜度,也為核函數(shù)選擇和參數(shù)優(yōu)化提供了方便.但達(dá)到上述條件必須保證基分類(lèi)器之間具有較大的差異性,即集成學(xué)習(xí)的多樣性是保證分類(lèi)器高準(zhǔn)確率和泛化性的前提.
圖8a表示當(dāng)時(shí),交點(diǎn)軸線T-Map的2維空間域,即所有滿足的交點(diǎn)軸線映射點(diǎn)的集合。圖8中其他2維空間域與圖8a中的2維空間域類(lèi)似,在此不再贅述。綜合和的2維空間域,即可獲得不同交點(diǎn)軸線偏差的2維坐標(biāo)波動(dòng)范圍。
為提高集成學(xué)習(xí)系統(tǒng)的多樣性,Bagging集成學(xué)習(xí)通過(guò)Bootstarp[14]方法改變樣本分布,即通過(guò)對(duì)原始樣本數(shù)據(jù)進(jìn)行有放回的隨機(jī)采樣,使每個(gè)分類(lèi)器之間的樣本數(shù)據(jù)不同,提高集成分類(lèi)器的性能.通?;诸?lèi)器的樣本總數(shù)為原始樣本數(shù)據(jù)的63.2%,對(duì)于小樣本數(shù)據(jù)的分類(lèi)是一個(gè)行之有效的方法,但KDD Cup99數(shù)據(jù)集龐大,63.2%的原始數(shù)據(jù)對(duì)SVM的運(yùn)算仍然是一個(gè)難以完成的任務(wù).
為解決上述問(wèn)題,同時(shí)減少樣本信息的丟失,本文對(duì)Bagging算法的取樣方式進(jìn)行了改進(jìn).假設(shè)擬采用的基分類(lèi)器個(gè)數(shù)為k,初始化k值,并將樣本劃分為均等的k份.為避免劃分?jǐn)?shù)據(jù)集時(shí)樣本類(lèi)型分布不均,分別將每類(lèi)樣本平行劃分為k份,再進(jìn)行隨機(jī)組合.由于各子集之間相互獨(dú)立,集成系統(tǒng)的多樣性得到顯著改善.圖1為本文采用的樣本分割示意圖.
圖1 樣本分割示意圖
為提高集成學(xué)習(xí)系統(tǒng)的多樣性,出現(xiàn)了多重?cái)_動(dòng)機(jī)制,即將能夠增大集成個(gè)體差異性的擾動(dòng)方法結(jié)合,以達(dá)到比單一擾動(dòng)更好的效果.本文采用二重?cái)_動(dòng),將特征擾動(dòng)與樣本擾動(dòng)結(jié)合,達(dá)到提高集成學(xué)習(xí)多樣性的目的.
本文采用獨(dú)熱編碼對(duì)字符特征數(shù)值化,導(dǎo)致特征維數(shù)增加,冗余特征增多,計(jì)算成本增大,因此在特征選擇前需對(duì)特征進(jìn)行降維處理.采用主成分分析法(PCA)將高維特征映射到低維空間,得到全新的正交特征集合.過(guò)程如下:
給定一個(gè)m行n列的矩陣X(m為樣本數(shù),n為特征維數(shù)),計(jì)算樣本均值公式為
(4)
式中xi為X中第i個(gè)樣本,i=1,2,…,m.
(5)
則AAT為n階方陣.假設(shè)有一n維非零向量L,使AAT=L,則l和L分別為AAT的特征值和特征向量.將特征向量按對(duì)應(yīng)特征值由大到小排列成矩陣,根據(jù)貢獻(xiàn)率取前k行組成矩陣P,則特征降至k維后的目標(biāo)矩陣為
(6)
貢獻(xiàn)率是每一特征攜帶有效信息的數(shù)值度量,公式為
(7)
(7)式中l(wèi)j為第j個(gè)特征的特征值,j=1,2,…,n.
圖2 不同特征維數(shù)下的準(zhǔn)確率
為保證較少維數(shù)的特征包含較多的信息,進(jìn)行PCA降維時(shí),通常選取貢獻(xiàn)率占總貢獻(xiàn)超過(guò)90%的前n維特征作為最終的降維結(jié)果.為避免經(jīng)驗(yàn)選取的誤差,PCA降維數(shù)按照貢獻(xiàn)率由大到小選取,由1到46遞增,觀察測(cè)試集的分類(lèi)結(jié)果.圖2為10個(gè)SVM運(yùn)行的平均值,當(dāng)降維至28時(shí),測(cè)試樣本的準(zhǔn)確率較高,此后隨著特征維數(shù)的增加,準(zhǔn)確率趨于平穩(wěn).
經(jīng)PCA降維后,對(duì)所得全新的28維特征進(jìn)行選擇,構(gòu)造不同的特征子集,以提高集成學(xué)習(xí)的多樣性.考慮到實(shí)際應(yīng)用中需對(duì)入侵行為作出快速準(zhǔn)確的判斷,本文基于信息增益(IG)對(duì)特征分類(lèi)能力進(jìn)行度量,信息增益值表示已知特征X的信息而使得類(lèi)Y信息不確定性減少的程度.基于信息增益的特征選擇是一種典型的過(guò)濾式選擇方法,其特征選擇過(guò)程與后續(xù)分類(lèi)器無(wú)關(guān),大大降低了計(jì)算成本.信息增益(IG)是基于熵理論的評(píng)估方法,其描述如下:
設(shè)數(shù)據(jù)集D中包含k個(gè)類(lèi),第j類(lèi)占總樣本比例為Pj(j=1,2,…,k),則數(shù)據(jù)集D的經(jīng)驗(yàn)熵為
(8)
設(shè)特征屬性A有n個(gè)不同的取值{a1,a2,…,an},根據(jù)特征A的取值將數(shù)據(jù)集D劃分為n個(gè)子集{D1,D2,…,Di,…,Dn},|Di|為第i個(gè)子集的樣本個(gè)數(shù),|Dij|為子集Di中隸屬于第j類(lèi)的樣本個(gè)數(shù),特征A關(guān)于數(shù)據(jù)集D的經(jīng)驗(yàn)熵為
(9)
由(8)和(9)式可得特征A對(duì)數(shù)據(jù)集D的信息增益值
IG(D,A)=H(D)-H(D,A).
(10)