周翔
(長江大學電子信息學院,湖北 荊州 434023)
互聯網的快速發展,為生活中各種應用的接入提供了方便,計算機網絡已經成為人們日常生活中不可或缺的關鍵部分,互聯網規模不斷擴大。然而互聯網入侵事件并未減少,入侵對互聯網的威脅越來越大,網絡入侵的主要目的是竊取商業、軍事等機密,從而造成數據泄露,對國家和社會造成極大危害,同時通過入侵也可發動分布式拒絕服務攻擊,造成網絡或者服務癱瘓。近年來網絡入侵事件頻繁發生,對國家信息安全造成了嚴重威脅,因此入侵檢測成為計算機網絡安全研究的重要內容。
網絡入侵檢測系統在過去已經得到不斷發展,許多機器學習已經被用于入侵檢測系統中,例如改良的SVM(支持向量機)、KNN(鄰近算法)、等算法,但單獨算法對入侵檢測效果不佳。因此,本文提出集中基于集成學習的算法用于入侵檢測,提高檢測準確率。
入侵檢測這一概念來自于1980 年美國空軍的一份技術報告[1],入侵指對未經授權訪問網絡或對計算機系統構成了嚴重的威脅,其中包括拒絕服務攻擊、蠕蟲、Fuzzers、后門等。這種未經授權的網絡訪問被稱為網絡入侵。
HUSAIN 等[2]使用UNSW-NB15 數據集,提出使用XGBoost 算法構建入侵檢測系統,通過與已有的隨機森林、KNN、邏輯回歸算法進行比較,實驗結果準確率為88%,準確率不夠理想。KUSUMAPUTRI 等[3]使用NSL-KDD 數據集,通過特征選擇算法提取有用特征值,使用Optuna 算法對XGBoost 算法進行優化,從而構建入侵檢測系統,但特征選擇算法沒有明顯減少特征值數量。KABIR 等[4]使用XGBoost 算法與KNN算法堆疊,使用onehot 編碼對數據進行預處理,準確率達到94%。KASONGO 等[5]使用XGBoost 算法作為特征值選擇,用于減少特征值數量,然后應用DT(決策樹)、ANN(人工神經網絡)、LR(邏輯回歸)、KNN和SVM 模型,在這些模型中XGBoost 和KNN 表現最好,準確率約為95%。
由于單個機器學習模型準確率不理想,本文使用基于DEXL(DT-ET-XGboost-LightGBM)的集成學習算法對入侵檢測系統進行研究。
基于集成學習算法的入侵檢測工作在安全中心進行,安全中心通過獲取Pacp 文件、解析pacp 文件來獲取特征值。
網絡架構如圖1 所示。

圖1 網絡架構
入侵檢測安全中心的檢測入侵訓練的一般流程如圖2 所示。首先將數據集進行預處理,通過對特征值的重要度進行排序,然后使用貝葉斯優化算法對各個模塊進行優化得到最佳超參數。得到最佳超參數后,分別通過DT、ET、XGboost 對流量進行初次分類后,將DT、ET、XGboost 的訓練結果合并成數據集作為輸入,最后利用LightGBM 算法進行最終的分類。

圖2 安全中心運行流程
貝葉斯優化(Bayesian optimization)是基于歷史驗證的結果來決定模型下一次迭代超參數,迭代過程遠低于隨機搜索的迭代次數,能保證建模時間短的同時提高測試集上的泛化能力。其主要思想是:構建一個初始模型,根據后續結果來進行模型優化。隨著數據的積累,優化函數會離目標函數越來越近,從而得到最優解[6]。本文使用Hyperopt 框架對模型進行貝葉斯優化。
基于Hyperopt 框架的貝葉斯優化(如圖3 所示)主要過程分為4 部分:①定義目標函數。以超參數作為輸入,通過計算返回數值。②確定搜索空間。給定超參數的搜索范圍。③選擇搜索算法。用來構建下一次迭代超參數的方法。④獲取最優超參數。保存尋優過程中最優的超參數值。

