江澤濤 馬偉康
(桂林電子科技大學廣西圖像圖形與智能處理重點實驗室 廣西 桂林 541004)
網絡的快速發展帶來了巨大的便利,同時也帶來了一系列安全問題,如何提高網絡的主動防御能力、增強網絡的安全性成為了研究熱點。入侵檢測[1]的概念于1980年就已經被提出。隨后便出現了入侵檢測系統[2],并成為了網絡安全中的一道重要防線。
機器學習的出現使得網絡安全得到了極大的發展。機器學習中的分類算法能夠應用到入侵檢測[3-5]當中,識別“正?!焙汀胺钦!毙畔ⅲ瑢C器學習引入到入侵檢測當中極大地推動了入侵檢測系統的研究。由于網絡需要及時響應的特點,因此必須要提高入侵檢測算法的準確度和效率。文獻[6]使用SMOTE對數據進行平衡處理,之后在處理后的數據上使用GBDT算法進行分類。文獻[7]利用不同的離散化與特征選擇算法生成具有差異的多個最優特征子集,并對每個特征子集進行歸一化處理,用分類算法對提取后的特征進行學習建模。文獻[8]提出模型決策樹,該方法具備一定的抗過擬合能力,但在處理缺失數據時存在一定的困難。文獻[9]是針對一種新穎的攻擊方法,該攻擊方法是篡改訓練數據,導致支持向量機在建模過程中學習到了錯誤的數據,使得入侵檢測系統的檢測率降低,通過獲取該攻擊樣本,提出使用支持向量機解決該類型攻擊。文獻[10]提出了一種將K-means和隨機森林結合的方法,首先對數據進行預處理,再對處理后的數據使用K-means方法進行聚類操作,最后使用隨機森林對數據進行分類操作,在一定程度上提高了準確率并且減少了訓練時間。上述方法在處理入侵檢測過程中對多種數據類型的數據集都采用單一的分類器,而單一的分類器并非對每種類型數據的分類的效果都是最好的。
針對多數據類型檢測問題,本文提出了一種基于多步的集成分類器方法,該方法通過對數據進行預處理和降維操作,去除數據中冗余特征,減少噪音數據對分類結果的影響。使用處理后的訓練集構建多種分類器,完成訓練后,檢驗各個分類器的性能,選出針對每種類別中分類效果最好的分類器,使用多步分類完成對多類別數據的分類。
現代網絡傳輸數據中總是混雜著多種類型的數據,不同類型的數據之間或有很大差異或又十分相似。對于差異很大的數據,在分類時相對容易,并能得到不錯的分類效果。但對于相似的數據,則較難分類或者易錯分類,因而較難得到很好的分類結果。本文使用的KDD CUP99 10%數據集數據分布如表1。
分析KDD CUP99 10%訓練集,可知DoS類型的數據占總訓練集約80%,建立DoS的分類器模型時可以得到很好的擬合效果。但R2L和U2R分別只有52條和1 126條記錄,并且這兩個類型的數據和Normal的數據很相似,為此先將U2R和R2L合并為一種數據類型,再提出多步分類模型,該模型在進行多步分類時遵循以下原則:(1) Normal是正常類型數據,將各種攻擊類型分離出后,剩余的數據便是Normal類型,將其最后分出是為了避免過多的攻擊數據被誤檢為正常數據。(2) 其余數據的分類順序按照模型擬合度依次將不同的數據類型分類出來。根據以上兩條原則可知Normal應該最后被分離出,其余類型數據的模型擬合度由高到低分別為DoS、Probe、R2L、U2R。
數據分類步驟如下:1) 對數據進行預處理,預處理操作包括數據標準化[11]和特征選擇。2) 選取對DOS類型數據分類效果較好的分類器1對預處理后的數據進行分類操作,此時得到DoS類型的數據和Rest1(剩余部分)數據,此時Rest1數據中還混雜有Probe、R2L、U2R和Normal四種類型的數據。3) 選取對Probe類型分類效果較好的分類器2,對Rest1數據進行分類,分類完成后得出Probe類型的數據和Rest2數據,此時Rest2數據中混雜有R2L、U2R和Normal三種類型的數據。4) R2L和U2R這兩種類型的數據較為相似本文中將R2L和U2R作為相同的類型的數據,選取對Normal類型數據分類效果較好的分類器3,完成分類操作后得到Normal類型和R2L、U2R類型的數據,完成分類操作。
使用該方法會在每次分類過程中經過對比選取對某一類型最優的分類器,這種操作會得到更好的分類效果。針對入侵檢測系統多步分類模型圖如圖1所示。

