楊韌 盧賢濤
摘? 要:目前主流的惡意流量檢測方法是對所有流量都進行安全檢測,耗時長,資源浪費大。為節(jié)省資源并提高流量檢測效率,文章基于機器學習的白流量過濾算法開發(fā)了一套能快速辨別并過濾全流量中白流量的過濾系統(tǒng)。系統(tǒng)包括文件檢測模塊、算法模塊和可視化模塊三部分。實驗證明,相較于傳統(tǒng)算法,文章提出的算法能在保證安全性的前提下大大提高流量過濾的效率,節(jié)省大量資源。
關(guān)鍵詞:機器學習;白流量過濾;惡意流量檢測
中圖分類號:TP311? 文獻標識碼:A? 文章編號:2096-4706(2023)03-0086-04
White Traffic Detection and Filtering System Based on Ensemble Learning
YANG Ren, LU Xiantao
(School of Computer Science and Information Security, Guilin University of Electronic Technology, Guilin? 541004, China)
Abstract: The current mainstream malicious traffic detection method is to perform security detection on all traffic, which takes a long time and wastes resources. In order to save resources and improve the efficiency of traffic detection, this paper develops a set of filtering system that can quickly identify and filter white traffic in full traffic based on the white traffic filtering algorithm of machine learning. The system includes three parts: file detection module, algorithm module and visualization module. Experimental results show that, compared with traditional algorithms, the algorithm proposed in this paper can greatly improve the efficiency of traffic filtering and save a lot of resources on the premise of ensuring security.
Keywords: machine learning; white traffic filtering; detection of malicious traffic
0? 引? 言
近年來,互聯(lián)網(wǎng)科技飛速發(fā)展,網(wǎng)絡(luò)安全也越來越重要,隨著互聯(lián)網(wǎng)的普及,各種各樣層出不窮的網(wǎng)絡(luò)攻擊會對網(wǎng)絡(luò)和用戶造成巨大的損失。傳統(tǒng)檢測惡意流量的方法是對全流量進行檢測,即對所有流量都進行無差別的檢測,找到并攔截惡意流量。但現(xiàn)階段網(wǎng)絡(luò)中的流量大多數(shù)是DNS、HTTPS、視頻流量等正常流量,惡意流量的占比往往不足千分之一,對所有流量都進行檢測沒有必要,并且會造成大量資源的浪費,極大地消耗設(shè)備性能。
針對傳統(tǒng)流量檢測方法的缺陷,文章介紹了一種基于集成學習的白流量檢測過濾系統(tǒng),從白流量的特征出發(fā),在進入系統(tǒng)的全流量中,自動識別并過濾無害的白流量,然后對剩下的可疑流量進行分類,阻止惡意流量,輔助網(wǎng)絡(luò)運維人員進行后續(xù)工作,以達到提高檢測效率,節(jié)約時間和資源的目的。
1? 系統(tǒng)總體框架設(shè)計
本系統(tǒng)由文件檢測模塊、算法模塊、可視化模塊三部分組成,系統(tǒng)結(jié)構(gòu)圖如圖1所示,其中,文件檢測模塊用于檢測上傳文件是否為csv格式,以及上傳文件是否包含規(guī)定的流量特征;算法模塊主要作用是通過對進入系統(tǒng)的流量進行檢測,然后判斷該流量是惡意流量還是白流量并對白流量進行過濾??梢暬K的主要作用是在系統(tǒng)的安全檢測模塊檢測出惡意流量后,表格展示被判斷為惡意流量的流量,可視化惡意流量的占比,以及提供表格導出的功能。本系統(tǒng)主要通過集成學習算法——Voting Classifier算法對網(wǎng)絡(luò)流量進行分類預測,實驗結(jié)果顯示,本系統(tǒng)對白流量的檢測準確率達到了99.03%。
2? 具體實施方法
2.1? 算法設(shè)計
文章設(shè)計了一種基于集成學習的軟件定義網(wǎng)絡(luò)DDOS攻擊協(xié)同防御方法,如圖2所示。
其具體步驟如下:
步驟1:啟動SDN控制器進行流量數(shù)據(jù)采集,收集正常流量和攻擊流量的數(shù)據(jù),并將數(shù)據(jù)存儲在CSV文件中。需要監(jiān)控和采集的特性和參數(shù)如下:
(1)IP源的速度:該特性給出了在特定時間間隔內(nèi)進入網(wǎng)絡(luò)的TP源的總數(shù)??s寫為SSIP,定義為式(1):
(1)
其中SumIPsrc為每個流進入的IP源總數(shù),T為采樣時間間隔。檢測系統(tǒng)每T秒進行一次流量監(jiān)控和數(shù)據(jù)采集,并保存在該時間段內(nèi)的源IP個數(shù)??刂破餍枰凶銐虻恼A髁亢凸袅髁繑?shù)據(jù),機器學習算法才能預測攻擊。對于普通攻擊,SSIP通常較低,而對于攻擊,計數(shù)通常較高。
(2)流量計數(shù):每個進入網(wǎng)絡(luò)的流量都有一個特定的流量計數(shù)。正常流量比DDOS攻擊流量少。
(3)流量表項的速度:在一定時間間隔內(nèi),網(wǎng)絡(luò)中交換機的流量表項總數(shù)??s寫為SFE,定義為式(2):
(2)
這是攻擊流量檢測的一個非常相關(guān)的特征,因為在DDOS攻擊的情況下,流量表項的數(shù)量在固定的時間間隔內(nèi)會比正常流量的流量表項的速度值顯著增加。
(4)流量對比值:指在T個時間段內(nèi),交換機流入的流量條目總數(shù),即交互IP數(shù)除以總流量??s寫為RPF,定義為式(3):
(3)
其中SrcIP為網(wǎng)絡(luò)流中協(xié)作IP的總數(shù),N為總IP數(shù)。在正常流量情況下,第i條流的IP源與第j條流的目的IP相同,第j條流的IP源與第i條流的目的IP相同。這說明了一個交互流,而當它是DDOS攻擊流量時就不是這樣了。受到攻擊時,到達目標主機的時間T的流表項迅速增加,目標主機無法響應。因此,當DDOS攻擊開始時,攻擊流量會突然減少。將協(xié)作流總數(shù)除以總流量,使該檢測參數(shù)可擴展到不同運行條件下的網(wǎng)絡(luò)。
步驟2:將收集到的數(shù)據(jù)放入檢測模型進行訓練,具體如下:
(1)對數(shù)據(jù)進行預處理和特征降維。首先進行數(shù)據(jù)標準化,接著進行特征降維。通過結(jié)合過濾法和嵌入法的降維算法,能夠盡可能地避免出現(xiàn)特征選擇偏差及彌補各單一特征選擇算法的不足。選用過濾法中的兩種特征選擇算法卡方驗證與互信息算法,以及嵌入法中的兩種特征選擇算法輕量級高校梯度提升樹(LGBM)與極限隨機樹算法計算特征貢獻(權(quán)重)的排序。在四個算法結(jié)果子集中采用Voting投票策略選擇出權(quán)重綜合較高的特征集合作為最優(yōu)特征子集。
(2)引入集成學習中的多樣性度量進行基分類器間的組合效果評估,選擇優(yōu)質(zhì)的異質(zhì)集成學習基分類器模型。對于擬選擇的基分類器模型采用貝葉斯優(yōu)化參數(shù),通過計算模型的準確率(ACC)和曲線下面積(AUC),完成第一次的基分類器過濾。
模型ACC的計算公式如式(4)所示:
(4)
式(4)中,TP表示預測值與實際值一致且均為正值的樣本數(shù);FP表示預測值為正且真值為負的樣本數(shù);TN表示預測值與實際值一致且均為負值的樣本數(shù);FN表示其預測值為負值且其真值為正值的樣本數(shù)。
AUC使用受試者工作特征ROC曲線,其計算方法如式(5)所示,AUC為1則對應理想分類器,其表示公式為:
(5)
式(5)中M、N分別表示正負樣本個數(shù),表示正樣本i的排序編號,M*N表示隨機從正負樣本各取一個情況數(shù)。
(3)采用基于Bagging集成算法的加權(quán)投票機制進行步驟(2)選擇基分類器模型的集成。系統(tǒng)獲取基分類器的ROC曲線并根據(jù)ROC曲線計算AUC值,隨后使用準確率和AUC值作為加權(quán)投票機制的權(quán)重。分類器間集成賦權(quán)函數(shù)如式(6)所示:
(6)
式(6)中,Uaoc,i表示第i個基學習器的ROC曲線未覆蓋的面積(Uaoc,i=1-AUC)和分別為所有基學習器中ROC曲線未覆蓋面積的最大值和最小值,ei、eb、ew分別表示第i個分類器準確率、集合中準確率最低的分類器準確率以及集合中準確率最高的分類器準確率。
步驟3:將步驟(3)生成的集成模型嵌入SDN控制器,啟動DDOS攻擊檢測模塊。當正常流量產(chǎn)生時,檢測模型算法將其預測為正常流量,當有攻擊流量產(chǎn)生時,立即將其檢測為DDOS攻擊,并阻斷其進入的端口。若某個端口被阻斷,控制器仍然允許其他端口的正常流量通過??刂破髟谝欢螘r間后解除阻塞端口并重新開始檢測,如果攻擊仍然活躍,它會再次檢測并阻塞該端口。只要攻擊持續(xù),阻塞就會持續(xù)下去。
2.2? 模型的訓練
2.2.1? 數(shù)據(jù)集的選擇
本系統(tǒng)采用IDS 2017以及Darknet 2020數(shù)據(jù)集用作模型的訓練集。數(shù)據(jù)集包含14種現(xiàn)代網(wǎng)絡(luò)攻擊流量類型,包括FTP-Patator、SSH-Patator、DoS GoldenEye等,如表1所示。文章僅使用該數(shù)據(jù)集中第一層中的良性流量作為訓練集。
2.2.2? 數(shù)據(jù)預處理
原始流量數(shù)據(jù)是按時間保存的,實驗中采用Python中的Pandas庫,首先是Label標準化,原始數(shù)據(jù)中標簽值是以字符串形式存儲,運用LabelEncoder()函數(shù)將數(shù)據(jù)的標簽進行編碼,接著進行數(shù)據(jù)標準化,防止有些特征的方差過大。最后是數(shù)據(jù)清洗,對于缺失的數(shù)據(jù)行、數(shù)據(jù)中無效的數(shù)值(包括NAN值與正負無窮大)的數(shù)據(jù)行進行剔除,數(shù)據(jù)預處理過程如圖3所示。
2.2.3? 現(xiàn)實流量采集以及工具使用
本系統(tǒng)使用Wireshark軟件進行流量采集,抓包軟件Wireshark具有非常強大的功能,可以捕獲網(wǎng)卡上的特定流量信息。文章采IDS 2017數(shù)據(jù)集,IDS 2017數(shù)據(jù)集使用CICFlowMeter作為流特征提取工具,能夠根據(jù)提交的.pcap文件生成有多個特征的csv文件,使用方法有兩種:在線和離線模式。在線模式可以實時監(jiān)控并產(chǎn)生特征,監(jiān)聽結(jié)束之后可以保存到本地;離線模式是提交一個.pcap文件,得到一個包含特征的csv文件。
2.2.4? 特征重要性及特征降維
在進行現(xiàn)實流量采集過程中發(fā)現(xiàn),對于不同的流量數(shù)據(jù),使用CICFlowMeter特征提取工具,并不都能獲得類似IDS 2017中的78個完整特征,文章采用SKLearn庫中的feature_importances_方法進行特征降維,采取10次特征重要性提取,對決策樹、隨機森林以及極限隨機數(shù)得出的重要性進行排序,如表2所示。分別選擇Destination Port、Fwd Packet Length Max等一共18個特征進行訓練。如圖4所示。
2.3? 模型訓練與參數(shù)設(shè)計
在實際數(shù)據(jù)測試中,發(fā)現(xiàn)對于音頻流量等RandomForestClassifier的預測準確率會比ExtraTreesClassifier高,但對于視頻流量以及broswing流量結(jié)果卻恰恰相反,于是本算法模型加入了集成學習算法,對于上述兩個分類器的預測結(jié)果,VotingClassifier選擇voting='hard'參數(shù)。分類器參數(shù)如表3所示。
對于IDS 2017中2 604 998條數(shù)據(jù),使用SKLearn中的train_test_split選用test_size=.20,random_state=42參數(shù)劃分測試訓練集進行模型的訓練,訓練集白流量與惡意流量分別為435 076與429 619條數(shù)據(jù)進行模型訓練,白流量與惡意流量占比約為1:1。
3? 實驗測試
3.1? 精確值測試
文章通過以下步驟完成精確值測試:
(1)首先是準確率測試,使用SKLearn中的train_test_split選用test_size=.20,random_state=42參數(shù)劃分測試訓練集進行模型的訓練,得到的172 654條測試集。用score()對預測結(jié)果與標簽進行比較打分,得出RandomForest準確率為98.89%,ExtraTreesClassifier準確率為98.91%,集成學習準確率為99.03%。
(2)使用Darknet中良性流量作為測試集,精確度如表4所示。
(3)使用自己采集的真實數(shù)據(jù)集,運用Wireshark捕捉的兩份數(shù)據(jù)集,分別為僅包含http協(xié)議數(shù)據(jù)realtime.csv以及包含視頻流量,音頻流量,Chat以及Email流量等的正常網(wǎng)絡(luò)流量srcdata.csv,兩個數(shù)據(jù)集的預測準確率都為100%。
3.2? 時間與占用內(nèi)存測試
RandomForest測試所消耗時間為11 ms,ExtraTreesClassifier測試所消耗時間為11 ms,集成學習測試所消耗時間為42 ms。在算法運行期間,通過調(diào)用Windows任務(wù)管理器觀察可知,此算法占用內(nèi)存約為5 GB大小。
4? 結(jié)? 論
互聯(lián)網(wǎng)發(fā)展越來越快,網(wǎng)絡(luò)中的流量也越來越多,流量檢測技術(shù)也越來越智能。傳統(tǒng)的檢測方法耗時太長,占用資源太多,檢測效率也相對低下。文章基于集成學習,通過多種方式,開發(fā)出了安全,高效的白流量檢測技術(shù),大大節(jié)省了檢測時間,解放了大量資源,有很大的應用價值和市場潛力,順應了時代的發(fā)展。
本系統(tǒng)雖然已經(jīng)實現(xiàn)了預期功能,但是仍需在實踐中繼續(xù)改進、完善,比如本系統(tǒng)占用的內(nèi)存達到了5 GB大小,在后續(xù)開發(fā)中可以通過改進算法等方式進一步壓縮。
參考文獻:
[1] 李中魁.基于動態(tài)閾值的網(wǎng)絡(luò)流量異常檢測方法研究與實現(xiàn) [D].成都:電子科技大學,2010.
[2] JIN S,YEUNG D S . A covariance analysis model for DDoS attack detection [C]//IEEE International Conference on Communications.IEEE,2004:1882-1886.
[3] 孫知信,張玉峰.基于多維支持向量機的P2P網(wǎng)絡(luò)流量識別模型 [J].吉林大學學報:工學版,2010,40(5):1298-1302.
[4] 左進,陳澤茂.基于改進K均值聚類的異常檢測算法 [J].計算機科學,2016,43(8):258-261.
[5] 張德慧,張德育,劉清云,等.基于粒子群算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化技術(shù) [J].計算機工程與設(shè)計,2015,36(5):1321-1326.
作者簡介:楊韌(2001—),男,漢族,安徽寧國人,本科在讀,研究方向:網(wǎng)絡(luò)安全技術(shù)。
收稿日期:2022-09-06
基金項目:廣西大學生創(chuàng)新創(chuàng)業(yè)訓練計劃立項項目(202110595169)