?

基于機器學習的網絡異常流量檢測

2024-02-27 06:45沈徳松
安徽科技學院學報 2024年1期
關鍵詞:網絡流量降維特征值

沈徳松

(安徽文達信息工程學院,安徽 合肥 231201)

隨著互聯網的快速發展和普及,網絡安全問題日益突出。網絡異常流量是指在網絡通信中出現的與正常通信模式不符的數據流,可能是由于網絡攻擊、硬件故障或配置錯誤等原因引起的[1-2]。網絡異常流量的存在給網絡運營商和用戶帶來了嚴重的安全風險和經濟損失。為了及時發現和應對網絡異常流量,網絡異常流量檢測成為了網絡安全領域的重要研究方向。機器學習算法能夠通過學習大量的網絡流量數據,自動發現其中的模式和規律,并能夠對未知的異常流量進行準確的分類和識別。其中,XGBoost作為一種強大的分類模型,以其高效的訓練速度和優秀的預測性能,在網絡異常流量檢測中得到了廣泛的應用和研究[3-4]。

本研究基于機器學習的網絡異常流量檢測,采用XGBoost分類模型,對136.4萬條異常流量樣本的數據集進行研究和實驗。通過對網絡流量數據進行特征提取和預處理,構建合適的特征向量表示,并利用XGBoost模型進行訓練和預測,以實現對網絡異常流量的準確檢測和分類,有助于提高網絡異常流量檢測的準確性和效率,為網絡安全領域的相關研究和實踐提供有益的參考和借鑒。

1 理論基礎

1.1 XGBoost算法

機器學習從數據中學習模式和規律,從而實現自主決策和預測,其基本原理是通過訓練算法來構建一個模型,該模型能夠從輸入數據中學習,并根據學習到的知識對新的未知數據進行預測或分類。在監督學習中,算法通過已標記的訓練數據來學習輸入和輸出之間的映射關系,以便對新的輸入數據進行預測。

XGBoost是一種基于梯度提升樹的監督學習算法[5]。其由多個弱分類器組合構建一個強分類器,其核心思想是通過多輪迭代來逐步優化模型的預測能力。在每一輪迭代中,XGBoost算法通過計算損失函數的梯度和二階導數,來確定當前模型的殘差和權重更新方向。接著,使用一棵新的決策樹來擬合殘差,并將其加入到當前模型中。通過多次迭代,XGBoost算法逐步減小模型的預測誤差,提高模型的泛化能力。在XGBoost算法中,對于二分類問題,XGBoost算法的損失函數采用二元邏輯損失函數(Logistic Loss);對于多分類問題,常用的損失函數是多元邏輯損失函數(Softmax Loss),如式(1)所示:

(1)

1.2 主成分分析

主成分分析(Principal Component Analysis,PCA)用于將高維數據轉換為低維表示,同時保留數據的主要信息。PCA的原理基于數據的協方差矩陣和特征值分解,包括數據標準化、計算協方差矩陣、特征值分解、特征值排序和投影。

首先,對原始數據進行標準化處理,使得每個特征的均值為0,方差為1,從而消除不同特征之間的量綱差異,確保每個特征對降維的貢獻度相同。協方差矩陣反映了不同特征之間的相關性,因此計算標準化后的數據的協方差矩陣。對于一個d維數據集,協方差矩陣的大小為d×d。接著,對協方差矩陣進行特征值分解,得到特征值和對應的特征向量。特征值表示了數據在特征向量方向上的方差,而特征向量則表示了數據在新的特征空間中的方向。將特征值按照從大到小的順序進行排序,選擇前k個特征值對應的特征向量作為主成分。最后,將原始數據投影到選取的主成分上,得到降維后的數據,如圖1所示。

圖1 PCA降維過程Fig.1 Dimensionality reduction process

(2)

對于標準化后的數據,計算協方差矩陣并進行特征值分解,如式(3)所示:

(3)

最終選擇15個特征值對應的特征向量作為主成分,并將原始數據投影到選取的主成分上[6],如式(4)所示:

Y=X×Vk

(4)

其中,Y為降維后的數據;X為原始數據;Vk為前k個特征向量組成的矩陣。

1.3 網絡異常流量

網絡流量是指在網絡通信中傳輸的數據量,包括IP數據包、TCP/UDP數據包、HTTP請求和響應、DNS查詢和響應、ICMP數據包等。網絡流量來源于用戶設備、服務器、網絡設備等。如個人電腦、手機、平板等用戶終端設備;提供各種網絡服務的服務器,如網站服務器、郵件服務器;路由器、交換機、防火墻等網絡設備。