圖1 多步分類模型圖
在高維的數據中總是存在一些冗余的特征,這些特征會使一些分類器產生過擬合現象并且對分類結果產生較大的影響。對數據進行特征選擇[12]可以降低數據復雜度,減少數據噪聲對分類結果的影響,使得模型泛化能力更強,預防過擬合問題,增加模型可讀性。根據特征選擇的形式又可以將特征選擇方法分為:過濾法(Filter)、包裝法(Wrapper)和嵌入法(Embedded)3種。本文使用Embedded式特征選擇中的基于學習器的特征選擇方法。
Embedded式特征選擇是將特征選擇過程與學習器訓練過程融為一體,兩者在同一個過程中完成。在基于樹的特征選擇方法中,使用基于樹的預測模型可以用來計算特征的重要程度,因此可以用來消除不相關的特征?;跇涞哪P褪鞘褂没嵯禂祷蛘呔讲顚μ卣鬟M行選擇,而在最近鄰模型中是通過計算特征之間的距離對數據進行分類。為了增強選出特征的普適性,本文使用多種機器學習模型(支持向量機、決策樹、隨機森林等)進行特征選擇,對每種模型得出的結果按照特征重要性由高到低排序,選出特征中對分類結果影響較大的特征。但學習器在選擇特征過程中存在著不同學習器打分不一定相同的現象,因此使用相對投票法即預測為得票最多的標記,若同時有多個標記獲最高票,則從中隨機選取一個選取排名較高的特征。
(1)


