張康寧,廖光忠
(1.武漢科技大學計算機科學與技術學院,湖北 武漢 430081;2.武漢科技大學智能信息處理與實時工業系統湖北省重點實驗室,湖北 武漢 430081)
網絡信息時代為人們的生活和工作提供了諸多便利,與此同時網絡安全問題也逐漸受到人們的關注.防火墻作為一種傳統的網絡安全技術,通過在網絡邊界建立相應的網絡通信監控系統來隔離內部和外部網絡,以阻擋來自外部的網絡入侵.但防火墻是一種被動防護技術,面對日益隱蔽且復雜的網絡攻擊難以形成有效的保護.網絡入侵檢測作為一種主動防護手段,通過收集和分析網絡行為、安全日志及審計數據等,檢測網絡中潛在的攻擊行為,能夠在網絡系統受到危害前實現攔截和響應入侵,提供對外部攻擊、內部攻擊和誤操作的實時保護.
機器學習的發展為解決網絡入侵提供了廣闊的思路.根據檢測方法不同,入侵檢測一般分為誤用檢測和異常檢測.誤用檢測根據先驗知識對攻擊行為進行判斷,通過特征庫對比識別異常或潛在的入侵威脅,常用方法有專家系統、條件概率等[1].此類方法對已知類型的攻擊具有很高的檢測精度,但受限于先驗知識,對未知的入侵行為無法檢測,需要人為更新數據庫[2].異常檢測[3]則是通過對網絡中正常行為的普遍特征進行概括,建立入侵檢測模型,當網絡中的行為偏離此模型時,被判定為網絡入侵行為,生成警告,常用方法有統計異常檢測[4]、貝葉斯推理[5]等.此類方法能夠對未知的入侵行為進行識別,但受限于網絡行為的復雜性及多樣性,異常檢測模型難以對所有正常行為進行準確的概括,存在誤報率高的問題[6].
集成學習作為近些年機器學習領域的研究熱點,被越來越多的應用于各種領域.入侵檢測作為一個典型的分類問題,已有很多學者將集成學習應用于此類研究.為提高集成學習的檢測準確率,要求基分類器應“好而不同”[7],即要求基分類器兼具一定的準確性和多樣性.為提高基分類器之間的差異,常用的方法有數據樣本擾動、特征屬性擾動、輸出表示擾動及算法參數擾動.本文將支持向量機(SVM)與Bagging集成學習結合,對Bagging集成的樣本擾動方式進行了改進,并結合特征選擇算法來增大基分類器之間的差異,提高檢測準確率,同時避免了SVM在處理大樣本數據時的計算難題.
集成學習的基分類器常采用弱分類器,如神經網絡、貝葉斯、決策樹等.SVM作為一種強分類器,一般認為進行集成學習的性能提升有限,但由于SVM在應用上的一些缺陷,如最優解計算、參數選擇及多分類問題等,使得基于SVM的集成學習具有性能提升的空間.因此,SVM集成已成為機器學習領域的熱門研究.
SVM建立在統計學習理論[8-9]的VC維概念和結構風險最小化原理基礎上,根據有限樣本信息在模型復雜性和學習能力之間尋求折中,以獲得好的泛化能力.其基本思想是基于訓練集在樣本空間中找到一個劃分超平面,將不同類別的樣本分開.但在樣本空間中存在若干超平面能將樣本分開,因此需要找到一個最優決策面,使得分類結果的魯棒性最佳.其具體描述如下:

s.t.yi(wTxi+b)≥1,i=1,2,…,m.
(1)
(1)式為支持向量機的基本型.
求解(1)式,對約束條件添加拉格朗日乘子α(α≥0),將其轉化為求解的對偶問題,即:
(2)
解出α后,求出w與b即可得到支持向量機模型
(3)
L.K.Hansen等[10]通過將多個神經網絡結合來提高學習器泛化性能的研究,首次提出了集成學習的概念,目前集成學習代表性算法主要有Boosting[11]和Bagging.Boosting是一種迭代算法,通過前一分類器的分類結果來更新后一分類器的樣本分布,對弱學習器進行自適應調整,但其采用串行運算,計算復雜度明顯提高,難以適應高速網絡的實時入侵檢測任務.相比Boosting算法,Bagging算法的集成個體之間相互獨立,可以并行運算,大大提高了檢測效率,具有更加廣闊的應用前景.因此,本文采用Bagging-SVM集成學習來進行網絡安全的實時入侵檢測.
近年來,基于Bagging-SVM的集成學習得到了許多研究者的關注,在很多領域得到了應用,但受限于SVM難以對大規模數據進行有效的處理,集成SVM在入侵檢測方面的研究相對較少.目前針對入侵檢測通用的數據集為KDD Cup1999,其包含近500萬條訓練數據和30萬條測試數據.為應對此類超大規模數據集,常用的做法是從原始數據集中隨機抽取少量樣本進行訓練和測試.譚愛平等[12]通過隨機采樣分別從訓練集和數據集中抽取29 313和24 974個樣本用于實驗,但其總量仍只約占原始數據的1/100,大量信息被丟失.付子爔等[13]提出了一種基于增量學習的SVM算法,實現了對入侵數據的動態學習,提高了學習效率,具有一定的應用價值.但是數據增量學習新知識時不可避免的遺忘舊知識,相比整個數據集的學習準確率稍有下降.因此,如何對數據集進行比較完備學習的同時提高學習效率是入侵檢測技術具有實際應用價值的前提,而改進取樣方式的Bagging-SVM算法可以有效實現上述目標.
集成學習要求基分類器的錯誤率不能高于50%,即能達到優于各子分類器的結果.利用這一特性,SVM不必尋找最優解即能使集成學習模型達到較好的分類效果,降低了SVM求解二次規劃的時間和空間復雜度,也為核函數選擇和參數優化提供了方便.但達到上述條件必須保證基分類器之間具有較大的差異性,即集成學習的多樣性是保證分類器高準確率和泛化性的前提.
圖8a表示當時,交點軸線T-Map的2維空間域,即所有滿足的交點軸線映射點的集合。圖8中其他2維空間域與圖8a中的2維空間域類似,在此不再贅述。綜合和的2維空間域,即可獲得不同交點軸線偏差的2維坐標波動范圍。
為提高集成學習系統的多樣性,Bagging集成學習通過Bootstarp[14]方法改變樣本分布,即通過對原始樣本數據進行有放回的隨機采樣,使每個分類器之間的樣本數據不同,提高集成分類器的性能.通常基分類器的樣本總數為原始樣本數據的63.2%,對于小樣本數據的分類是一個行之有效的方法,但KDD Cup99數據集龐大,63.2%的原始數據對SVM的運算仍然是一個難以完成的任務.
為解決上述問題,同時減少樣本信息的丟失,本文對Bagging算法的取樣方式進行了改進.假設擬采用的基分類器個數為k,初始化k值,并將樣本劃分為均等的k份.為避免劃分數據集時樣本類型分布不均,分別將每類樣本平行劃分為k份,再進行隨機組合.由于各子集之間相互獨立,集成系統的多樣性得到顯著改善.圖1為本文采用的樣本分割示意圖.

圖1 樣本分割示意圖
為提高集成學習系統的多樣性,出現了多重擾動機制,即將能夠增大集成個體差異性的擾動方法結合,以達到比單一擾動更好的效果.本文采用二重擾動,將特征擾動與樣本擾動結合,達到提高集成學習多樣性的目的.
本文采用獨熱編碼對字符特征數值化,導致特征維數增加,冗余特征增多,計算成本增大,因此在特征選擇前需對特征進行降維處理.采用主成分分析法(PCA)將高維特征映射到低維空間,得到全新的正交特征集合.過程如下:
給定一個m行n列的矩陣X(m為樣本數,n為特征維數),計算樣本均值公式為
(4)
式中xi為X中第i個樣本,i=1,2,…,m.
(5)
則AAT為n階方陣.假設有一n維非零向量L,使AAT=L,則l和L分別為AAT的特征值和特征向量.將特征向量按對應特征值由大到小排列成矩陣,根據貢獻率取前k行組成矩陣P,則特征降至k維后的目標矩陣為

(6)
貢獻率是每一特征攜帶有效信息的數值度量,公式為
(7)
(7)式中lj為第j個特征的特征值,j=1,2,…,n.

圖2 不同特征維數下的準確率
為保證較少維數的特征包含較多的信息,進行PCA降維時,通常選取貢獻率占總貢獻超過90%的前n維特征作為最終的降維結果.為避免經驗選取的誤差,PCA降維數按照貢獻率由大到小選取,由1到46遞增,觀察測試集的分類結果.圖2為10個SVM運行的平均值,當降維至28時,測試樣本的準確率較高,此后隨著特征維數的增加,準確率趨于平穩.
經PCA降維后,對所得全新的28維特征進行選擇,構造不同的特征子集,以提高集成學習的多樣性.考慮到實際應用中需對入侵行為作出快速準確的判斷,本文基于信息增益(IG)對特征分類能力進行度量,信息增益值表示已知特征X的信息而使得類Y信息不確定性減少的程度.基于信息增益的特征選擇是一種典型的過濾式選擇方法,其特征選擇過程與后續分類器無關,大大降低了計算成本.信息增益(IG)是基于熵理論的評估方法,其描述如下:
設數據集D中包含k個類,第j類占總樣本比例為Pj(j=1,2,…,k),則數據集D的經驗熵為
(8)
設特征屬性A有n個不同的取值{a1,a2,…,an},根據特征A的取值將數據集D劃分為n個子集{D1,D2,…,Di,…,Dn},|Di|為第i個子集的樣本個數,|Dij|為子集Di中隸屬于第j類的樣本個數,特征A關于數據集D的經驗熵為
(9)
由(8)和(9)式可得特征A對數據集D的信息增益值
IG(D,A)=H(D)-H(D,A).
(10)