吳蘇亞,丁要軍
(甘肅政法大學 網絡空間安全學院,甘肅 蘭州 730000)
作為網絡安全領域的核心任務之一,網絡流量分析與檢測已成為焦點領域和網絡安全的關鍵方面。通常,網絡攻擊檢測方法包括檢測特定特征字符串、傳統機器學習和深度學習,以識別和檢測惡意網絡流量[1]。然而,在進行網絡流量檢測時,惡意樣本通常遠少于正常樣本,這可能導致傳統的機器學習方法出現過擬合問題,從而降低模型的魯棒性和準確性。2020 年,Kunakorntum 等人[2]引入了一種創新的過采樣策略,即基于概率分布的少數類生成技術,以解決數據不平衡的問題。該方法涉及使用z 分數標準化數據并刪除異常值數據。它通過考慮兩個類別的概率分布來選擇少數類樣本,并通過將所選樣本與其最近鄰的一些數據結合來生成新的實例。這一策略的目標是生成反映少數類特征分布的合成數據,同時減少噪聲的影響,降低分類交叉和過擬合的風險。
數據增強方法,如合成少數類采樣技術(Synthetic Minority Oversampling Technique,SMOTE),用 于解決不平衡的數據問題。李愛軍的方法[3]去除了重復數據,使用Tomek 鏈接消除邊界和噪聲樣本,并應用SMOTE 來平衡類別分布。郭宇等人[4]引入了TA-生成對抗網絡(TA-Generative Adversarial Networks,TA-GAN),這是一種基于生成對抗網絡(Generative Adversarial Networks,GAN)的交通數據增強技術,用于不平衡的交通分類。盡管這些方法顯示出潛力,但仍有改進的空間,比如與強大的集成學習模型相結合可以增強結果。趙曉娟[5]利用數據預處理和數據生成算法以增加少數類樣本,然后使用集成學習模型來共同解決數據不平衡的問題。
本文提出了一種結合數據增強和集成學習的網絡流量分類與檢測方法。此外,還比較了不同基本分類器的性能,以實現準確的分類和網絡流量檢測。本文使用CICIDS2017 和UNSW_NB15 數據集來驗證所提方法的性能。
為了構建分類過程,本文定義D={X1,X2,…,XN}表示由N個網絡流量樣本組成的數據集,其中每個單獨的流量樣本Xi都包含n個統計特征集合用于描述流量,這些特征分別表示為(x1,x2,…,xi,…,xn),表示描繪網絡流量本質的特定屬性。此外,相應的向量Y=(y1,y2,…,yn)包含數據集中每個流樣本所屬的類別。為了聚焦統計特征進行處理,本文刪減了CICIDS 2017 數據集的85 個特征中的7 個冗余特征,把特征數減少到了77 個。本文還刪除了UNSW_NB15 數據集中的6 個冗余特征,把特征減少至202個,再使用特征篩選器去噪自編碼器(Denoising Auto Encoder,DAE)選出占比權重最高的12個特征。部分特征如表1 所示。

表1 數據集的部分特征
為解決數據不平衡問題,避免在使用不平衡數據集訓練模型時容易出現的過擬合的情況[6-7],本文采用了一種數據增強方法。為了解決與隨機過采樣相關的問題并增強模型的泛化能力,采用了一種有效的過采樣策略,該策略的核心思想是生成新的合成數據而不只是復制現有數據。本文采用了一種常見的過采樣技術——SMOTE[8]。
SMOTE 被用來生成合成樣本,其主要參數是k,它指示要選擇多少個最近鄰樣本來生成新樣本。給定一個少數類樣本x和k個最近鄰樣本xi,生成的合成樣本xnew的計算式為:
式中:i為一個隨機選擇的鄰居;λ為一個介于0 和1 之間的隨機數,它控制了新樣本在x和xi之間的位置。本文還將SMOTE 方法與SMOTE+K-means[9]和RUS+SMOTE 方法進行比較,以確定最有效的數據增強方法。這些方法與集成學習模型結合使用,完成最終的任務。
K 均值聚類旨在將數據分成K個簇,其中K是預定義的簇數量。對于包含N個樣本的數據集X,每個樣本xi屬于一個D 維特征空間。定義K個簇的中心C={C1,C2,…,Ck},計算每個樣本xi與每個簇中心Cj之間的距離,通常使用歐氏距離或其他距離度量標準。將每個樣本分配給最近的簇,從而確定樣本的類標簽yi。對于簇Ck中的每個少數類樣本xi,選擇其K個最近鄰樣本,通常K=5。應用式(1)將生成的合成樣本xnew與原始的少數類樣本xi合并,形成一個新的平衡數據集。
式(2)是SMOTE 的主要數學公式,它與式(1)有些不同。對于給定的少數類樣本zi,其中zi是特征空間中的D 維向量,SMOTE 首先選擇該樣本的K個最近鄰樣本(通常K=5),其次對于每個最近鄰樣本zj,使用式(2)生成一個新的合成樣本znew,i,j。
隨機森林通常能夠提供較高的預測準確性。它結合了多個決策樹的預測結果,降低了過擬合的風險,因此在許多任務上表現良好。
本文使用隨機森林[10]等集成學習模型進行對比,用決策樹作為基分類器。在數據集中,樣本對于一個總體訓練集T,T中共有N個樣本,每次有放回地隨機選擇N個樣本。因為有放回,所以雖然是N,但是不可能遍歷所有樣本。這樣選擇好了的N個樣本用來訓練一個決策樹。特征:假設訓練集的特征個數為d,每次僅選擇k(k<d)個構建決策樹。隨機森林的流程如圖1 所示。