圖2 特征選擇模型圖
本文選用多種學習器并進行多次實驗,對每種類型的數據都單獨進行特征選擇,避免不同特征對不同類型的數據產生的影響不同,因此分別對本文中四組類型的數據分別進行特征選擇,得到對每種類型分類效果最好的特征。選取出現頻率最高的一些特征,有利于增強被選出特征的普適性。
Bagging[13]是在樣本數量為M的原始訓練集中隨機且有放回地抽取樣本數量為N的子訓練集,構成n個樣本空間,每個樣本空間的總樣本數N總是小于原始訓練集的樣本數量M,使用抽取出的子訓練集構建估計器,把這些估計器的預測結果結合起來形成最終的預測結果。因此Bagging具有較強的泛化能力,能夠有效地降低模型的方差,但對于訓練集的擬合程度較差,也就是模型存在較大的偏倚。
在進行多步分類過程中,選擇Bagging分類器對Normal、R2L、U2R數據進行分類時存在結果不穩定的現象。分析后發現,在KDD99訓練集中R2L和U2R的數據量分別為1 126和52條,而Normal的數據量多達97 278條,Bagging分類器采用有放回的隨機取樣方法,在取樣得到的子訓練集中可能只包含極少的R2L和U2R數據甚至無法取到R2L和U2R數據,因此造成分類結果不穩定。本文改進Bagging取樣方法,按照比例有放回地隨機抽取各個類型中的樣本,得到較為平衡的子訓練集,保證每次取樣都能完整地將每種類型的樣本包含到子訓練集中,這種改進有利于減少模型的偏倚問題,使分類結果較為穩定。將改進后的Bagging稱為B-Bagging(Balance-Bagging)。取樣方法如下:
(2)
式中:k為某類型樣本中所要選出的數據量;n為某類型樣本中總的數據量;N為整個樣本集中的數據量;P為子訓練樣本的總數據量。
使用多步分類算法需要對數據進行多次分類操作,在每次分類操作時選取分類器對分類結果有著很大的影響。對不同類型的數據選擇合適的分類器對分類結果有著積極的影響,能提高分類準確率。
設訓練集T={x1,x2,…,xn}每個樣本為42維,包含41個特征和最后一列數據標簽。數據標簽共有4類(U2R和R2L合并為1類),在建模時需要選取每種標簽進行建模。多步分類算法的實現如算法1和算法2所示。
算法1分類器模型選取
輸入:數據集T。
輸出:三種分類器模型。
步驟1根據式(1)對數據進行標準化處理。
步驟2將DoS類型的數據取出,使用不同學習器的特征選擇算法對數據的特征進行多次排序,按照分類影響重要性由高至低依次排序。使用投票法思想將多次出現的重要特征選取出來。其余類型的數據特征選擇使用和DoS相同的特征選擇方法。
步驟3使用特征選擇后的數據分別建立分類器,取出DoS類型數據集D進行標記,并將余下的數據集P標記為同一類,共形成了兩類數據,使用數據訓練分類器模型。完成建模后去除DoS類型的數據。
步驟4使用步驟3分別對Probe、R2L和U2R訓練分類器模型,直至完成使用類型模型的建立。
步驟5輸出三種分類器模型。
完成分類器建模后可以使用分類器模型對待分類數據進行分類操作,設待分類數據集M={x1,x2,…,xn},該數據集中每個樣本有41維特征不包含標簽。
算法2分類器分類
輸入:數據集M。
輸出:分類結果。
步驟1根據式(1)對數據進行標準化處理。
步驟2復制數據集M,得到相同的數據集M′。
步驟3首先從數據集中分類得出DoS類型數據,選出對DoS類型數據有著積極影響的特征,使用分類器模型完成第一次分類,得出DoS類型數據和Rest1數據。
步驟4從數據集M′中刪除DoS類數據,得到數據集N,復制數據集N得到相同的數據集N′。按照數據類型的分類順序,重復步驟3,直至分類完成。
步驟5輸出分類結果。
本實驗采用KDD CUP99數據集,使用訓練集建立分類器模型,測試集測試分類器的性能。在KDD CUP99數據集中,數據共有五大類:NORMAL、Probe、DoS、U2R、R2L。其中:Probe類包括6小類,DoS類包括10小類,U2R類包括8小類,R2L類包括15小類。這五大類數據的分布極其不平衡,比如在訓練集中DoS類的數據多達391 458記錄,而數據量最少的為U2R僅僅只有52條記錄。使用準確率(Accuracy)、檢測率(DR)和誤檢率(FAR)作為算法的評價標準。

(3)

(4)
KDD CUP99數據集是入侵檢測做模型分析時最常用到的數據集之一,因此本文中采用KDD CUP99的10%訓練集(共494 021條數據)建立學習器模型,使用KDD CUP99的測試集(共311 027條數據)驗證模型效果,該數據集每行表示一個記錄,每條記錄有41維特征和一個類標簽。在該數據集中的某些特征值為非數值類型,因此首先對數據中的非數值類型值轉換為數值型。例如第二列特征Protocol-type,其值有三種協議:tcp、udp、icmp。對其進行數值化處理,將tcp、udp、icmp依次轉化為0、1、2,如表2所示。

表2 非數值類型特征轉化為數值類型
在入侵檢測過程中,對給定的數據集進行分類操作。這需要準確分辨出哪些是正常數據,哪些是異常數據。因此,本文將訓練集中正常數據的類標簽Normal的替換為‘0’,其余非正常數據標簽Probe、DoS依次替換為‘1’,‘2’,U2R和R2L 替換為‘3’。
對數據完成標準化操作,數據標準化又稱去均值和方差按比例縮放,表示原始值與均值之間差多少個標準差,是一個相對值,所以它也有去除量綱的效果。同時,它還有兩個額外的好處:均值為0,標準差為1。對數據進行Z-score標準化處理:
(5)