圖3 LightGBM 的貝葉斯優化
以LightGBM 模型為例,不同的超參數的組合會使模型分類結果產生變化,由于LightGBM 模型超參數多,對LightGBM 模型超參數進行優化,會使模型的性能產生較大提升。將經過預處理的數據作為數據集輸入模型,通過貝葉斯超參數優化,確定超參數值,如表1 所示。

表1 超參數優化結果
隨機森林進行特征重要性評估特征值的基本思想是查看隨機森林中的每棵樹有多大貢獻,然后取平均值比較特征之間貢獻度大小。計算重要度的常見方法有2 種,一種是平均不純度的減少(mean decrease impurity),另一種是平均準確率的減少(mean decrease accuracy)。
集成學習是使用多個機器學習器來完全學習任務,從而獲得比單一的機器學習模型更好的方法,通常包括Bagging、boosting 和Stacking 等方式,集成學習可以用于分類問題集成、異常點檢測集成、回歸問題集成、特征選擇集成等。
本文采用UNSW-NB15 數據集,該數據由新南威爾士大學網絡實驗室創建,是關于入侵檢測的開源數據集。數據集中一共有9 種攻擊,共49 個特征值。本文使用其中的部分訓練集和測試集。數據集的數據量具體如表2 所示。

表2 數據分布情況
UNSW-NB15 包含字符型和數值特征,因此需要對字符型的特征值進行預處理。數據集中特征值proto、service 和state 為字符型特征,由于本文使用的是基于決策樹的算法,無需使用one_hot 編碼,故選擇label-encoding 編碼,能最大程度保留特征值數量。經過標簽編碼,將udp 替換為199,將TCP 替換為113,將none 替換為0,將INT 替換為5,將FIN 替換為4。
將經過預處理的數據集通過特征重要度計算,如表3 所示。分數越高表示特征值越重要,對模型分類影響越大,后續通過特征值重要度來選擇特征值數量,以達到檢測復雜度和準確率最優的結果。

表3 部分特征重要度排序
本文使用準確率作為評價標準,使用五折交叉驗證,準確率取5 折后的平均值,實驗硬件環境使用intel 至強E3-1230V2,RAM 為16 GB。
準確率(Accuary)是最常用、最直觀的評估指標,準確率越高分類效果越高,當入侵發送時,檢測出的概率越大。
計算方法如下:
精準率(Precision)指正常流量總數與正常流量被分類為正常流量的比值,精準度越高正常流量分類越準確,當入侵檢測運行時,能極大程度上減少誤報。
精準度公式如下:
召回率(Recall)表示所有數據集中為正常樣本檢測為正常的概率,召回率越高表示模型效果越好。召回率公式如下:
將本文提出的集成學習模型 BO-DEGL 算法與BO-DT、BO-ET、BO-XGBoost 和BO-LightGBM 算法進行比較,經過特征值重要度排序后,選取前35 個特征值作為數據集。實驗結果如表4 所示。

表4 實驗結果
實驗結果顯示,BO-DEXL 模型效果最好,準確率為95.18%,精準度為92.48%,召回率為0.943 0,BO-DEGL 在對比的算法中最高。BO-DT 模型效果最差,準確率為93.81%,精準度為90.12%,召回率為0.929 3。模型BO-DEXL 準確率相比文獻[2]提出的方法提高了7.18%,相比文獻[4]的方法準確率提高了1.18%。
結果表明,集成學習模型BO-DEXL 準確率與所比較的機器學習算法準確率具有一定優勢,模型的準確率,精準度和召回率得到了提高。
本文從網絡入侵檢測模型構建的角度,將DT、ET、XGBoost 和LightGBM 這4 種模型通過使用stacking集成的方式,每個模型都通過貝葉斯優化,最終形成BO-DEXL 模型,將BO-DEXL 模型與傳統機器學習進行對比,準確率、精準度和召回率方面都占優勢。