魏金太, 高 穹
(1. 河南林業(yè)職業(yè)學院 信息與藝術設計系, 河南 洛陽 471002; 2. 中國洛陽電子裝備試驗中心, 河南 洛陽 471003)
信息通信網(wǎng)絡的發(fā)展為人們日常生活質量的改善做出了重要的貢獻, 而且被視為社會和經(jīng)濟的基礎架構. 然而, 對基礎網(wǎng)絡架構的安全威脅已經(jīng)變得越來越嚴重, 現(xiàn)在有必要提高安全等級以確保眾多組織間可信的通信網(wǎng)絡. 但是, 互聯(lián)網(wǎng)以及其他網(wǎng)絡上的安全數(shù)據(jù)通信總是會受到入侵以及濫用等威脅, 所以入侵檢測系統(tǒng)已成為計算機及網(wǎng)絡安全的重要組成部分.
入侵檢測是一種用來保護計算機以及網(wǎng)絡系統(tǒng)避免受到潛在威脅的安全方法, 基于檢測信息源的不同, 入侵檢測可以分為網(wǎng)絡入侵檢測系統(tǒng)和主機檢測系統(tǒng). 入侵檢測機制通常也被分為兩大類: 特征檢測和異常檢測.
特征檢測試圖通過已知的攻擊信息去發(fā)現(xiàn)惡意事件, 如果事件與已知的攻擊相似則檢測完成. 特征檢測在應對已知攻擊時是非常有效的, 但是, 對于新的攻擊是完全不起作用的. 而另一方面, 異常檢測卻在檢測未知攻擊方面相對有優(yōu)勢, 但會產(chǎn)生較高的誤警率.
目前已提出了很多方法應用于入侵檢測系統(tǒng)的設計, 例如, 有研究提出了結合特征檢測和異常檢測兩種方法用于入侵檢測系統(tǒng), 對異常檢測采用模糊邏輯, 對特征檢測采用專家系統(tǒng), 而特征選擇使用遺傳算法[1], 也有研究直接將遺傳算法用于分類中[2].
曾經(jīng)有研究將基于特征約減的信息增益應用于入侵檢測中, 在KDDCUP’99數(shù)據(jù)集上進行了4種機器學習方法的對比后, 最終發(fā)現(xiàn)J48分類器比貝葉斯網(wǎng)絡、 OneR以及NB分類器的效果都要好[3], 也有研究采用了KDDCUP’99數(shù)據(jù)集來評測用于入侵檢測涉及的K均值以及樸素貝葉斯的方法[4].
支持向量機[5]以及主成分分析法[6]也被應用于入侵檢測系統(tǒng)中. 有研究提出了基于支持向量機的入侵檢測系統(tǒng), 并采用投票的模式進行特征選擇[7]. 也有學者對應用到入侵檢測系統(tǒng)中的不同人工免疫算法進行了綜述[8]. 有研究將隨機森林應用到了網(wǎng)絡入侵檢測系統(tǒng)設計中, 提出的模型在KDD’99競賽中獲得了最好結果[9]. 然而在該系統(tǒng)中, 由于入侵檢測審計數(shù)據(jù)具有較多的不相關屬性, 隨機森林選擇屬性時易出現(xiàn)過度隨機現(xiàn)象, 導致誤警率較高. 因此, 有研究在結合隨機森林分類器的同時, 使用加權K均值算法的混合入侵檢測系統(tǒng), 通過加權K均值算法構建異常檢測模塊, 根據(jù)隨機森林算法獲得特征, 然后對入侵攻擊進行決策判斷[10]. 該方法雖然降低了誤檢率, 但是由于每個樹狀節(jié)點的隨機特征數(shù)目設置和森林中樹的數(shù)目都比較大, 導致檢查速度變慢, 無法應用在真實網(wǎng)絡中進行異常檢測. 入侵檢測研究的一個最大挑戰(zhàn)就是分類器的設計, 采用網(wǎng)絡模式對分類器進行訓練, 準確地從正常事件中識別出攻擊模式并使假陽性越低越好. 基于網(wǎng)絡入侵檢測的另一個挑戰(zhàn)就是對數(shù)據(jù)集中多種多樣攻擊模式的選擇以及預處理.
本文為了解決這兩大挑戰(zhàn), 采用隨機森林構建了一個入侵檢測模型. 同時為了解決入侵檢測事件與正常時間樣本數(shù)目的不均衡, 在所提框架中, 采用信息增益進行特征約減, 合成少數(shù)過采樣算法用于改善少數(shù)類的預測.
從隨機森林的定義[11]來看, 它是眾多由原始訓練數(shù)據(jù)經(jīng)過抽樣后構成的樹的集成. 為了對一個輸入向量中新的對象進行分類, 將輸入向量放到森林中的每棵樹上. 每棵樹都會對該對象做出決策, 對應該分到哪個類中分別進行投票. 最終, 森林選擇所有樹投票最多的那個類作為該對象的分類.
森林中每棵樹的建立過程如下:
1) 令原始訓練數(shù)據(jù)中的樣本個數(shù)為N. 有放回地進行抽樣N次形成一個新的訓練數(shù)據(jù)集, 生成一顆新的樹, 沒有被抽到的原始數(shù)據(jù)集中的樣本叫做out-of-bag數(shù)據(jù).
2) 令原始訓練數(shù)據(jù)集中的輸入特征總數(shù)定為M. 在有放回抽樣過程中, 只有m個屬性隨機地被選進每棵樹中, 其中m 森林中每棵樹的準確度以及不同樹之間的相關性, 決定著整個森林的錯誤率. 當相關性增大時錯誤率也隨之增大, 當每棵樹準確度增大時森林的錯誤率降低. 準確率和相關性都依賴于參數(shù)m的設定, 減小m則相關性和準確度都會降低. 與單一的決策樹算法相比, 隨機森林在大數(shù)據(jù)集上更加高效, 準確度更高. 隨機森林可以處理標定數(shù)據(jù)并且不會出現(xiàn)過擬合, 最終的分類決策是由集成的決策樹進行預測的多數(shù)投票結果. 如果分類的類別不是近似均勻分布的, 那么一個數(shù)據(jù)集會出現(xiàn)不平衡性. 網(wǎng)絡數(shù)據(jù)由大量的合法流量以及小部分非法流量構成. 類似于大多數(shù)分類器, 隨機森林在面對極不平衡訓練數(shù)據(jù)集時也存在學習的問題. 隨機森林算法主要是用來減小整體上分類的錯誤率, 對于不平衡的數(shù)據(jù)集進行抽樣生成決策樹的過程中, 大部分樣本屬于占絕大部分的合法流量的類. 顯然, 隨機森林分類器能夠減小整體預測的錯誤率, 主要是因為其改善了大部分數(shù)據(jù)類的預測準確度, 而對于占小部分的非法流量類的預測準確度卻比較差. 有兩種重采樣方法可以用來增加分類器對小部分類別的敏感度: 對大類別降采樣以及對小類別過采樣. 為了解決數(shù)據(jù)集的不平衡性問題, 我們采用合成少數(shù)過采樣算法對訓練數(shù)據(jù)進行預處理. 與前人采用的對小部分類別抽樣進行替換[12]相比, 過采樣方法是對原始數(shù)據(jù)執(zhí)行一些操作然后生成新的合成樣本, 而本文的合成抽樣方法是結合線分割以及k近鄰最小類的方法來生成新的樣本數(shù)據(jù). 其中過采樣的樣本數(shù)量由k近鄰中隨機選擇的鄰居決定, 生成的合成樣本取不同的特征向量以及最近鄰之間的差異, 然后從0到1中生成一個隨機數(shù)去乘以這個差異, 最后將得到的乘積加到新生成的特征向量中. 特征選擇是應用機器學習算法對數(shù)據(jù)處理之前的關鍵步驟, 需要衡量一個特征是否與特定的問題相關. 采用有效的特征來設計分類器不僅可以減小數(shù)據(jù)量的大小, 同時還可以提高分類器的性能, 并增強對數(shù)據(jù)的理解能力. 在特征約減中一個主要問題就是選擇有效的屬性以達到不同類之間最佳的區(qū)分效果. 有兩種常用的特征約減方法: 過濾和打包. 打包是指根據(jù)機器學習算法的實際性能表現(xiàn)來選擇特征子集, 很大程度上依賴于選用的機器學習算法. 而過濾是根據(jù)數(shù)據(jù)的統(tǒng)計特性來評估特征, 不涉及任何機器學習算法. 一般情況下, 打包與過濾相比較, 前者能夠生成更好的特征子集, 但是運行速度較慢, 需要更多的計算資源. 本文在特征選擇時引入了信息增益這個參數(shù), 把信息增益應用到特征選擇需要計算數(shù)據(jù)中每個屬性的熵值. 熵值的大小用來表示特征對數(shù)據(jù)分類的影響, 如果一個特征對數(shù)據(jù)分類的影響很小, 那么其信息增益值就很小, 甚至對分類器準確度無影響的特征可以直接忽略掉. 令向量X和C分別表示樣本屬性(x1,x2,…,xm)以及類別屬性(c1,c2,…,cn). 對于給定的屬性X與相關聯(lián)的類別屬性C之間的信息增益可以由式(1)計算 IG(C;X)=H(C)-H(C|X), (1) 其中, (2) 式中:P(C=ci)是類別屬性ci出現(xiàn)的概率, 而 (3) 式中:IG(C;X)為屬性X對于類別C的信息增益,H(C)為C的熵,H(C|X)為c的平均條件熵. 本文中X表示訓練數(shù)據(jù)集中獨立的輸入特征, 而C表示類別(正常, Dos攻擊等). 本文提出的入侵檢測系統(tǒng)(IDS)框架如圖 1 所示. 在提出的框架中合成少數(shù)過采樣用于增加分類器對占小部分的類的敏感性, 基于信息增益的特征選擇用于特征約減. 框架中的另外一個主要模塊就是隨機森林分類器, 用它對數(shù)據(jù)進行分類. 各個組塊整體上是按照流式的工作方式進行運行的. 圖 1 開發(fā)的入侵檢測系統(tǒng)框架Fig.1 Proposed IDS framework 合成少數(shù)過采樣模塊對占少數(shù)的類別進行過采樣處理, 使訓練數(shù)據(jù)達到需求的等級. 合成少數(shù)過采樣生成了訓練數(shù)據(jù), 這個訓練數(shù)據(jù)是相對平衡的數(shù)據(jù), 可以直接用作之后的特征選擇模塊的輸入. 使用特征選擇模塊中式(1)來計算上一模塊生成的訓練數(shù)據(jù)的特征, 然后按照特征的信息增益值對它們進行排序. 為了選擇最優(yōu)的特征子集, 采用如下算法: Step 1 依特征信息增益進行排序(從高到低). Step4 選取前n個特征的極小值, 這些特征權重的總和要大于指定的閾值T. 從i=1開始(具有最高信息增益的特征) Wn=Wn+W(xi), 如果 Wn≥T, 跳轉到Step5, 否則 i++ 并重復Step4. Step5 n=i (選擇前n個特征作為一個新的特征集). T是用于選擇最優(yōu)特征子集的閾值, 由用于分類的訓練數(shù)據(jù)所決定. 框架中的特征選擇模塊將新的特征約減后的數(shù)據(jù)轉發(fā)到隨機森林分類器, 同時也會向測試數(shù)據(jù)預處理器發(fā)送一份約減后的特征列表. 本文采用NSL-KDD數(shù)據(jù)集, 它是KDDCup’99上入侵檢測數(shù)據(jù)集的一個增強版本. 對于KDDCup’99數(shù)據(jù)集最大的限制是它的冗余記錄非常多, 78%的訓練記錄以及75%的測試記錄都是重復的, 這導致學習算法將會偏向于出現(xiàn)頻率更高的記錄, 因此會影響對少數(shù)類別(U2R和R2L攻擊)的識別. 即使是NSL-KDD數(shù)據(jù)集也不能夠非常完美地去表示真正的網(wǎng)絡數(shù)據(jù), 它只是一種用于檢測網(wǎng)絡入侵的有效的基準數(shù)據(jù)集[13]. 在NSL-KDD數(shù)據(jù)集中, 模擬的攻擊可以分為以下四類. DoS攻擊: 拒絕服務攻擊是攻擊者通過消耗目標網(wǎng)絡帶寬以及計算資源來阻止對網(wǎng)絡資源的合法請求. 探測攻擊: 探測攻擊是一系列攻擊, 攻擊者在發(fā)起攻擊之前對目標網(wǎng)絡進行掃描以獲得目標系統(tǒng)信息. 獲取root權限攻擊(U2R): 這種情況下, 攻擊者以正常用戶的身份接入到系統(tǒng), 并利用系統(tǒng)的弱點獲取系統(tǒng)的root權限. 獲取訪問權限攻擊(R2L): 攻擊者在遠程主機上沒有賬號, 通過向目標主機網(wǎng)絡發(fā)送數(shù)據(jù)包并利用系統(tǒng)的漏洞來獲取本地的訪問權限成為目標主機的一個用戶. NSL-KDD訓練集包括22種訓練攻擊類型, 不同的攻擊類型以及他們相應的類別如表 1 所示. 表 1 NSL-KDD訓練數(shù)據(jù)集中的攻擊類型以及所屬類別 表 2 展示了NSL-KDD訓練數(shù)據(jù)集的整體分布情況, NSL-KDD入侵檢測數(shù)據(jù)集總共包含了41個特征. 表 2 NSL-KDD訓練數(shù)據(jù)分布 之前的很多研究都把對記錄的分類集中在兩大類上, 即: 正常和攻擊. 在我們的入侵檢測系統(tǒng)中考慮了5種分類情況: 正常, DoS攻擊, 探測攻擊, R2L攻擊以及U2R攻擊. 入侵檢測系統(tǒng)的性能對比通常包括兩方面: 特征選擇算法選擇的特征數(shù)目以及機器學習算法分類的準確度. 為了評估本文提出框架的性能, 我們使用以下性能指標: 混淆矩陣, 檢測率, 誤警率, 準確度以及建立模型所需時間. 混淆矩陣主要是用來總結測試數(shù)據(jù)上分類器的預測性能, 分類器做出的預測包含4種可能的結果, 如表 3 所示. 表 3 混淆矩陣 真陽性: 數(shù)據(jù)本身所屬的類別為陽性而分類器判定的結果為正確. 假陰性: 數(shù)據(jù)本身所屬類別為陽性而分類器判定的結果為錯誤. 假陽性: 數(shù)據(jù)本身所屬類別為陰性而分類器判定結果為正確. 真陰性: 數(shù)據(jù)本身所屬類別為陰性而分類器判定結果為錯誤. 其他的性能指標可以依據(jù)混淆矩陣利用式(4)~(6)進行計算 (4) (5) (6) 本文提出的架構的實驗環(huán)境為inteli5-2430M處理器2.4GHz, 4GB內存. 使用版本為3.6.9 的WEKA機器學習工具構建入侵檢測模型. 在提出的模型中, 采用了NSL-KDD全訓練集10份交叉驗證測試集. 10份交叉驗證指的是將數(shù)據(jù)集隨機地分割成10個不相連的大小近似的子集, 其中1份用作測試集而另外9份用作分類器的構建. 測試集用于評估準確性, 用10份不同的子集重復10次后, 每個子集都進行了測試. 最終的預測準確度取這10個模型的預測準確度的均值, 當數(shù)據(jù)量不足時互驗證起到很好的補充作用. 在實驗中, 為了解決之前提到的原始NSL-KDD訓練數(shù)據(jù)不平衡問題, 利用合成少數(shù)過采樣的方法將少數(shù)過采樣到800%, 而對于基于信息增益的特征選擇, 將閾值設為T=0.9. 經(jīng)過合成少數(shù)過采樣后的新的訓練數(shù)據(jù)集的分布情況如表 4 所示. 訓練數(shù)據(jù)集中的少數(shù)類(U2R)由原來的52增加到了468. 表 4 合成少數(shù)過采樣生成的NSL-KDD訓練數(shù)據(jù)分布 在應用了基于信息增益的特征選擇方法后, 合成少數(shù)過采樣生成的新的NSL-KDD訓練數(shù)據(jù)集中的41個特征, 根據(jù)其相應的信息增益值約減到如下19個特征: 3, 4, 5, 6, 12, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39. 為了驗證少數(shù)類(R2L, U2R)上的特征約減效果, 將基于信息增益的特征選擇方法應用到一個只包含三類的訓練數(shù)據(jù)集上, 并利用合成少數(shù)過采樣對該數(shù)據(jù)集進行擴充. 這里的3個類別分別為R2L, U2R和大多數(shù)類, 大多數(shù)類是正常, Dos攻擊以及探測攻擊的合并類. 我們把這個數(shù)據(jù)集稱作少數(shù)類攻擊模式數(shù)據(jù)集, 對于這個數(shù)據(jù)集我們發(fā)現(xiàn)3種額外的特征: 1,10和14. 所以與其對應的新的特征集合為如下22種有效的特征: 1, 3, 4, 5, 6, 10, 12, 14, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 38 和 39. 為了對比實驗結果, 表 5 進行了匯總. 所提模型對于所有類別的檢測率都有所改善, 尤其是對于少數(shù)類(U2R)檢測率從原來的0.596增加到0.962. 建立模型所需的時間也有大幅度減少, 主要是因為訓練的數(shù)據(jù)集是相對平衡的數(shù)據(jù)集, 而且特征進行了約減. 表 5 性能對比結果 本文采用隨機森林分類器開發(fā)了一個高效的有效的入侵檢測系統(tǒng). 為了改善在不平衡訓練數(shù)據(jù)集中少數(shù)類(R2L和U2R)的檢測率, 使用了合成少數(shù)過采樣技術, 并選取了少數(shù)類所有的重要特征構建了少數(shù)類攻擊模式. 實驗結果顯示本文提出的方法減少了模型構建所需的時間, 同時大幅提高了少數(shù)類的檢測率. 下一步的研究計劃是將本文所提方法與其他機器學習技術相結合來開發(fā)一個實時的自適應入侵檢測系統(tǒng), 這樣就可以有效地檢測出新的攻擊類別. [1]Eid H F, Azar A T, Hassanien A E. Improved real-time discretize network intrusion detection system[C]. Proceedings of Seventh International Conference on Bio-Inspired Computing: Theories and Applications, 2013: 99-109. [2]Jarrah O Y, Siddiqui A, Elsalamouny M, et al. Machine-learning-based feature selection techniques for large-scale network intrusion detection[C]. IEEE 34th International Conference on Distributed Computing Systems Workshops (Icdcsw), 2014: 177-181. [3]陳友, 沈華偉, 李洋, 等. 一種高效的面向輕量級入侵檢測系統(tǒng)的特征選擇算法[J]. 計算機學報, 2007, 30(8): 1398-1408. Chen You, Shen Huawei, Li Yang, et al. An efficient feature selection algorithm toward building lightweight intrusion detection system[J]. Chinese Journal of Computers, 2007, 30(8): 1398-1408. (in Chinese) [4]趙新星, 姜青山, 陳路瑩, 等. 一種面向網(wǎng)絡入侵檢測的特征選擇方法[J]. 計算機研究與發(fā)展, 2009, 46(Z2): 69-78. Zhao Xinxing, Jiang Qingshan, Chen Luying, et al. A feature selection method for network intrusion detection[J]. Journal of Computer Research and Development, 2009, 46(Z2): 69-78. (in Chinese) [5]饒鮮, 董春曦, 楊紹全, 等. 基于支持向量機的入侵檢測系統(tǒng)[J]. 軟件學報, 2003, 14(4): 798-803. Rao Xian, Dong Chunxi, Yang Shaoquan, et al. An intrusion detection system based on support vector machine[J]. Journal of Software, 2003, 14(4): 798-803. (in Chinese) [6]Damopoulos D, Menesidou S A, Kambourakis G, et al. Evaluation of anomaly-based IDS for mobile devices using machine learning classifiers[J]. Security and Communication Networks, 2012, 5(1): 3-14. [7]張振海, 李士寧, 李志剛, 等. 一類基于信息熵的多標簽特征選擇算法[J]. 計算機研究與發(fā)展, 2013, 50(6): 1177-1184. Zhang Zhenhai, Li Shining, Li Zhigang, et al. Multi-label feature selection algorithm based on information entropy[J]. Journal of Computer Research and Development, 2013, 50(6): 1177-1184. (in Chinese) [8]Kim D S, Lee S M, Kim T H, et al. Quantitative intrusion intensity assessment for intrusion detection systems[J]. Security and Communication Networks, 2012, 5(10): 1199-1208. [9]Sivatha Sindhu S S, Geetha S, Kannan A. Evolving optimised decision rules for intrusion detection using particle swarm paradigm[J]. International Journal of Systems Science, 2012, 43(12): 2334-2350. [10]任曉芳, 趙德群, 秦健勇. 基于隨機森林和加權K均值聚類的網(wǎng)絡入侵檢測系統(tǒng)[J]. 微型電腦應用, 2016, 32(7): 21-24. Ren Xiaofang, Zhao Dequn, Qin jianyong. Network intrusion detection system based on random forests and K-means clustering aigorithm[J]. Microcomputer Applications, 2016, 32(7): 21-24. (in Chinese) [11]Zhong S H, Huang H J, Chen A B. An effective intrusion detection model based on random forest and neural networks[C]. Manufacturing Systems and Industry Applications, 2011: 308-313. [12]崔振, 山世光, 陳熙霖. 結構化稀疏線性判別分析[J]. 計算機研究與發(fā)展, 2014, 51(10): 2295-2301. Cui Zhen, Shan Shiguang, Chen Xilin. Structured sparse linear discriminant analysis[J]. Journal of Computer Research and Development, 2014, 51(10): 2295-2301. (in Chinese) [13]徐培, 趙雪專, 唐紅強, 等. 基于兩階段投票的小樣本目標檢測方法[J]. 計算機應用, 2014, 4(4): 1126-1129. Xu Pei, Zhao Xuezhuan, Tang Hongqiang, et al. Object detection method of few samples based on two-stage voting[J]. Journal of Computer Applications, 2014, 4(4): 1126-1129. (in Chinese)2.2 合成少數(shù)過采樣算法
2.3 特征選擇
3 入侵檢測系統(tǒng)開發(fā)
3.1 整體框架
3.2 數(shù)據(jù)集描述
3.3 評測指標
4 實驗及結果分析
5 結 論