網絡異常流量具體表現[7]:網絡流量突然大幅增加,超過正常范圍;網絡通信的延遲明顯增加,導致數據傳輸速度變慢;網絡服務無法正常提供,如網站無法訪問、郵件無法發送等;網絡中出現異常的數據包,如異常的IP數據包、TCP/UDP數據包等;網絡中出現大量的連接嘗試,可能是惡意攻擊或掃描行為。網絡攻擊、硬件故障、軟件錯誤和網絡擁堵都可能造成網絡異常流量。其中,網絡攻擊包括DDoS攻擊、惡意軟件、網絡蠕蟲等,如圖2所示。攻擊者通過大量的請求或惡意代碼導致網絡流量異常增加;網絡設備的故障或配置包括路由器故障、交換機端口錯誤配置;軟件錯誤指程序崩潰、內存泄漏等;網絡流量超過網絡帶寬容量,導致網絡擁堵,也會影響正常通信。通過對網絡異常流量的檢測和分析,可以及時發現和應對網絡安全問題,保障網絡的正常運行和數據的安全。異常流量檢測通常包括數據采集、特征提取、異常檢測算法和異常流量報警。XGBoost基于梯度提升樹的機器學習算法,在異常網絡流量檢測中具有高性能、魯棒性、特征重要性評估和可解釋性的優勢,因此被廣泛應用于該領域。

圖2 DDos攻擊類型Fig.2 Type of DDos attack

2 基于機器學習的網絡異常流量檢測

2.1 數據預處理

采用天池阿里云的CICIDS2017數據集,樣本量為136.4萬條,有77個特征列和1個標簽列。特征屬性有Active Std、Active Max、Idle Min、Subflow Fwd Packets、SYN Flag Count等。標簽列的取值有8類,即需要構建八分類的XGBoost模型,如表1所示。其中,“BENIGN”表示正常網絡流量,“DoS Hulk”“DDoS”等則表示不同類型的網絡異常流量。在136.4萬條樣本中,正常網絡流量的比例為71.08%;DoS Hulk導致的異常流量占比為16.94%;DDoS導致的異常流量占比為9.38%;DoS GoldenEye導致的異常流量占比為0.75%;FTP-Patator導致的異常流量占比為0.58%;FTP-Patator導致的異常流量占比為0.43%;SSH-Patator和DoS Slowhttptest導致的異常流量占比均為0.42%。

表1 樣本分布Table 1 Sample distribution

對136.4萬條網絡流量進行數據清洗和檢測,數據無缺失值和異常值,即數據集的完整性和可用性較高。對77個特征列做PCA降維處理。將降維后的特征數量定義在[1,29]范圍內,循環遍歷指定主成分的數量。每次循環中,將解釋方差比例添加到累積方差貢獻率中,并可視化解釋方差比例與主成分數量之間的關系,以幫助分析網絡異常流量數據,解釋方差比例是衡量主成分所保留的信息量的指標,表示降維后的數據集能夠解釋原始數據集中的多少方差。在實驗中,選擇15個主成分時,解釋方差比例與主成分數量之間的關系接近100%,即保留了大部分原始數據集的信息(圖3)。在網絡異常流量檢測中,PCA將原始網絡流量數據從高維空間降維到低維空間,同時保留了網絡流量數據的主要信息。并將降維后的數據用于訓練XGBoost異常檢測模型。

圖3 解釋方差比例與主成分數量的關系Fig.3 Explaination of the relationship between the proportion of variance and the number of principal components

2.2 構建XGBoost分類模型

將PCA降維后得到的15個特征維度作為訓練和測試特征,并對網絡流量數據進行劃分。其中,70%作為訓練集,即95.48萬條樣本用于訓練XGBoost模型;30%作為測試集,即40.92萬條樣本用于評估XGBoost模型的性能。

對于XGBoost算法而言,標簽必須是數值型的,而不是字符串。因此,為了將字符串標簽轉換為數值型,實驗對8個類別的標簽進行one-hot編碼處理。one-hot編碼是將離散特征轉換為二進制向量的編碼方法。對于每個可能的取值,one-hot編碼會創建一個新的二進制特征,該特征只有一個元素為1,其余元素為0。每個離散特征就被表示為一個高維稀疏向量,其中每個維度對應一個可能的取值。對于網絡異常流量檢測,one-hot編碼的步驟如下:

(1)確定標簽列的所有取值:確定表1中8種網絡流量類型。

(2)創建全零向量:對于每條網絡流量樣本,創建一個與異常類型數量相等的全零向量。

(3)將對應位置為1:對于每條網絡流量樣本,根據其異常類型,將對應位置的值置為1。

通過上述one-hot編碼將原始的字符串標簽轉換為稀疏的二進制向量,只有一個位置為1,其余位置都為0。one-hot編碼編碼可以更好地表示不同的異常類型,并作為輸入傳遞給XGBoost模型進行訓練和預測。在訓練XGBoost模型時,學習率、樹的深度和分類器數量是影響性能的重要參數。學習率控制每棵樹對最終預測結果的貢獻程度,較小的學習率可以使模型更加穩定,但可能需要更多的樹來達到較高的性能。較大的學習率可以加快模型的收斂速度,但可能導致過擬合。通常從較小的學習率開始,然后逐漸增加,直到確認最終值。樹的深度決定了每棵樹的復雜度,較深的樹可以更好地擬合訓練數據,但也容易過擬合。較淺的樹可以減少過擬合的風險,但可能無法捕捉到復雜的模式分類器數量是使用XGBoost進行多分類任務時的分類器個數。較多的分類器可以提高模型的性能,但也會增加計算成本。在實驗中,學習率和樹的深度均采用網格搜索方式獲得,分類器數量的則設置范圍為[120,130,140,150,160,170,180]。

2.3 結果分析

如圖4所示,采用XGBoost算法作為網絡異常流量識別的分類模型,當XGBoost算法的分類器設置為170個時,分類準確率最高,達到了96.32%。當分類器數量小于140個時,XGBoost算法無法充分學習網絡異常數據的復雜模式,導致欠擬合。隨著分類器數量由140個增加到170個,XGBoost可以更好地擬合訓練數據,準確率隨之增加。然而,當分類器數量超過170個時,XGBoost算法出現了過度擬合訓練數據,導致在未見過的數據上表現不佳,分類準確率降低。綜上,XGBoost算法對網絡異常數據特征有較高的學習能力。同時,增加分類器的數量并不總是能夠進一步提高性能。在分類器數量超過170個之后,XGBoost可能已經學習到了數據中的大部分模式和規律,進一步增加分類器的數量可能只會引入噪聲和冗余,從而降低分類準確率。

圖4 基于XGBoost的異常流量檢測準確率Fig.4 XGBoost-based abnormal traffic detection accuracy

3 結論

網絡異常流量可能是網絡攻擊的跡象,也可能是數據泄露的指示,會導致網絡擁塞和性能下降。如入侵、惡意軟件傳播或拒絕服務攻擊、敏感數據的傳輸、未經授權的數據訪問等。及時檢測和監控網絡異常流量是保護網絡安全、預防攻擊和數據泄露、維護網絡性能以及遵守合規要求的重要手段[8-11]。通過及時發現和應對異常流量,可以及早發現并采取相應的安全措施,以保護網絡免受攻擊,有利于提高網絡的安全性和可靠性。

基于XGBoost算法的網絡異常流量檢測是一種有效的方法。對136.4萬條網絡流量數據的檢測實驗中,分類準確率達到了96.32%。該指標證明了XGBoost在網絡異常流量檢測中的有效性和優勢。XGBoost在網絡異常流量檢測中仍然有巨大的潛力。未來可以探索更多的特征工程方法,并結合其他深度學習算法,構建更加強大和魯棒的網絡異常流量檢測系統,提高模型的性能。對于異常網絡流量帶來的危害,仍然需要采取關聯防范措施來應對,包括建立實時流量監控系統,對網絡流量進行持續監測和分析,加強網絡安全措施,使用防火墻、入侵檢測系統(IDS)和入侵防御系統(IPS)等技術手段。并定期更新和維護網絡設備和軟件,及時修復漏洞和弱點以減少網絡受到攻擊的風險。

猜你喜歡
網絡流量降維特征值
基于多元高斯分布的網絡流量異常識別方法
混動成為降維打擊的實力 東風風神皓極
一類帶強制位勢的p-Laplace特征值問題
基于神經網絡的P2P流量識別方法
單圈圖關聯矩陣的特征值
降維打擊
AVB網絡流量整形幀模型端到端延遲計算
基于商奇異值分解的一類二次特征值反問題
關于兩個M-矩陣Hadamard積的特征值的新估計
拋物化Navier-Stokes方程的降維仿真模型
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合