











關鍵詞:網絡入侵檢測;深度學習;注意力機制;殘差網絡
中圖分類號:TP393 文獻標志碼:A
0 引言(Introduction)
互聯網技術發展對人們的生活產生了深遠的影響,現代生活已經深深地依賴于網絡,這種依賴不僅導致了大量的個人和企業數據被存儲在網絡云主機上,同時也使這些數據面臨著網絡攻擊。因此,發展和完善入侵檢測系統(IDS)對維護網絡安全至關重要[1-2]。
現有的IDS技術大致可以分為兩類:異常檢測系統和誤用檢測系統[3],前者基于行為特征實現對未知或新型攻擊的識別和預警[4],后者則基于靜態特征匹配已知的攻擊模式或簽名[5]。盡管這兩類系統各有優勢,但是它們在面對新型攻擊和數據不平衡時產生的局限性日益凸顯。
目前,入侵檢測模型主要基于機器學習和深度學習技術構建。機器學習算法盡管具有較高的準確性,但是容易出現過擬合問題[6-7]。JIANG 等[8]提出了一種基于LSTM(長短期記憶)的多通道網絡入侵檢測方法,通過投票算法進一步判斷入侵的類型。周璨等[9]提出GRU(門控循環單元)和CNN(卷積神經網絡)融合的模型,這類輕量級模型的訓練速度較快。
深度學習在IDS的應用中仍存在收斂速度慢、對不平衡數據集的檢測準確率低等問題。為此,本研究對基于ResNet(深度殘差網絡)的入侵檢測模型[10]進行了改進,引入了注意力機制,以期獲得更好的檢測效率和準確率。
1 相關理論(Relevant theory)
1.1 殘差網絡
ResNet引入了“殘差學習”的概念,通過添加跨層的殘差連接(Residual Connection)解決梯度問題。這些殘差連接允許信息在網絡中直接跳躍傳播,解決了梯度在反向傳播過程中的衰減問題。這種結構使得更深層次的網絡更容易訓練,并且能夠更有效地學習特征。殘差模塊輸入為x,殘差模塊的輸出為output=F(x)+x,其中F(x)為殘差模塊學習到的殘差。
在模型的代碼實現中,F(x)通常由兩個或兩個以上卷積層組成,用來學習輸入x 與期望輸出之間的差異。記W1 和W2 分別為兩個卷積層的權重,b1 和b2 為相應的偏置項,σ 為激活函數(通常為ReLU),則殘差塊的數學表達式可以拆解為
2 模型分析(Model analysis)
本文提出一種創新的入侵檢測模型,將注意力機制與ResNet融合并進行了改進,改進的ResNet入侵檢測模型如圖2所示。首先,對數據進行預處理,包括異常值處理、Z-Score標準化和獨熱編碼,并通過降低數據維度等方式提升模型的收斂速度。其次,經過處理的數據被送入經過注意力機制改進的ResNet進行分類,采用經過精心設計的注意力機制可以提高網絡對關鍵信息的關注度,從而優化模型的分類性能。此外,通過去除異常數據的策略,可以進一步提高模型的準確率。最后,對經過訓練的模型進行測試,評估其性能并確定當前模型是否達到最優狀態。如果測試結果表明模型還有改進的空間,那么將進行調優并重新訓練;反之,則可得到最終的分類結果。
2.1 改進的殘差模塊
常用的ResNet直接應用于入侵檢測任務時,可能無法有效地處理入侵檢測數據的特性,主要原因在于傳統的ResNet模型的卷積層通常專注于提取局部特征。ResNet主要針對圖像數據設計,其特征提取和學習機制主要集中在視覺模式識別上,而入侵檢測數據通常包含非空間數據(例如網絡流量數據、日志文件等),這類數據不具有圖像的空間結構,卷積層在處理具有明顯空間關系的數據(如圖像)時表現出色,但在處理非空間結構數據時效果不夠好。
為了使ResNet更適合入侵檢測任務,需要對其進行特定的調整或優化,引入適合處理非空間數據的稠密層,稠密層能夠對整個輸入數據進行全局特征學習,處理并整合來自輸入數據的所有信息。同時加入批標準化層加速訓練過程,提高模型的泛化能力。丟棄層則通過隨機地忽略一部分神經元的輸出減少模型對特定數據的依賴。批標準化層所使用的公式如下:
初步改進后的殘差模塊包含1 024個神經元的Dense層,激活函數為ReLU;緊接著是批標準化(Batch Normalization)層和丟棄(Dropout)層。
初步改進的殘差模塊如圖3所示。
2.2 加入注意力機制的殘差模塊
入侵檢測數據通常包含更加復雜和抽象的模式,如網絡流量特征、異常行為模式等,這些不同于傳統圖像特征的數據特性可能導致ResNet無法有效區分正常流量與異常流量。為了使ResNet更適合入侵檢測任務,引入注意力機制以更有效地關注和提取入侵檢測數據中的關鍵特征,捕捉輸入數據之間的長距離依賴關系。具體的改進步驟是在初步改進的殘差模塊后加入一個自注意層和一個加法層。加入注意力機制的殘差模塊如圖4所示。
2.3 改進的ResNet結構
由于訓練集的數據量非常大,為了推動更深層次的網絡訓練和增強特征的傳遞與重用,通過重復使用殘差模塊構建一個具有足夠深度的網絡結構。改進的ResNet結構由3個加入注意力機制的殘差模塊組合,并加入一個初步改進的殘差模塊將輸出轉化為與15個標簽一一對應的結果。改進的ResNet結構如圖5所示。
3 實驗結果與分析(Experimental results andanalysis)
3.1 實驗數據
本文使用CIC-IDS-2017數據集作為實驗的基礎。CICIDS-2017數據集包含來自不同網絡環境的網絡流量數據,其中包括正常流量和惡意流量。這些數據是通過模擬真實網絡環境中的各種攻擊和惡意活動生成的。
數據集涵蓋多種類型的網絡流量,其中包含14種不同的惡意流量和大量正常流量。將數據集按照7∶3的比例劃分成訓練集和測試集,實驗數據如表1所示。
3.2 實驗環境和評價標準
實驗環境如表2所示。
本文采用準確率(AC)、誤報率(FP)、召回率(Recall)作為評價標準,其公式分別如下:
其中:真陽性TP 表示模型正確地預測為正的實例數量;假陽性FP 表示模型錯誤地預測為正的實例數量;真陰性TN 表示模型正確地預測為負的實例數量;假陰性FN 表示模型錯誤地預測為負的實例數量。
本文通過對比改進前和改進后的ResNet在3項關鍵評估標準上的表現,以及將其與近期發表的相關文獻中提到的模型在同樣的評價標準上的表現進行比較,以此驗證本文提出的改進模型的有效性和可行性。
3.3 實驗過程及結果分析
運用網格搜索策略對參數進行全面且細致的探索,最終確定了一組最優的參數。
(1)批尺寸(batch_size)
batch_size定義了用于計算梯度和更新網絡權重的樣本數量,直接影響模型的學習效率、內存需求以及最終的性能。經過實驗,batch_size選擇100時為最優。
(2)學習率(learning_rate)
學習率定義了在梯度下降(或類似優化算法)中權重調整的步長,決定了在優化過程中模型權重更新的幅度。本文引入學習率調度器(lr_scheduler)作為回調函數,動態調整學習率。
(3)實驗迭代次數(epoch)
迭代次數指的是訓練算法在整個訓練數據集上的遍歷次數。經過實驗,迭代次數選擇30時為最優。
3.3.1 數據預處理
(1)異常值處理(Outlier Handling)
異常值處理是為了識別和處理數據中的異常值或離群點。在CIC-IDS-2017數據集中Flow Bytes/s列和Flow Packets/s列存在部分缺失值,本文將缺失值替換為0,將正無窮大(np.inf)和負無窮大(-np.inf)都替換為1e9(109)。
(2)Z-Score標準化(Z-Score Normalization)
Z-Score標準化是將不同尺度、不同范圍的特征轉化為具有相似尺度和范圍的特征,有助于消除特征之間的單位差異,使模型更加穩定和準確。
在CIC-IDS-2017數據集中,特征值的大小存在極大的差異且數量級也差別極大,因此本文對數據集進行Z-Score標準化處理,以便消除特征之間的數量級差異,代碼中通過調用scikit-learn庫中用于執行Z-score標準化的類StandardScaler達到對數據集標準化處理的效果。
(3)獨熱編碼(One-Hot Encoding)
獨熱編碼將離散的分類特征轉化為二進制向量的形式,以便機器學習算法使用。在CIC-IDS-2017數據集中,包含15個不同的標簽,適合通過獨熱編碼將其轉化成二進制向量,因此本文調用Keras庫中的to_categorical函數將數據集中的15個標簽轉化成二進制標簽。
3.3.2 改進的ResNet交叉對比
把經過改進的ResNet入侵檢測模型與未經過改進的ResNet入侵檢測模型進行交叉對比實驗,使用相同超參數以及進行相同的數據預處理,控制兩個實驗模型的變量達到交叉對比的目的。通過模型訓練過程中的可視化曲線圖(圖6至圖9)可以看到,兩個實驗模型的損失函數值loss的變化以及準確率的變化。經過改進的ResNet入侵檢測模型的迭代次數與損失函數值呈負相關,隨著迭代次數的增加,損失函數值逐漸減小。從圖7中可以看出,損失函數值的下降速率表現為先快速下降之后趨于平緩,損失函數值loss快速下降的階段在前10次迭代,第10次迭代之后損失函數值的變化開始趨于平緩。未經過改進的ResNet入侵檢測模型的損失函數值loss快速下降的階段在前25次迭代,第25次迭代之后損失函數值的變化開始趨于平緩。改進的ResNet入侵檢測模型的準確率為97.56%、真正例率為97.46%、誤報率為4.00%,優于未經過改進的ResNet入侵檢測模型,其準確率為96.25%、真正例率為95.83%、誤報率為7.4%。實驗表明,經改進的ResNet入侵檢測模型的性能優于未經改進的ResNet入侵檢測模型的性能。經改進的ResNet入侵檢測模型的準確率曲線如圖6所示;經改進的ResNet入侵檢測模型的損失函數值曲線如圖7所示;未改進的ResNet入侵檢測模型的準確率曲線如圖8所示;未改進的ResNet入侵檢測模型的損失函數值曲線如圖9所示。
3.3.3 改進的ResNet入侵檢測模型與相關文獻提出的模型進行對比
本文通過對比實驗,采用準確率、真正例率、誤報率3項指標驗證本文提出的入侵檢測模型的性能與近期相關文獻中提到算法的性能。本文模型展現出97.56%的準確率、97.46%的真正例率以及4%的誤報率。相較之下,SAMRIYA 等[12]提出的ACO-DNN(蟻群優化-深度神經網絡)模型雖然通過ACO算法進行了降維處理,但是準確率低于本文模型的準確率,說明本文模型加入的注意力機制能夠更有效地關注重要特征進而提升分類準確率;麻文剛等[13]提出的三層堆疊LSTM(長短期記憶)網絡通過提取存在差異的特征提升收斂速度,但是準確率和真正例率同樣低于本文模型的相關指標;劉金碩等[14]提出的基于AutoEncoder(自編碼器)和DNN(深度神經網絡)的模型,其準確率與真正例率同樣低于本文模型的相關指標;DAS等[15]采用的LAD-ADS(數據邏輯分析-異常檢測系統)模型和ZHAO等[16]提出的動態自編碼器的準確率與召回率也低于本文模型的相關指標。本文模型通過加入注意力機制,有效提升了對入侵數據的識別能力,并加快了收斂速度。綜上所述,本文模型的準確率、召回率表現優異,顯示出較強的檢測能力,其準確率、召回率明顯優于已有方法的相關指標。不同模型的分類結果如表3所示。
4 結論(Conclusion)
針對網絡入侵檢測領域在處理不平衡數據集時識別準確性不足的問題,本文通過在ResNet中加入注意力機制,提升了關鍵特征識別能力,其真正例率和誤報率表現優異。在CIC-IDS-2017數據集上的實驗結果表明,改進后的ResNet入侵檢測模型實現了97.56%的準確率、97.46%的真正例率和4.00%的誤報率,在處理復雜網絡入侵數據時具有高效性和有效性。此外,本研究也認識到,在處理極端類別不平衡數據時存在的局限性,未來將針對這些問題進行深入研究和模型優化。
作者簡介:
陳天翔(1997-),男,碩士生。研究領域:深度學習,網絡安全。
何利力(1966-),男,博士,教授。研究領域:圖形圖像,人機交互。
鄭軍紅(1978-),男,博士,講師。研究領域:數據挖掘,人工智能。