圖1 隨機森林的流程
本文構建決策樹的過程如下:
(1)T中共有N個樣本,有放回地隨機選擇N個樣本。這選擇好了的N個樣本被用來訓練一個決策樹,作為決策樹根節點處的樣本。
(2)當每個樣本有M個屬性,在決策樹的每個節點需要分裂時,隨機從這M個屬性中選取出m個屬性,滿足條件m<<M。然后采用某種策略,從這m個屬性中選擇1 個屬性作為該節點的分裂屬性。
(3)當每個樣本有M個屬性時,在決策樹的每個節點需要分裂時,隨機從這M個屬性中選取出m個屬性,滿足條件m<<M。然后采用某種策略,從這m個屬性中選擇1 個屬性作為該節點的分裂屬性。
(4)按照步驟(1)~(3)建立大量的決策樹。
這樣就構成了隨機森林。其中均方誤差用于衡量回歸問題中節點的不純度。對于節點t,其均方誤差的計算式為:
從訓練數據中有放回地隨機抽取樣本,以構建每棵決策樹的訓練集,該過程可以表示為:
LightGBM[11]的設計目標之一是高效性。它使用了一種稱為直方圖的數據結構來加速梯度提升樹的訓練過程。這種數據結構可以減少內存消耗,并且更高效地分割數據。LightGBM 還支持多線程和分布式計算,可以在大規模數據集上快速訓練。
二元對數損失函數為:
式中:yi為第i個樣本的真實標簽,為第i個樣本的模型預測值,Ω(θ)為正則化項,用于控制模型的復雜度。
一階梯度的計算公式為:
式中:ωj為樹的第j個葉子節點的權重;λ為正則化參數,控制正則化的強度。
LightGBM 模型如圖2 所示。

圖2 LightGBM 模型
XGBoost 的目標函數由損失函數和正則化項兩部分組成。目標函數為:
式中:θ為模型的參數,即樹的結構和葉子節點的值;L(θ)為損失函數,用于衡量模型的預測值與真實標簽之間的差異。Ω(θ)表示正則化項,用于控制模型的復雜度,防止過擬合。
均方誤差損失(Mean-Square Error,MSE)為正則化L2 為其中:yi為第i個樣本的真實標簽;為第i個樣本的模型預測值;ωj為樹的第j個葉子節點的分數;λ為正則化項的權重,用于控制正則化的強度。需要計算損失函數的一階梯度和二階梯度來進行優化,一階梯度為? L(θ),二階梯度為?2L(θ)。XGBoost 的模型如圖3 所示。

圖3 XGBoost 模型
在卷積神經網絡(Convolutional Neural Networks,CNN)中使用參數共享顯著減少了模型參數的數量,從而降低了訓練的計算成本和內存消耗。然而,CNN 模型在數據集上容易出現過擬合,并且在處理不平衡數據集時可能需要額外的處理和平衡,以防止對多數類別產生偏見。在本文中,將CNN 模型與實驗模型進行了比較。本文配置的CNN 模型如圖4 所示。

圖4 CNN 模型
將數據增強和集成學習相結合通常能夠顯著提升網絡流量分類的性能。數據增強技術,例如SMOTE,有助于生成合成樣本,從而解決不平衡數據集的問題,進而提高分類模型的召回率和準確度。與此同時,集成學習在網絡流量分類中具備多重優勢。首先,它有助于降低模型的方差,提高模型的穩健性,有助于克服潛在的噪聲和數據波動;其次,它通過多個基分類器的協同作用,減少了過擬合的風險,因為每個基分類器都在不同的數據子集上進行訓練,所以更好地捕捉了數據的多樣性特征。此外,集成學習改善了模型的泛化性能,使其在新數據上表現更出色,增加了實際應用的可用性。所有這些優勢共同強化了集成學習在網絡流量分類中的重要性和實際效益。文中所述方法的結構如圖5所示。

圖5 方法結構
為驗證本文提出方法的可靠性,使用了UNSW_NB15 公共數據集和CICIDS2017 公共數據集進行驗證。數據集中一些樣本的數量如表2 所示。

