孫旭日,程輝,彭博
(國網山東省電力公司青島供電公司,青島 266002)
網絡入侵檢測系統(Network Intrusion Detection Systems,NIDS)是網絡系統管理員檢測網絡內部各種安全漏洞的重要且使用最為廣泛的工具。大量研究人員致力于建立有效的入侵檢測系統來監察網絡空間安全[1–3]。傳統上,入侵檢測技術使用基于規則的方法[4–7]。該類方法通常將惡意程序的簽名或惡意行為的描述作為規則。入侵檢測系統則將與該規則相匹配的程序代碼或網絡行為檢測為攻擊。從實際應用來看,基于規則的入侵檢測技術可以有效防御已知攻擊,并且該類方法是簡單并且易于實現。但對于新的未知攻擊,由于沒能即時設置相應的規則而無法檢測。因此,基于規則的方法不具有實時性。另外,基于異常的入侵檢測技術[8–11]已經作為許多網絡安全研究人員在網絡入侵檢測領域的研究重點。該類方法通常提取正常的程序和網絡行為的特征。在該類方法的訓練階段,采用統計的機器學習方法如貝葉斯網絡、支持向量機等來訓練分類器。而在該類方法的檢測階段,則將超出正常值的程序代碼或網絡行為判斷為惡意代碼或網絡攻擊行為。與基于規則的檢測相比,基于異常的入侵檢測方法難以被繞開,從而在一定程度上提高了入侵檢測的能力。然而,實踐表明,基于異常的檢測模型的優缺點主要取決于特征提取。在現有的研究中,特征提取工作主要是由網絡入侵檢測領域的專家進行手工設計完成的,這使得基于異常的入侵檢測方法在很大程度上依賴于專家給予的先驗知識,并且無法有效地適應不同的應用場景。
隨著當前網絡威脅的頻率和強度不斷增加[12],現有的方法已不再能夠持續性地檢測新型攻擊行為[13]。此外,手工設計特征提取是繁瑣的并且無法選擇出非常適合的特征進行網絡入侵檢測。另外,網絡中一個時期或實時收集的數據量可能是巨大的,但傳統的網絡入侵檢測方法不能充分利用這些大量的數據進行訓練,從而導致降低檢測的準確率。
為了克服這些挑戰,提出了一種新穎的基于卷積神經網絡的網絡入侵檢測系統的模型。該方法能通過卷積神經網絡自動化地提取特征,克服了對相關領域專家手工設計數據特征的依賴性,并且可以檢測出微小的突變甚至是新近發展的攻擊[14,15]。此外,為了充分利用原始數據,本文創新地將網絡入侵檢測數據重塑為圖像格式,使得數據更加適用于卷積神經網絡的特征提取。最后,本文在卷積神經網絡模型的基礎上引入了跳躍鏈接,克服了卷積神經網絡模型的過擬合問題。
自Anderson[18]在1980 年提出入侵檢測技術概念后,該技術一直是網絡安全領域研究的重點。隨著近年來機器學習的發展,研究人員發現入侵檢測數據通過機器學習方法訓練后,網絡入侵檢測的準確性能更有效地被提高。由于機器學習的方法更加關注數據對模型的影響,因此,保持模型的更新可以通過不斷地機器學習訓練,從而實現模型對不同網絡環境的適應。Li 和 Guo[16]利用改進的 K 最近鄰算法(TCM-KNN)來訓練,該方法可以用在少量數據的情況下進行有效的網絡入侵數據檢測。并且該方法具有較低的誤報率和較高準確率。為了減少訓練時間,Xian 和Tang 等人[17,18]使用了基于支持向量機(SVM)的入侵檢測技術,在提供較少的先驗知識的情況下實現了較高的準確性。為了實現更高的準確率,Tsai 和Lin[19]結合了k 均值和KNN 機器學習算法來進行入侵檢測。在這種模型中,網絡攻擊的群集中心通過k 均值獲取,最后,KNN 分類器被用來執行網絡入侵檢測。實驗結果表明,該方法優于單獨的KNN 的模型,并且其準確率高于基于SVM的模型。Stein 等人[20]提出了改進的基于決策樹的網絡入侵檢測模型。在該方法中,決策樹模型的特征子集是由遺傳算法進行選擇的。實驗表明,該方法可以有效提高檢測率。
雖然傳統的基于機器學習的方法在網絡入侵檢測中取得了良好的效果,但這類方法的性能取決于特征工程的設計,并且缺乏獨立學習的能力。此外,基于機器學習的方法在大量數據訓練的情況下性能提升并不明顯,因此無法充分利用大量的數據進行訓練。為了克服這些問題,許多研究人員在網絡入侵檢測領域開始關注基于神經網絡的方法。由于神經網絡可以從原始數據中自動化地提取高維復雜的特征[21],因此這種出色的能力能在網絡入侵檢測領域有效地識別攻擊。此外,與傳統的機器學習方法相比,神經網絡算法在處理大數據方面更好的效果具有更好的效果。Gao 等人[22]使用深度信任網絡(DBN)進行網絡入侵檢測。實驗顯示這種方法優于其他機器學習方法。為了在入侵檢測領域中識別高頻攻擊,Staudemeyer[23]首次將長短期記憶(LSTM)遞歸神經網絡(RNN)應用于網絡入侵檢測。這為后續研究人員使用LSTM 和RNN 進行網絡入侵檢測的研究提供了基礎[24,25]。此外,為了提高檢測低頻攻擊的準確率,Raman 等人[26]利用基于超圖的特征選擇技術選擇的特征來訓練概率神經網絡(PNN)進行網絡入侵檢測。Upadhyay 等人[27]首次將卷積神經網絡應用于網絡入侵檢測。在此方法中,KDD99 數據集[28]中的41 個特征被隨機抽取為的36 個特征,之后將這36 個特征重塑為6×6 規格的圖像作為卷積神經網絡的輸入。實驗結果表明,卷積神經網絡對網絡入侵檢測是有效的。Vinayakumar 等人[29]使用卷積神經網絡中的一維卷積操作來提取數據的特征進行網絡入侵檢測。實驗結果顯示,卷積神經網絡及其變體架構在網絡入侵檢測方面優于經典的機器學習分類器。此外,劉等人的實驗[30]結果表明,基于卷積神經網絡的入侵檢測模型具有較高的準確性。這也證明了在高度入侵檢測中應用卷積神經網絡的可行性。基于CNN 的方法顯示了其在網絡入侵檢測中出色的特征提取能力,我們的工作也在這個強大的框架下。
本文提出了一種基于卷積神經網絡的局域網入侵檢測技術。由于卷積神經網絡具有能夠自動化地提取復雜高維特征的能力,并且具有獨立學習的能力,因此我們將卷積神經網絡應用于網絡入侵檢測。卷積神經網絡可以有效地提取圖像數據的空間特征。因此,為了充分利用卷積神經網絡的特性,我們最終將原始數據轉換為圖像數據。之后,可以使用卷積神經網絡對圖像進行分類以檢測輸入數據。此外,神經網絡模型的性能受深度影響,當增加網絡層數后,網絡可以進行更加復雜的特征模式的提取,所以當模型更深時理論上可以取得更好的結果。因此,本文提出的模型將采用深層結構的神經網絡模型。但是深層網絡存在著梯度爆炸或者消失的問題,這使得深度學習神經網絡難以訓練。為了解決上述問題,本文提出的卷積神經網絡模型的色情內容識別部分將引入短路跳躍鏈接。本文提出的入侵檢測系統模型的架構如圖1 所示。我們提出的模型由三部分組成。 數據預處理部分,對原始數據進行預處理以獲得標準數據。數據轉換部分,標準數據被轉換成圖像數據。卷積神經網絡入侵檢測部分,通過結合跳躍連接的卷積神經網絡模型對圖像數據進行分類。每個步驟的細節如下。