KDD數據集中,每條數據包含41個特征,一些特征對分類結果有較小或者沒有影響,因此需要進行特征選擇操作。本文使用基于學習器的特征選擇方法選擇重要特征,主要用到了支持向量機、KNN、決策樹、GBDT、LightGBM五種學習器。對每次選取的特征按照重要性進行排序,得到五種特征排序結果,選取在五種排序里重要性較大的特征進行實驗對比,最終選取實驗結果較好的特征。對DoS類型的數據一共選取了15維的特征,Probe類型的數據一共選取了19維的特征,R2L和U2R一共選取了18維的特征。所選取的特征對分類結果有著積極的影響,被去除的特征對分類結果影響較小或者是一些噪音數據影響分類結果。各個類型數據選取的特征如表3所示。

表3 各個攻擊類型所選取的重要特征

續表3
在多步分類過程中,經過對比實驗選出對各種類型數據分類效果最好的分類器。對DoS類型數據使用支持向量機分類器,對Probe類型數據使用決策樹分類器,對U2R和R2L使用B-Bagging分類器。分類器如圖3所示。

圖3 分類器模型圖
因為U2R和R2L的訓練樣本數量只有1 178條記錄,因此在建立B-Bagging的模型時需要重新調整訓練集中Normal、U2R和R2L樣本數量的比例,在實驗中發現提升U2R和R2L訓練樣本的比例能提高其檢測率并降低誤檢率。使用KDD CUP99的驗證集對建立的模型進行測試并與其他方法進行對比,得到各個類型的檢測率和誤檢率分別如表4和表5所示。

表4 各種方法的檢測率對比結果

表5 各種方法對數據集總體的檢測率和誤檢率對比
可以看出,使用支持向量機使得DoS的檢測率達到了99.55%且誤檢率僅為5.23%;決策樹對Probe的檢測率達到了90.88%且誤檢率僅為6.74%;B-Bagging方法使U2R和R2L的檢測率達到了52.16%且誤檢率僅為8%。各個攻擊類型數據的檢測率都有相應的提高,并且總體的檢測率也有一定提升,但總體的誤檢率有所增高,原因是正常數據被預測為非正常數據的樣本增多,這在現實生活中,可能會影響用戶訪問網絡的體驗,但增強了網絡的安全性,因此也在合理范圍內。U2R和R2L在KDD訓練集中共有1 178個樣本,相比較總體的49萬條樣本所占比例極低,這對在KDD測試集的31萬條樣本中檢測16 417條的U2R和R2L帶來了一定難度,但在使用了本文的B-Bagging方法后也帶來了較高的提升。在網絡中U2R和R2L會帶來更大的危害,提升U2R和R2L的檢測率對增強網絡的安全具有更大的意義。各方法的檢測率和誤檢率的對比分別如圖4、圖5所示。

圖4 不同方法的檢測率對比

圖5 不同方法的誤檢率對比
針對每種特征對每種數據分類時的影響并不相同和不同的分類器對不同類型數據分類結果存在差異的問題,本文采用了多步分類的方法并將相似度較高的U2R和R2L合并為一類,同時采用不同的分類器對每種類型的數據進行分類。該方法能充分利用數據特征對分類結果產生的積極影響,并且選取針對每種類型數據最優的分類器進行分類,達到最好的分類效果。實驗結果表明該方法切實可行,采用檢測率和誤檢率這兩個評價指標與其他方法進行對比可以看出該方法對分類效果的提升。為進一步提高算法的性能與準確率,下一步考慮將深度學習和神經網絡相結合用到入侵檢測系統當中。