★北京理工大學龐統,馬思琦,楊德全
1 概述
2024年1月,瑞星公司發布的《2023年中國網絡安全報告》,基于星核平臺的數據,詳細分析了惡意軟件、惡意網址、移動安全、企業安全、勒索軟件等領域,并探討了人工智能在網絡安全上的風險及未來趨勢。2023年,瑞星“云安全”系統截獲病毒樣本總量8,456萬個,病毒感染次數9,052萬次,較2022年增長了14.98%[1]。
隨著數字化進程的加快,網絡安全問題成為全球性挑戰,惡意流量檢測是網絡安全的核心任務之一。惡意流量包括病毒、僵尸網絡、勒索軟件等,可能導致信息泄露、數據損失、系統癱瘓,損害個人隱私和企業利益。傳統惡意流量檢測依賴手動設計特征和規則,面對不斷演變的攻擊手段存在局限性。
為探究更好的惡意流量檢測方法,本文選擇決策樹、隨機森林、支持向量機和卷積神經網絡(Convolutional Neural Network,CNN)四種方法對公開數據集NSL-KDD進行訓練和測試,比較各模型的準確率、精確率、召回率、F1值和AUC值。結果表明,基于CNN的檢測模型在準確率和F1值上明顯優于其他模型。
在當前學術界中,知識遷移是一種創新學習方式,它通過將源領域知識引入目標領域,來提高學習效果[2]。因此,本文進一步借鑒知識遷移理論,選取數據量較大的CICIDS2017數據集,通過使用在數據集ImageNet上預訓練的VGG16和ResNet50模型,凍結預訓練模型的權重,并添加自定義層以適應新數據集的處理。實驗結果表明,經知識遷移后的模型在新數據集上的準確率均超過99%,且需要較少的訓練時間和數據量,展示了知識遷移在惡意流量檢測中的重要作用。
2 背景知識
2.1 惡意流量
惡意流量是指出于惡意目的生成的網絡流量,可能來源于惡意軟件分發、網絡攻擊、非法信息采集等活動,目標包括攻擊網絡和系統、控制設備、盜取數據、傳播惡意軟件等[3]。
2.1.1 惡意攻擊特點和行為
了解惡意流量的特點和行為對于預防和減輕網絡安全威脅至關重要。以下是一些主要的惡意流量特點和行為:
(1)特點
目的明確:如竊取數據、篡改信息或執行DDoS攻擊,具有特定的行為模式和通信特征。
異常訪問:通常脫離正常通信路徑,訪問不常用或異常的IP地址和端口,執行不符合正常業務邏輯的請求。
高危性:后果嚴重,包括系統中斷、數據泄露和業務停擺,帶來重大經濟損失和聲譽損害。
(2)行為
掃描和爬蟲行為:利用自動化工具執行端口、服務和漏洞掃描,識別系統漏洞和網絡入口點。
拒絕服務攻擊(DoS)和DDoS攻擊:DoS通過大量請求使合法用戶無法訪問服務;DDoS由全球分布的受控設備(僵尸網絡)進行,更難防御和追蹤。
數據竊?。和ㄟ^網絡監聽、釣魚等手段非法獲取敏感數據,如用戶名、密碼和財務信息。
惡意軟件分發:通過下載請求等方式傳播惡意軟件,如通過電子郵件附件或惡意鏈接,引誘用戶下載并運行惡意軟件。
C2(命令和控制)通信:已感染設備與攻擊者服務器通信,接收惡意指令或上傳竊取的數據。
利用已知漏洞:利用SQL注入、緩沖區溢出等漏洞進行攻擊。
2.1.2 惡意攻擊類型
根據表現形式的不同,惡意攻擊可分為如下四種
(1)DoS:使在線服務不可用,通過大量發送請求或數據包,超出系統處理能力,導致服務中斷或崩潰。常見方法有SYN Flood、Tear Drop、Smurf等。
(2)探測攻擊(Probe):獲取網絡系統信息,如弱點、服務、應用程序版本、操作系統類型、網絡結構等,為進一步攻擊做準備。常見方法有ICMP探測、操作系統探測、漏洞探測等。
(3)用戶到根用戶攻擊(U2R):普通用戶權限升級到根用戶或管理員權限,完全控制系統,修改或刪除敏感數據,安裝惡意軟件。常見方法有緩沖區溢出、提權漏洞等。
(4)遠程到本地攻擊(R2L):利用系統漏洞,從遠程地點獲取本地用戶權限,攻擊者最初無系統合法權限,通過攻擊獲得普通用戶或更高權限。常見方法有IP Spoofing等。
2.2 知識遷移
知識遷移是將一個領域或任務中學習到的知識應用到另一個領域或任務中的技術,在機器學習和人工智能領域非常重要[4]。它提高了學習效率,減少了對大量標注數據的需求,幫助了模型在新領域快速適應。盡管不同任務或領域可能差異較大,但它們之間存在共通的特征或模式,可作為遷移基礎。
2.2.1 知識遷移技術的主要類型
知識遷移是一種利用已解決任務中獲得的知識來解決新任務的方法。根據具體的遷移方式,知識遷移可分為以下幾種主要類型[5]:
(1)基于特征的遷移:將源任務的特征直接遷移到目標任務。例如,利用CNN在ImageNet上的預訓練特征進行其他圖像分類任務。
(2)基于參數的遷移:共享源任務的模型參數,并將其遷移到目標任務。在深度學習中,常見做法是凍結預訓練模型的某些層的參數,然后在新任務上微調頂層參數。
(3)基于關系的遷移:適用于知識圖譜和多任務學習,利用源任務和目標任務的關系,例如多任務學習中不同任務間的共享層捕捉共同特征。
(4)基于實例的遷移:基于源任務的實際數據樣本,通過選擇和再利用源任務的樣本提升目標任務性能,例如實例選擇和實例加權。
3 模型選擇
當前有多種針對惡意流量檢測的方法和模型,本文選擇常用的決策樹、隨機森林、支持向量機和CNN四種模型,為進一步利用知識遷移的思想提高惡意流量檢測性能提供了最優模型。
3.1 數據集準備與處理
3.1.1 NSL-KDD數據集
本文在進行模型選擇的過程中選擇使用NSL-KDD數據集。該數據集是網絡入侵檢測系統(NIDS)研究中常用的一個數據集,且已經劃分好了訓練集(NSL-KDD train)和測試集(NSL-KDD test),便于使用機器學習模型進行訓練和評估[6]。該數據集標識類型和數量如表1所示。
表1 NSL-KDD數據集標識類型數量
3.1.2 數據集預處理
數據預處理是指在將數據應用于機器學習模型之前,對數據進行清洗、轉換和整理的過程。這包括處理缺失值、異常值,進行特征縮放、標準化,以及進行特征工程等操作,以確保數據質量和可用性,以及提高機器學習模型的性能和準確性。公開數據集NSL-KDD的處理過程如圖1所示。
圖1 NSL-KDD數據集預處理流程
3.2 模型選擇
3.2.1 決策樹DT
決策樹是一種用于分類和回歸的機器學習算法,它利用樹狀結構模擬決策過程[7]。
其中內部節點代表特征,邊對應特征值,葉子節點表示類別標簽或數值。構建過程遵循分而治之的策略。決策樹的優點包括易于理解、能處理數值和類別數據、不易受缺失值影響;缺點是易過擬合,對噪聲和異常值敏感。實驗中通過參數調整優化模型,常用信息增益作為特征選擇指標,值越大,特征重要性越高。構建樹的步驟包括特征選擇、數據集劃分、構建、剪枝和預測。
3.2.2 隨機森林RF
隨機森林是一種集成學習方法[8],它通過構建多棵決策樹并綜合其結果進行分類或回歸。它結合了決策樹的易理解性和集成學習的優點,能夠有效減少過擬合并提高泛化能力。隨機森林由多棵通過放回抽樣和隨機特征選擇構建的決策樹組成,每棵樹在不同的數據和特征子集上訓練,從而增加多樣性。分類時采用多數投票,回歸時取平均值。優點包括降低過擬合、提高準確性和泛化能力,并能處理大量特征和樣本,對缺失值不敏感。缺點是難以解釋和可能消耗較多內存和計算資源。
3.2.3 支持向量機SVM
支持向量機(SVM)是一種經典的監督學習算法,廣泛用于分類和回歸任務[9]。其核心原理是尋找一個最佳超平面,以最大化不同類別數據點之間的間隔,作為線性分類器。支持向量是距離超平面最近的訓練樣本點,決定了超平面的位置和方向,定義了分類邊界。
對于非線性數據,SVM引入核函數,將輸入空間映射到高維特征空間。常見核函數包括線性核、多項式核和高斯核(RBF核)。通過選擇適當的核函數,SVM可以處理非線性分類問題。
SVM算法的一般步驟如下:
數據預處理:將數據集劃分為訓練集和測試集,并進行特征縮放。
構建模型:選擇適當的核函數和懲罰參數,構建SVM模型。
訓練模型:使用訓練集進行訓練,通過最大化間隔找到最優超平面。
預測:使用訓練好的模型對測試集進行預測。
3.2.4 卷積神經網絡CNN
CNN是一種深度結構的前饋神經網絡,廣泛用于深度學習領域。其主要組成部分包括卷積層、池化層和全連接層[10]。CNN的權值共享機制能夠顯著降低模型復雜性和過擬合風險。
典型的CNN架構:
(1)輸入層:標準化處理輸入特征。
(2)卷積層:使用卷積核提取輸入數據的特征,生成特征圖,捕捉局部模式。
(3)池化層:通過池化函數降低特征圖的維度,減少模型復雜性并防止過擬合。常見池化操作包括最大值池化和均值池化。
(4)全連接層:每個神經元與前一層所有神經元相連,將提取的特征轉化為一維向量,并通過權重矩陣生成最終輸出,用于分類或回歸任務。
(5)激活函數:引入非線性元素,使網絡能夠解決非線性問題。常見激活函數有Sigmoid、Tanh、ReLU、ELU等。
本文構建的CNN模型包含兩個卷積層和兩個池化層,用來提取輸入數據的特征,然后通過全連接層將這些特征轉化為最終的輸出。ReLU激活函數提高了模型的非線性特性,而sigmoid函數在輸出層使用,使輸出限制在0到1之間,方便進行二分類任務的概率預測。
輸入層(input):模型接收的輸入數據形狀為(?,116),其中116表示特征數,?表示樣本數量不定。
Reshape層:將數據形狀變為(?,116,1),這里的1表示數據是一維的。
卷積層(Conv1D):第一個卷積層輸出形狀為(?,114,32),即32個濾波器,每個濾波器產生大小為114的特征圖。
最大池化層(MaxPooling1D):特征圖形狀變為(?,57,32),池化層將每個特征圖大小減半。
第二個卷積層(Conv1D):輸出形狀為(?,55,64),使用64個濾波器。
第二個最大池化層(MaxPooling1D):特征圖形狀變為(?,27,64)。
Flatten層:將特征圖展平成一維向量,形狀為(?,1728)。
全連接層(Dense):第一個全連接層輸出形狀為(?,64),最后一個全連接層輸出形狀為(?,1),用于二分類問題,輸出為概率值。
模型的流程圖如圖2所示。
圖2 卷積神經網絡模型流程圖
3.3 模型對比分析
為了衡量模型的性能,本文使用機器學習領域中常用的二分類評估指標準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1值和ROC曲線下面積(Area Under an ROC Curve,AUC)進行模型性能的評估。四種模型的各項二分類評估結果如表2所示。
表2 四種實驗模型評估結果
從表2的實驗結果數據中可以看出,DT、RF、SVM對惡意流量檢測的準確率、F1值和AUC值都明顯低于CNN模型。從中可以得出結論,CNN模型對惡意流量檢測的性能要明顯優于其他三種機器學習算法。
4 知識遷移的應用
為進一步提高模型對惡意流量的檢測準確率,本文引入知識遷移的思想,對CNN模型進行進一步的探究,以期獲得更好的實驗效果。
4.1 數據集準備與預處理
4.1.1 CICIDS2017數據集
本文在進行知識遷移應用的過程中選用數據規模更大、數據結構更復雜的CICIDS2017數據集[11]。該數據集包含真實的網絡流量和攻擊數據,涵蓋正常流量和多種類型的網絡攻擊(如DoS、DDoS、暴力破解、滲透等)。該數據集包含來自不同協議(TCP、UDP、ICMP)和服務(HTTP、SSH、DNS)的流量。每個樣本被標記為正常流量或具體攻擊類型,特征包括源/目標IP地址、源/目標端口、協議、流量大小、持續時間等基本信息,如表3所示。
表3 CICIDS2017所包含惡意流量數目與種類
4.1.2 數據預處理
神經網絡輸入之前需要對原始流量數據進行預處理,本章數據輸入是經過處理之后的csv格式數據。
首先進行數據加載和預處理。加載CICIDS2017數據集并進行必要的預處理,這個過程中需要處理缺失值,刪除數據集中缺失類標簽和缺少信息的實例。由于數據集中數據量巨大,需要刪除其中無窮大和百萬級別的數據,從而節省模型處理開銷。
其次將數據轉換為圖像,由于VGG和ResNet模型都是圖像分類模型,需要將網絡流量數據轉換為圖像,相關代碼如下所示:
target_features=32*32*3
num_samples=X_scaled.shape[0]
ifX_scaled.shape[1]>target_features:
X_scaled=X_scaled[:,:target_features]
elifX_scaled.shape[1]<target_features:
X_padded=np.zeros((num_samples,target_features))
X_padded[:,:X_scaled.shape[1]]=X_scaled
X_scaled=X_padded
X_images=np.reshape(X_scaled,(num_samples,32,32,3))
4.2 知識遷移使用的模型
本文將使用VGG和ResNet模型進行基于特征的遷移。將在ImageNet數據集上預訓練好的VGG和ResNet模型,凍結預訓練模型的權重,并添加自定義層以適應新數據集的處理[12]。最終通過知識遷移技術,應用到對CICIDS2017數據集的處理上。
(1)VGG模型
VGG模型最初是由牛津大學計算機視覺組提出,常見的版本有VGG16和VGG19,分別包含16和19層卷積網絡。VGG模型主要由多個3×3的卷積層和2×2的最大池化層堆疊而成,最后接上若干個全連接層。本文采用的是VGG16模型[13]。
(2)ResNet模型
ResNet由微軟研究院提出,最初的版本包括ResNet-50、ResNet-101和ResNet-152。其核心思想是通過引入殘差塊(ResidualBlocks)來解決深層神經網絡中的梯度消失和梯度爆炸問題[14]。這些殘差塊通過短路連接(Shortcut Connections)將輸入直接跳過特定的層,從而使得模型更易于訓練。本文采用ResNet50結構。
4.3 知識遷移實現流程
首先,初始化預訓練模型,加載在大型數據集ImageNet上預訓練的VGG16和ResNet50模型。這些模型已學到大量低級特征(如邊緣、紋理等),有助于更有效地提取新任務的數據特征。由于頂層通常為原數據集設計,因此需要剝離。
第二步是模型微調。在預訓練模型的基礎上,適應CICIDS2017數據集。具體步驟包括:
去除頂層:剝離預訓練模型的頂層,因為這些層與原數據集類別相關。
添加新層:在去除頂層的預訓練模型上添加新層,包括全局平均池化層和全連接層,并使用ReLU激活函數。最后,添加一個輸出層,節點數等于CICIDS數據集的分類類別數,并使用softmax激活函數輸出類別概率。
第三步是特征提取。凍結部分卷積層,僅微調頂層新添加的層,以利用預訓練模型的高效特征提取能力。這樣可以僅訓練新添加的全連接層和輸出層,加速訓練過程并防止過擬合。
第四步是模型訓練。采用知識遷移的方法在CICIDS2017數據集上進行微調,并通過驗證集進行評估。
5 實驗結果分析
本文利用已經在大型數據集ImageNet上預訓練的VGG16和ResNet50模型進行基于特征的遷移學習,將微調后的模型處理CICIDS2017數據集,并通過驗證集進行評估。
VGG16模型經過遷移學習后對數據集CICIDS2017的檢測結果如圖3、圖4所示。
圖3 VGG16模型的準確率隨迭代次數的變化
圖4 VGG16模型的損失函數隨迭代次數的變化
ResNet50模型經過遷移學習后對數據集CICIDS2017的檢測結果如圖5、圖6所示。
圖5 ResNet模型的準確率隨迭代次數的變化
圖6 ResNet模型的損失函數隨迭代次數的變化
從圖3~6中可以看出,兩種網絡模型結構在進行知識遷移后在新的數據集中對惡意流量的檢測結果的準確率都能達到99%以上,說明經過知識遷移后的兩種模型在針對惡意流量檢測的問題上都具有十分優異的效果。
6 結束語
近年來,網絡安全和數據隱私領域面臨著惡意流量帶來的諸多挑戰,因此惡意流量檢測技術受到了廣泛關注和持續發展。本文積極探索基于知識遷移的惡意流量檢測方法,知識遷移在惡意檢測領域的應用,可以縮短訓練時間,提高檢測精度等。相信隨著更復雜的深度學習模型和更豐富的數據集的不斷出現,知識遷移將在惡意流量檢測中發揮越來越重要的作用,將提高整體的網絡防御能力和安全性。
作者簡介:
龐 統(2001-),男,河南南陽人,現就讀于北京理工大學,研究方向為數據科學與大數據技術。
馬思琦(2002-),女,云南開遠人,現就讀于北京理工大學,研究方向為數據科學與大數據技術。
楊德全(1980-),男,山西人,高級工程師,博士,現就職于北京理工大學,研究方向為網絡安全。
參考文獻:
[1] 北京瑞星網安技術股份有限公司,《2023年中國網絡安全報告》. 2024.1[EB/OL]
[2] 裴嬋娟. 基于遷移學習的網絡入侵檢測方法研究[D]. 合肥: 安徽大學, 2022.
[3] 魯剛, 郭榮華, 周穎, 等. 惡意流量特征提取綜述[J]. 信息網絡安全, 2018, (9) : 1 - 9.
[4] 王軍敏, 樊養余, 李祖賀. 基于深度卷積神經網絡和遷移學習的紋理圖像識別[J]. 計算機輔助設計與圖形學學報, 2022, 34 (5) : 701 - 710.
[5] 鄧雅文. 基于遷移學習的加密惡意流量檢測技術研究[D]. 武漢: 湖北大學, 2022.
[6] 孫佳佳, 李承禮, 常德顯, 等. 基于生成對抗網絡的入侵檢測類別不平衡問題數據增強方法[J]. 科學技術與工程, 2022, 22 (18) : 7965 - 7971.
[7] 張小云, 康曉霞. 基于決策樹算法的網絡入侵檢測系統設計與評估[J]. 信息技術, 2023, 47 (2) : 117 - 122.
[8] 王國華, 伍忠東, 丁龍斌. 改進多層分類策略的隨機森林網絡入侵檢測方法[J]. 蘭州交通大學學報, 2022, 41 (2) : 55 - 62.
[9] 王云鵬, 張浩. 基于支持向量機的網絡入侵檢測算法綜述[J]. 科學技術創新, 2017, (25) : 136 - 137.
[10] 嚴春滿, 王鋮. 卷積神經網絡模型發展及應用[J]. 計算機科學與探索, 2021, 15 (1) : 27 - 46.
[11] Yifan Zhao, Zhanhui Hu, Rongjun Liu. TBGD: Deep Learning Methods on Network Intrusion Detection Using CICIDS2017 Dataset[J]. Journal of Physics: Conference Series, 2023, (2670) : 012025.
[12] Dhananjay Theckedath, R. R. Sedamkar. Detecting Affect States Using VGG16, ResNet50 and SE-ResNet50 Networks[J]. SN Computer Science, 2020, 1 (2).
[13] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.
[14] He, K.;Zhang, X.;Ren, S.;Sun, J..Deep residual learning for image recognition(Conference Paper)[J]. Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2016 : 770 - 778.
摘自《自動化博覽》2024年10月刊