圖1 提出模型的整體框架圖
每個網絡入侵檢測數據集中的數值特征具有不同的量綱。而不同量綱的數據將會增加卷積神經網絡的訓練時間。因此,為了加快訓練卷積神經網絡的收斂,本文使用最小-最大規范化對原始數據進行線性變換,將數據值映射到[0, 1]之間。假設輸入的數值型特征為,則具體公式定義如下:

對于網絡入侵檢測中的類型別特征,本文將使用獨熱編碼或者啞變量編碼進行數值化操作。假設數值型特征的個數為nm,經過獨熱編碼或者啞變量編碼后的類別型特征的維度數為nc。則總的組合特征的維度數N2,N∈Z的求解滿足以下約束:

在本文中,經過最小-最大規范化后的數值型特征后直接銜接上類別型特征,之后將進行補零操作直到總的組合特征的維度數目達到N2,N∈Z。
在計算機視覺領域值中,卷積神經網絡具有出色的特征提取能力。在計算機中,圖像被視為像素值矩陣。例如一張512×512×3 大小的彩色圖像,在計算機中被表示為512×512×3 的想數字數組。其中3 是圖像的RGB 通道數。基于此靈感,本文將經過數據預處理后的網絡入侵檢測數據轉換為N×N×1 的矩陣。由于在計算機視覺領域圖像的像素值范圍為[0,255],因此,需要對數據預處理后的數值進行轉換,其定義公式如下:

其中,xi表示像素數組中的每個數據預處理后的元素;pi表示元素xi經過圖像轉換后的值。
網絡入侵檢測數據經過預處理和轉換后,將成為具有單通道的圖像。然后,該部分的神經網絡結構受到VGG19 神經網絡模型架構的啟發而設計。在本文中,修改VGG19 神經網絡的最后幾層以適應網絡入侵檢測的分類任務。首先,輸出數據通過VGG19 的最后一個池化層后,使用修正線性單元(Rectified Linear Unit,ReLU)激活函數將上一步的結果傳遞到全連接層。設置其輸出是一個128 維向量。最后,先前的結果通過具有sigmoid 激活函數的全連接層傳遞,并輸出一維結果。該部分訓練的損失函數定義如下:

但是深層網絡存在著梯度爆炸或者消失的問題,這使得深度學習模型難以訓練。為了解決上述問題,該部分將引入短路跳躍鏈接,其結構如圖2 所示。

圖2 短路跳躍鏈接結構圖
假設神經網絡第l層的網絡入侵檢測經過數據預處理和數據轉換后圖像的特征圖為ml,之后經過一層卷積操作(Convolution)提取網絡入侵檢測數據的特征。為了防止神經網絡在訓練過程中產生的梯度彌散現象,本文將之前卷積操作后的輸出進行批歸一化(Batch Normalization,BN),使得輸出結果的均值和方差分別為0 和1。此外,為了防止神經網絡反向傳播中的梯度消失問題,將之前的輸出結果輸入到修正線性單元(Rectified Linear Unit,ReLU)。之后再按順進行卷積和批歸一化操作,得到輸出向量為了保留一些細節信息,則將向量與特征圖ml進行結合,從而將細節信息傳遞到更深層的神經網絡。最后再次通過修正線性單元,輸出第l+1 層的特征圖ml+1。綜上,經過本文提出的CNN 網絡入侵檢測模型中的短路跳躍鏈接后的第l+1 層的特征圖ml+1由下式定義:

其中,ReLU{?} 表示ReLU激活函數;Wl表示當前特征圖的權重向量;表示神經網絡的卷積操作;BN[?]表示批標準化操作。
通過神經網絡的正向傳播計算當前優化目標的值,并且通過反向傳播以及梯度更新策略減小優化目標的值,最終訓練出本文提出的網絡入侵檢測模型。
由于KDD99[31]是使用最廣泛的入侵檢測數據集之一,因此,在本文中,它被作為實驗的基礎數據。該數據集的中10%被用作測試集,其余為訓練集。該數據集總共包含500 萬條記錄,其中包括一種普通類型和四種攻擊類型(例如 DoS、Probe、U2R、R2L)。KDD99數據集中的每個記錄由41 個特征組成,包含有38 個數值型特征和3 個類別型特征。對于類別型特征,為了方便數據轉換,本文將其中一種特征(例如,proto?col_type)使用偽變量編碼,其余類別型特征使用獨熱編碼進行轉換。在預處理步驟之后,特征的維度數量已從41 擴大到121。之后,我們將具有121 維特征的KDD99 的每個數據轉換為11×11×1 數組。操作如圖3所示。

圖3 KDD99的數據轉換操作
之后將KDD99 數據轉換為圖像數據,圖4 顯示了KDD99 數據集中的正常數據和異常數據。實驗顯示,數據轉換后,正常數據和異常數據是不同的。

圖4 KDD99中的正常數據和異常數據
評估本文的方法性能的指標是準確率,它是網絡入侵檢測領域常用的方法。其定義如下:

其中,TP 代表正確分類的異常樣本的數量;TN 代表正確分類的正常樣本數量;FP 代表錯誤分類的正常樣本數量;FN 代表分類錯誤的異常樣本數量。
在本文的實驗中,通過網格搜索的方法進行調參后,超參數設置如下:批處理大小為500,迭代次數為200,學習率為0.001。本文在KDD99 數據集上使用不同的百分量的數據表作為訓練集,其余的作為測試集。圖5 顯示了我們提出的基于卷積神經網絡(CNN)和最近鄰居(NN)決策樹(DT)這兩種機器學習方法的準確性的對比。實驗顯示,隨著訓練集的增加,基于CNN 的方法的準確性不斷提高,而基于機器的學習方法的準確性卻沒有提高。這是由于卷積神經網絡可以充分利用大數據。
在使用相同KDD99 數據集的條件下,圖6 顯示了我們提出的方法與傳統的機器學習算法之間的對比實驗。其中包括多層感知器(MLP)、最近鄰居(NN)決策樹(DT)算法。

圖5 使用不同KDD99中數據量作為訓練集的準確率對比

圖6 基于CNN的方法和基于傳統機器學習方法的對比
本文提出的方法取得了98.33%的準確率,其高于傳統的機器學習算法。產生這種結果的主要原因是在特征提取能力方面,卷積神經網絡優于機器學習方法。傳統機器學習方法的準確性低于基于卷積神經網絡的準確性,這是因為特征提取后正常和異常數據的表示在低級特征方面具體一定的相似。但是,卷積神經網絡可以從這些類似的低級特征中自動化地提取復雜的高級特征。圖7 顯示了數據轉換后本文提出方法中的神經網絡中層間特征圖的可視化。

圖7 提出的基于CNN的方法的中間層特征圖的可視化
這是一種特征提取方案,不需要手動設計特征。因此,卷積神經網絡可以持續適應局域網中變化的網絡環境的入侵檢測。
本文提出了一種基于CNN 的局域網入侵檢測方法。該方法能通過卷積神經網絡自動化地提取特征,克服了對相關領域專家手工設計數據特征的依賴性,并且可以檢測出微小的突變甚至是新近發展的攻擊。此外,為了充分利用原始數據,本文創新地將網絡入侵檢測數據重塑為圖像格式,使得數據更加適用于卷積神經網絡的特征提取。最后,本文在卷積神經網絡模型的基礎上引入了跳躍鏈接,克服了卷積神經網絡模型的過擬合問題。實驗結果表明,所提出的基于卷積神經網絡的方法優于基于機器學習的方法,在網絡入侵檢測領域具有良好的效果。