表2 數據集中部分樣本的數量
本實驗采用總體準確率、查準率、召回率、F1值來作為評估性能的指標。
硬件環境:Intel (R)Core(TM)i7-10870H CPU@ 2.20 GHz 處理器,32 GB 內存,GPU(GeForce GTX3080)計算機運行。
軟件環境:Windows11 操作系統。實驗過程使用Python3.7 版本,在PyCharm 環境下,使用Keras 2.3.1 中的深度學習庫實現分類操作,使用tensorflow2.8.0 和Torch1.3.1+CPU 實現操作。
數據預處理階段包括獨熱編碼、特征簡化、數據標準化和特征選擇這4 個模塊。首先,使用獨熱編碼將UNSW-NB15 數據集中的3 個名義特征轉換為數值形式,以便在機器學習算法中進行處理。這種編碼方法保留了特征的無序性,用于處理數據集中無法直接處理的特征。最終,這個編碼過程將UNSW-NB15 數據集的特征維度從47 擴展到208。對于CICIDS2017 數據集,本文處理了特征值中的無窮大值,將它們替換為每列的最大值,并將缺失值填充為零。類似地,經歷了4 個預處理模塊。接下來,將對所有剩余的特征進行標準化,將它們歸一化到均值為0、標準差為1 的高斯分布。
式中:x為原始特征,x'為歸一化特征,μ和δ分別為特征的均值和標準差。標準化數據與原始數據保持相同的線性關系,數據歸一化有助于提高模型的收斂速度和精度。
最后一步是特征選擇。筆者觀察到在預處理過程中,CICIDS2017 數據集的特征維度已經降至77,位于可接受范圍內,因此不需要進一步的選擇。然而,UNSW-NB15 數據集有202 個特征,因此對這個數據集應用了深度自動編碼器,根據特征的重要性選擇了前12 個特征。最終的特征權重可視化結果如圖6 所示。

圖6 DAE 過程
本文利用隨機搜索技術來微調隨機森林模型的超參數,從而提高其性能。超參數優化在機器學習模型中至關重要,因為不同的超參數組合可以顯著影響模型的訓練和泛化能力。為了確定最佳的超參數組合,采用了隨機搜索方法,從這個參數網格中對不同的超參數組合進行抽樣,并評估它們的性能。這個過程允許微調模型,以提高實際性能。需要注意的是,隨機搜索是一種隨機方法,因此本文進行了多次以確保穩健和可重復的結果。隨機搜索包括在可行的參數范圍內進行了10 次隨機迭代。具體的參數詳見表3。在隨后的實驗中,對其他模型的參數調優遵循相同的方法。

表3 相關參數設置
為了驗證數據增強和集成學習相比于其他模型在網絡流量檢測中的有效性,本文在CICIDS2017數據集上進行了二元分類。首先,使用各種模型執行了沒有任何數據增強的任務;其次,使用數據增強方法,如SMOTE、k-means+SMOTE 和RUS+SMOTE 來增強數據。分類結果如表4 所示。

表4 二元分類中每個模型的分類結果
在這個數據集中,比較了不同機器學習模型在處理不平衡的二元分類問題時的性能。筆者采用了各種方法,包括卷積神經網絡、隨機森林、邏輯回歸和XGBoost,以及不同的采樣技術進行了比較。
本文首先評估了各種模型的性能,重點關注準確率。其中,K-means+SMOTE/XG 和RUS+SMOTE/XG 在準確率方面表現最佳,達到了99.1%,超過了CNN 和XGBoost 7.25%。這突顯了XGBoost 在這個任務中出色的分類準確性。然而,在不平衡類別的情況下,更關心召回率,它衡量了模型正確檢測正例的能力。本文還考察了精度和F1 分數,其中K-means+SMOTE/XG 在精度方面表現出色,達到了95.08%,F1 分數為96.71%。這表明,將K 均值聚類和SMOTE 采樣與XGBoost 模型相結合是一種有效的方法,可以顯著提高在不平衡類別情況下的分類性能。接下來,本文將在UNSW-NB15 數據集上進行實驗,探索不同數據增強技術在XGBoost模型中用于多類問題的性能。精確率、召回率和F1 值不同類型的攻擊值分別如圖7、圖8、圖9所示。

圖7 精確值結果

圖8 召回值結果
這些圖表清楚地說明了隨機森林模型取得了令人印象深刻的總體準確度,達到了96%。然而,在某些小類別,如在后門和蠕蟲這些領域的F1 分數較低。相比之下,XGBoost 模型取得了97%的總體準確度,在后門、偵察和Shellcode 類別中表現出色,盡管在分析和蠕蟲類別中的表現相對較弱。
本文為了解決網絡流量檢測中的數據不平衡問題,提出了一種基于數據增強和集成學習的方法。首先提取和預處理了原始的網絡流量數據;其次采用數據增強技術,如SMOTE,來平衡數據集,緩解了數據不平衡導致的模型性能下降問題。本文得出了以下結論:
(1)通過利用SMOTE 等技術,本文成功生成了合成樣本,從而增加了少數類數據,提高了模型的召回率和準確性。
(2)集成學習模型通過結合多個基礎分類器,增強了模型的魯棒性和泛化能力,降低了過擬合的風險,從而提高了模型整體性能。
(3)通過實驗和參數調優,本文確定了最佳的分類模型,為網絡流量檢測提供了可行的解決方案。
未來的工作可以進一步探索其他數據增強技術和集成學習方法,以進一步提高模型的性能和魯棒性。