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