陳 磊 胡廣朋
(江蘇科技大學計算機學院 鎮江 212000)
當今世界的網絡信息技術發展非常迅速,引領了社會生產新的變革。但是隨著互聯網的快速發展,網絡安全問題也變得越來越重要,傳統的網絡安全防御往往要依賴安全專家的知識廣度和深度。但是在如今海量的應用程序和數據之下,這種專業人才的防護方式逐漸無法滿足需求,人們開始尋求利用自動化的方式來應對這個問題。所以人工智能慢慢成為網絡安全防御新的熱點。
規劃識別是人工智能中的一個重要分支。規劃識別問題,是指從觀測到的某一智能體的動作或動作效果入手,推導出該智能體目標/規劃的流程問題[3]。入侵檢測是通過對用戶行為、日志記錄或其他相關數據進行分析,識別到對系統的惡意入侵或入侵的目的的技術。從二者的概念上講,無論是規劃識別還是入侵檢測,它們都是依據某些特殊的行為來分析出智能體的目的。它們在很多方面都有共同點,比如在應用的環境,對系統的輸入輸出和最終判定的手段。在入侵檢測系統中引入規劃識別的方法,就可以預知入侵的發生,并可以提前采取相應措施。
集成學習是一種通過結合構建多個學習器來完成任務的一種學習策略[3]。大多數問題都可以通過這種思想來得到效果上的提升。AdaBoost 算法屬于集成學習中的一個典型代表[4],而且是一種串行的集成學習算法,它可以使得整體的效果越來越好。目前AdaBoost應用廣泛,它可以和很多機器算法結合以此來提高識別精度,在很多領域都有著廣泛的應用。比如在農業方面,康洋等為了解決梯田地形復雜,提取效果差的問題,使用改進的Ada-Boost算法對梯田特征的提?。?]。在工程方面,胡啟國等針對工程結構可靠性設計中存在的問題,提出基于MEA-AdaBoost-BP模型的可靠性求解方法[6]。在軍事領域,李園等提出了一種基于AdaBoost的作戰目標屬性判定方法[7]。在經濟學領域,李趙飛等利用基于代價敏感的Adaboost 算法提高了貸款違約樣本的識別率[8]。在醫療方面,高澤倫等提出了一種Bagging-Adaboost-SVM 的多分類診斷模型[9],在針對糖尿病診斷方面取得了不錯的進展。
本文將AdaBoost算法引入規劃識別,以規劃識別方法做為弱預測器。由此可建立基于AdaBoost改進的規劃識別方法,并應用于入侵檢測領域。
Adaboost 算法屬于boosting 算法中的一個重要代表[10]。它是一種串行的集成學習算法。按照boosting算法的思想,要建立多個模型,并且將它們一個一個串聯在一起,依據各樣本權重的改變從而變更基分類器的權重,最后綜合獲得一個性能較強的分類器其步驟大致如下:
步驟一:對每個樣本賦予相同的權重,然后劃分類別使得誤差率最低。
步驟二:如果誤分類沒有達到預設值0,那么提高分類錯誤的樣本權重,降低分類正確的樣本權重。
步驟三:依據新權重,再切一刀劃分類別使得誤差率最低。
步驟四:誤分類未達到0,重復步驟二。
步驟五:重復步驟三。
步驟六:誤差率如果已經達到0,整個過程結束。
以下用幾張圖來表示這個過程,如圖1所示。
圖1 Adaboost算法步驟示意圖
Adaboost 的核心思想總地來說是先對每個樣本賦予相同的權重,之后選取當前誤差最小的分類器計算其權重并且更新其樣本的權重,對這些樣本不斷地進行迭代訓練,模型會慢慢提高對這些分錯樣本的準確率,最終可以獲得一個較好的分類結果。最后通過集成各個基分類器共同得到一個較好的分類模型。
在規劃識別系統中,先輸入一個動作序列,在序列輸入時依據相關動作對智能體的預測規劃做出修改[11]。根據修改后的預測,規劃器需要生成對下一個行為的預測。所以規劃識別系統會產生一系列的預測結果。在這些結果中,有很多并不滿足新觀察到的實際情況,識別器會對已生成的預測進行修改,以滿足實際觀察到的情況。簡單來說是先預測可能的結果,然后在有新觀察時再篩選結果。按照Kautz 的規劃識別方法,可以將它看成一個邏輯層次結構[12]。在入侵檢測領域攻擊者往往會采取一定的入侵手段,并且入侵者的動作是一個線性過程,符合輸入序列的特征[13]。Adaboost算法與大多識別算法兼容性都很好,以規劃識別方法做為弱預測器。由此可建立基于AdaBoost 改進的規劃識別方法,并應用于入侵檢測領域。
針對復雜的網絡環境及入侵手段,本文提出AdaBoost 改進的規劃識別方法ABPR(Adaptive boosting planning recognition)。Adaboost 算法作為一種串行的集成算法,其核心思想是通過不斷改變樣本權重訓練弱學習器,再將這些弱學習器組合使得整體效果越來越好。根據其原理,我們可以將規劃識別方法視為一種弱預測器。首先,使用規劃識別算法對樣本進行訓練和分類,若其在預設的誤差范圍之外就不斷更新對應樣本的權重,再次訓練分類,迭代t 次達到誤差允許范圍內。在這個過程中可以得到T 個規劃識別預測器。最后將這T 個規劃識別預測器線性組合得到一個強預測器。最終輸出強預測器的識別結果。
ABPR 方法應用于入侵檢測領域主要有以下四個部分構成,即數據預處理、訓練模型調整相關參數、判斷當前安全狀態和對未來安全狀態預測。數據預處理主要是進行冗余數據刪除、缺省數據填充和對相關數據規范化,接著對數據集進行劃分并根據上述流程訓練模型調整相關參數。輸入一組信息序列提取相關目標,將目標分解降低其抽象層并更新擴展已有規劃,不斷重復這個過程,直至規劃中只存在原始動作。最后預測層對輸入信息序列做行為預測。下面對整個算法步驟做一個詳細闡述:
1)樣本數據選擇并導入訓練樣本,初始化樣本權重分布;
其中m為樣本總數,Di為各樣本初始權重;
2)設置弱預測器的數量T 與模型的結構,用規劃識別算法不斷訓練樣本
3)計算弱預測器訓練樣本的誤差率ec;
4)將誤差率ec和誤差閾值e比較,重新加權樣本;
5)計算第t個規劃識別弱預測器誤差率:
F是規劃識別弱預測器所預測的結果,yi是樣本的實際值,I是指示函數。
6)計算第t個規劃識別弱預測器的權重:
7)計算下一次迭代的樣本權重:
Bt:歸一化因子;如果沒有到達迭代次數,返回第二步繼續迭代,迭代T次為止;
8)T 次迭代后得到T 個弱預測函數ft(x)及其各自權重,通過線性組合得到強規劃識別預測器。
其流程如圖2所示。
圖2 AdaBoost改進的規劃識別預測流程圖
本節實驗采用的數據集是NSL-KDD,它是由KDD99 數據集改進而來,該數據集中包括正常流量和四類攻擊流量,分別為Normal,DOS,U2R,R2L和Probing attack。Normal 表示正常流量,DOS 是拒絕服務攻擊,U2R 是提取攻擊,R2L 是遠程用戶攻擊,Probing attack 是端口掃描攻擊。NSL-KDD 數據集的每條記錄都是由41 個屬性和一個類別標簽構成,其中包括9 個離散特征。這個類別就是Normal 和Attack。Attack 又依據數據具體特征劃分為上述四種攻擊類別。這四種攻擊又能進一步劃分為39 種入侵類型。這39 種攻擊類別只有22 種在訓練集中出現,其余17 種只存在于測試集。數據集構成如圖3。
圖3 NSL-KDD的數據構成
入侵檢測的評價標準主要有四個部分,即準確率(Accuracy),精確率(Precision),召回率(Recall)和F1分數(F1-score)。
表1 混淆矩陣
根據這些度量,各個評價標準計算方法如下:
準確率(Accuracy):分類正確的樣本占樣本總數的比例。
精確率(Precision):正確識別為攻擊樣本占模型識別為攻擊數量的比例。數值越大越好。
召回率(Recall):被正確識別為攻擊的樣本占實際攻擊樣本的比例。同樣越大越好。
F1分數(F1-score):精確率和召回率的調和平均。
根據上述相關介紹,NSL-KDD 數據集中包含41 個相關特征屬性,但是并不是每個特征都對模型的建立有影響,并且維度過高也不利于相關計算,所以采取皮爾遜相關系數[14]和線性判別分析[15]對數據進行降維,最后得到22 個相關特征。將這22 個相關特征作為Adaboost 改進的規劃識別模型的輸入因子考慮,將其作為輸入變量,以此建立基于Adaboost 改進的規劃識別預測模型??梢酝ㄟ^輸入變量數和輸出變量數確定相關輸入輸出節點。由上述可知,輸入變量為22 個,輸出變量為5個,因此設置輸入節點n為22,輸出節點m為5??梢源_定隱含層大致范圍,具體參數設置見表2。
表2 規劃識別參數
基于AdaBoost算法的原理,我們把每個規劃識別模型視為一個弱預測器,并設定規劃識別弱預測器的個數為100,以構建一個改進的AdaBoost 規劃識別預測模型。用規劃識別訓練樣本數據,將誤差超過0.005 的樣本設置為下次加強的訓練樣本,變更相應的權重,經過迭代訓練獲得100 個弱預測器和每一個預測器的相應權重,最終加權線性組合得到一個規劃識別強預測器。用最終得到的預測器對測試集測試。其中,沒有改進的規劃識別預測模型的各項參數與上述參數相同。
本次實驗是基于五分類的,使用兩種方法分別測試了22544個樣本的混淆矩陣。
圖4 PR方法的混淆矩陣
PR 方法測試集中9711 個正常樣本有9427 個被正確識別,12833 個異常樣本有11206 個被正確識別。根據上表和上節的計算公式可以求得相關評價指標,這里我們主要分析精確率和召回率,由于訓練樣本有限,U2R 和U2L 的分類效果不太好。表3展示了相關評價指標。
表3 PR方法各項評價指標結果
圖5 ABPR方法的混淆矩陣
使用ABPR 方法,相比PR 方法對正確樣本的識別數量提升到了9624 個,對異常樣本的識別提高到了11744 個,對各種攻擊類別的識別也有明顯提升,各個指標對比見表4。
下面主要分析兩種方法的精確率和召回率的比較,如圖6所示。
圖6 精確率比較
圖7 召回率比較
基于ABPR的IDS在精確率和召回率方面都要比PR 方法有所提升,特別表現在樣本較少的情況下。在訓練集中數量較多的三種類型Normal、DOS和Probing 中,都表現出較高的精確率和召回率。在召回率方面Probing 類攻擊,ABPR 相較于PR 方法提升了11.16%,R2L 攻擊提升了10.57%。這兩種攻擊類型改進的規劃識別方法提升較大。另外幾種提升較小幾乎持平。但是在精確率方面,對四種攻擊的識別都有一定的提升。特別是U2R 攻擊類型上。對于整個模型的分類準確率上ABPR 的準確率94.92%也要略高于PR方法的91.52%。
綜合上述比較,AdaBoost改進的規劃識別方法相比于傳統規劃識別方法在入侵檢測方面的效果更好,對各種攻擊的識別都有一定的提升。
本文介紹了一種AdaBoost 改進的規劃識別算法并用于入侵檢測中。該方法的主要思想是把串行的集成算法與傳統的規劃識別算法相結合,將各個規劃識別模型作為弱分類器,先利用規劃識別算法對樣本進行訓練分類,如果不在設定的誤差范圍內就不斷更新錯誤樣本的權重,再次訓練分類,迭代t次達到誤差允許范圍內。最后將這個過程中得到的T 個規劃識別預測器線性組合成一個強預測器。最終輸出強預測器的識別結果。實驗結果對比表明,本文提出的方法相比傳統方法有著更好的識別效果。