吳亞麗,王君虎,鄭帥龍
1.西安理工大學 自動化與信息工程學院,西安 710048
2.陜西省復雜系統控制與智能信息處理重點實驗室,西安 710048
網絡入侵檢測系統(network intrusion detection systems,NIDS)作為一種積極主動的防御技術,是及時發現潛在網絡威脅、制定合理防御策略的主要手段,是網絡安全技術體系中重要的組成部分[1]。它能夠通過收集和分析相關網絡數據及時發現攻擊行為,降低網絡安全威脅。
常見的入侵檢測方法包括基于簽名的檢測和基于異常的檢測兩類。基于簽名的NIDS依賴于一個攻擊簽名數據庫進行檢測,對于數據庫中已有數據具有較高的檢測率,但是無法檢測出新型攻擊,需要經常更新數據庫。基于異常的NIDS通過分析不尋常的流量分布來識別計算機中隱藏的攻擊,可以用于檢測新型攻擊,該系統使用配置文件來存儲用戶、主機、網絡連接和應用程序的所有正常行為。這種方法將當前活動與配置文件進行比較,存在任何顯著偏差就標記為異常,這種對于數據的敏感性有效防止了各種惡意行為。然而,這種敏感性優勢會導致高誤報率,從而導致不必要的恐慌和過度反應。
在基于異常的NIDS 中,大多采用傳統的機器學習算法如貝葉斯網絡[2]、支持向量機[3]等,這些算法在小規模的流量數據檢測問題上表現出良好的性能。但是,隨著網絡技術的不斷發展,網絡規模不斷擴大,傳統的入侵檢測方法性能在處理海量高維數據方面面臨巨大挑戰。
作為表征學習的代表,深度學習能夠直接從復雜的原始特征中自動學習到高層次的數據特征,免去了手工特征提取過程中對專家知識的依賴,因此,目前的入侵檢測系統大多都基于深度模型框架。常用的深度模型有自編碼器[4]、卷積神經網絡(convolutional neural network,CNN)[5]、循環神經網絡(recurrent neural network,RNN)[6]等。文獻[7]提出將CNN用于網絡入侵檢測,利用CNN來選擇特征對流量進行分類,相較于傳統算法有良好的效果,但是忽略了流量數據時間順序上的聯系;文獻[8]提出將LSTM(long short-term memory network)運用于入侵檢測中,取得了不錯的分類效果,但是沒有考慮數據的空間特性,分類器性能仍有提升空間。為了更加充分地提取網絡流量數據特征,文獻[9]提出將CNN 和LSTM混合使用,用CNN學習網絡包的特征,再用LSTM學習網絡流量之間的特征,相較于單獨使用LSTM、CNN 或其改進模型效果更好,有效提高了對流量數據分類的準確率。盡管神經網絡模型具有強大的特征提取能力,但是上述模型都需要大量帶有標簽的數據樣本,而現實中大量的數據是沒有標簽的,而且為數據人工標定標簽是一項昂貴而耗時的任務。
強化學習(reinforcement learning,RL)是解決上述問題的一種有效方法。傳統強化學習基于馬爾科夫決策過程(Markov decision process,MDP)來設計算法,但是只能分析小規模問題,現實環境往往復雜多變,傳統強化學習方法在解決實際問題時難以取得有效的解決方案。文獻[10]將強化學習與深度學習結合,提出深度強化學習(deep reinforcement learning,DRL),將強化學習中復雜的數據空間以及映射關系用神經網絡來近似,極大擴展了強化學習的應用范圍,再加上其特有的反饋機制,使得強化學習在分類問題上也有著廣泛的應用。文獻[11]首次將分類問題等效為智能體(agent)的連續決策過程,提出一種基于強化學習的分類任務解決方案,在UCI八種數據集中的準確率達到87.4%。文獻[12]針對網絡入侵檢測問題提出基于對抗性多智能體的AE-DQN模型,取得了不錯的檢測效果。盡管上述深度強化學習模型在解決標簽不足的分類問題時表現出獨到的優勢,但深度學習網絡模型的選取同樣不容忽視,深度學習模型的選取是否得當很大程度上決定分類器性能的好壞,上述模型的側重點都只放在了智能體策略的生成方式上。
此外,現實中往往會遇到數據不平衡問題,分類器能得到較高的整體分類精度,但對少數類數據的識別率極低,而錯分少數類會帶來巨大代價。針對數據不平衡問題,通常可采用兩類解決方法:數據級方法和算法級方法。在數據層面,采用重采樣方法修改原始數據集,使其足夠平衡。在算法層面上,通過修改分類器,使現有的分類器加強對少數類的學習。綜合考慮到操作實現的難易程度以及深度強化學習對于大數據的需求,本文采用了一種數據級的重采樣方法來減少數據不平衡的影響。
因此,為提高系統對不同類型流量的檢測率,本文提出了一種基于改進雙重Q 網絡的網絡入侵檢測模型。該模型將入侵檢測過程模擬為智能體的順序決策過程,將CNN 與BiLSTM 的混合網絡模型引入雙重深度Q網絡的學習框架,旨在提取到更加完備的數據特征的前提下,使用強化學習策略不斷優化分類器,最終實現對不同類型攻擊流量的精確識別。同時,考慮到數據不平衡問題,引入不平衡處理策略提高稀有攻擊的檢測率。
本文所提出的方法創新點表現在:(1)為了解決監督學習過程中對樣本標簽的強依賴性問題,提出用深度強化學習算法引導分類器獲得自主決策能力,完成對樣本的正確分類;(2)為了充分利用流量數據特征,采用CNN和BiLSTM的混合模型,提取更加完備的空時融合特征;(3)考慮到稀有攻擊樣本檢測率低的問題,引入數據平衡化處理策略。
深度Q 網絡(deep Q-network,DQN)[13]是強化學習領域一種重要算法,其核心思想是:通過讓智能體感知環境狀態,在與環境交互的過程中找到最優策略函數,使得累計收益最大化。策略函數定義為:

在智能體做決策過程中,策略函數得到狀態樣本st,根據一定的概率P返回該狀態的動作at(網絡攻擊類別)。
累計收益定義為回報函數Gt:

其中,rt+k是未來時刻的狀態對應的獎勵值,γ∈(0,1]是折扣因子,γ的值越大,折扣后回報將更多考慮未來收益。
在給定的策略π下,為了評估某一狀態的回報值,引入狀態價值函數Vπ(s),在狀態s處的狀態價值函數定義如下:

其中,E是期望函數,由于強化學習具有馬爾可夫性,狀態價值函數又可以寫成如下貝爾曼方程形式:

其中,p(s′|s,a)表示執行策略π(a|s)后狀態由s轉移到狀態s′的概率。
在所有可能的狀態價值函數中,一定存在一個最優的狀態價值函數V*(s),滿足貝爾曼最優方程:

方便起見,在強化學習中引入Q 函數,輸入為狀態動作對,輸出為獎勵值:

稱Qπ(s,a)為策略π的狀態動作價值函數。
Q 函數使用一個Q 表格將學習過程中的信息以元組{s,a,r,s′}的形式存儲起來。當狀態空間無限大時,難以維持如此龐大的Q 表。將Q 學習與深度學習結合起來,使用深度神經網絡來近似動作價值函數,就形成了深度Q網絡。
網絡訓練過程中不斷更新網絡參數θ,以最小化損失函數L(θ),L(θ)的定義如下:

一般的,參數θ的迭代更新采用梯度下降法:

在DQN 中,使用相同的參數θ來選擇動作和評估狀態動作價值函數,容易產生估計過高的情況,針對這一問題,文獻[14]對傳統DQN 進行改進,提出一種雙重深度Q 網絡算法(double deep Q-network,DDQN)。該算法引入兩個結構相同的深度學習網絡,即在線網絡和目標網絡,參數分別為θ和θ′,其中在線網絡用于選擇動作,目標網絡用于估計價值,兩個網絡參數更新不同步,有效解決了數據樣本和網絡訓練之間存在相關性的問題。具體步驟如算法1所示。
算法1 DDQN算法

類似地,將DDQN的損失函數L(θ)定義為:

訓練過程中,目標網絡的更新方式與DQN相同,智能體與環境經過固定次數的交互后,將在線網絡的參數復制給目標網絡,完成對目標網絡參數的更新。
本文將CNN與BiLSTM的混合模型CBL模型引入雙重深度Q網絡框架,提出基于改進雙重深度Q網絡的CBL_DDQN 入侵檢測模型,旨在使用CBL 網絡擬合Q函數,并使用雙重深度Q網絡中的反饋機制和優化策略對CBL網絡進行優化,最終實現對流量的正確分類。
2.1.1 卷積神經網絡
卷積神經網絡(CNN)主要包括卷積層、池化層、全連接層等不同類型的結構,其主要特點是局部連接和權值共享。CNN常用的結構如圖1所示。

圖1 卷積神經網絡框架Fig.1 Convolutional neural network framework
傳統的卷積網絡采用二維卷積核,能對二維圖像特征進行有效提取,但對于序列化的數據處理效果不理想。文獻[15]指出一維CNN 可以通過在給定的時間范圍內序列化TCP/IP包來更好地學習時間序列數據集上的特征,故本文采用一維卷積神經網絡來提取數據中的空間特征。
2.1.2 長短期記憶神經網絡
長短期記憶神經網絡(LSTM)是為了解決傳統循環神經網絡(RNN)的梯度消失問題而提出的,其基本單元是一種包含多組神經元的結構,稱為細胞(cell),如圖2所示。

圖2 長短期記憶網絡的基本單元Fig.2 Basic unit of long short-term memory network
分別稱三個控制門f、i、o為遺忘門、輸入門和輸出門,對三個控制門的參數進行合理設置,就可以實現LSTM的記憶功能,核心計算公式如式(12)~(16)所示:

其中,f、σ、i、t、o、h、c、W、b分別表示遺忘、Sigmoid 激活函數、輸入、時間步長、輸出層、隱藏層、單元狀態、權重矩陣、偏差。
為了滿足提取信息的完整性,業內主流將細胞結構采用雙向連接的形式,構成雙向長短期記憶神經網絡(BiLSTM),其結構如圖3所示。

圖3 雙向長短期記憶網絡框架Fig.3 Network framework of BiLSTM
2.1.3 CBL模型
網絡流量數據是有時間步長的序列,既存在空間特征,也存在時間特征[16]。由于CNN和BiLSTM在數據特征提取方面各自有其優良的特性,本文將一維卷積網絡和雙向長短期記憶網絡混合生成CNN、BiLSTM混合模型,簡稱CBL模型,如圖4所示。

圖4 CBL模型框架Fig.4 CBL model framework
CBL 模型的設計思路:使用一維CNN 提取序列化流量數據的空間特征;用最大池化層將參數離散化,以減少訓練時間和防止過擬合;在最大池化層之后,加入批歸一化層,將中間層的參數歸一化,以加快訓練速度;BiLSTM層用于學習前向和向后的時間序列數據,設置兩個BiLSTM層是采用不同粒度的學習方式,以更好地學習一維CNN 中的長期時間依賴特征的相關性,設置兩層BiLSTM 之間的網絡層是為了更好地提取特征并加快訓練速度;設置Dropout層避免模型過擬合,最終使用Softmax函數輸出概率矩陣。
將CBL模型引入DDQN架構,得到CBL_DDQN模型,對模型中的相關概念進行如下定義:
(l)智能體agent
將智能體設置為CBL_DDQN 模型,將模型中的參數θ看作選擇動作的策略π(a|s),用以分析特征和選擇動作。
(2)狀態S
將整個數據集設置成智能體所處的環境Environment,當前輸入網絡的流量數據定義為智能體觀測到的環境狀態st。
(3)動作A
在分類任務中,分類器的輸出值a~t是狀態歸屬的對應類別,在訓練階段,智能體通過ε-greedy 算法進行動作選擇。對于N分類問題,動作空間A={0,1,…,N-1},a~t∈A,其中0 代表正常流量,1~N代表不同類別的攻擊流量。
(4)獎勵R
獎勵值是評價智能體選取動作好壞的一個抽象概念,在本文實驗中,如果智能體將數據分類正確,則獲得+1的獎勵,反之,獲得-1獎勵。
將兩個結構相同的CBL模型CBL_DDQN_TrainNet、CBL_DDQN_TargetNet引入DDQN網絡,使用在線網絡CBL_DDQN_TrainNet 選擇動作,使用目標網絡CBL_DDQN_TargetNet估計價值。具體學習過程如圖5所示。
圖5所示智能體從狀態st開始,采用ε-greedy 策略選擇最大價值相對應的動作a~t,并將a~t傳遞給Environment,判斷分類正誤并獲得相應獎勵,分類正確獲得獎勵為+1,分類錯誤獲得獎勵為-1;將每次與環境交互的結果以元組{st,a~t,q,rt}的形式存儲到提前開辟好的經驗池MemoryD中;當經驗池中的數據達到設定的閾值時,每次從中隨機采集batch_size個樣本輸入到CBL_DDQN_TrainNet,用于更新q*的值,用式(10)計算模型的損失,更新模型參數;當訓練達到固定的訓練周期,將CBL_DDQN_TrainNet的參數復制給CBL_DDQN_TargetNet,完成對目標網絡模型的優化。

圖5 CBL_DDQN學習流程圖Fig.5 CBL_DDQN learning flow chart
為了驗證CBL_DDQN 模型的可行性,本文選用入侵檢測領域的兩個公開數據集NSL_KDD 和UNSW_NB15 進行仿真實驗。兩個數據集的詳細信息如表1、表2所示。

表1 NSL_KDD數據集的攻擊類別信息Table 1 NSL_KDD dataset attack categories

表2 UNSW_NB15數據集的攻擊類別信息Table 2 UNSW_NB15 dataset attack categories
數據預處理主要包含以下三部分:字符型特征數值化、獨熱編碼以及數值歸一化。
(1)字符型特征數值化
將正常記錄和不同的攻擊記錄類別特征由字符型轉化為數字標簽,轉化后的標簽分布如表1、表2所示。
(2)獨熱編碼
獨熱編碼可以將離散特征的取值擴展到歐式空間,使得特征之間的距離計算更加合理。
(3)數值歸一化
在獨熱編碼后,為了減小每一維屬性特征數值大小對后續網絡的影響,將每一維屬性特征按式(18)進行歸一化處理,歸一化后的區間為[0,1]:

其中,xmin為當前維數所對應的特征數據中的最小值,xmax為當前維數所對應的特征數據中的最大值,x˙為歸一化后的特征數據。
由表1、表2可以看出,數據集中的樣本之間存在嚴重的不平衡問題,可能會導致分類器對于稀有攻擊樣本檢測率低。因此,本文引入Borderline-SMOTE算法[17]對數據進行過采樣處理。該算法是在SMOTE算法的基礎上提出來的,其樣本生成公式如式(19)所示:

其中,xi為選中的少數類樣本,x~i為xi的近鄰,xnew為新生成的樣本。SMOTE 算法的算法具體步驟如算法2所示。
算法2 SMOTE算法

但是,SMOTE 算法生成的少數類樣本可能落在多數類中,易成為噪聲樣本,同時,其樣本生成規則是根據近鄰原則,很可能導致原樣本在密集區,生成合成樣本依然大概率在密集區,而若原樣本在稀疏區,生成合成樣本大概率在稀疏區,使得分類算法不易識別稀疏區樣本,影響算法對稀疏區樣本的學習。Han等人[17]對其進行了改進,考慮到邊界數據點的重要性,首先根據規則判斷出少數類的邊界樣本,再利用SMOTE 算法對邊界樣本生成新樣本。邊界的判斷規則步驟如算法3所示。
算法3 Borderline-SMOTE算法判斷邊界樣本原則

再對輸出的邊界樣本集B使用SMOTE 算法生成新的樣本。本文中使用Borderline-SMOTE 算法對稀有攻擊樣本進行生成,過采樣處理前后的數據集劃分結果如表3、表4所示。

表3 NSL_KDD過采樣前后數據信息Table 3 NSL_KDD dataset information before and after oversampling

表4 UNSW_NB15過采樣前后數據信息Table 4 UNSW_NB15 dataset information before and after oversampling
其中,訓練集1 和訓練集3 表示從原始數據集中分別劃分出來的訓練集,訓練集2 和訓練集4 表示使用Borderline-SMOTE 算法處理后的訓練集。將生成的少數類樣本與原樣本數據一起送入學習模型訓練,最終的整個學習流程如圖6所示。

圖6 CBL_DDQN模型入侵檢測流程圖Fig.6 CBL_DDQN model intrusion detection flow chart
實際應用中,可將本文所提的網絡入侵檢測系統按照圖7所示的方式進行部署。
由圖7 可知,NIDS 作為網絡防火墻之后的第二道防線,主要負責對通過防火墻的流量數據進行動態監測,二者有效結合可大大提高網絡的安全性。

圖7 網絡入侵檢測系統部署框架Fig.7 Architecture of network intrusion detection system
為評價模型的性能,本文采用Accuracy、Precision以及Recall作為性能評價指標。
Accuracy:準確率,表示分類正確樣本占總體樣本的比例。

Precision:精準率,表示被正確分類的正類樣本占所有被分為正類樣本的比例。

Recall:召回率,表示分類正確的正類樣本占所有正類樣本的比例。

其中,TP表示分類正確的正類樣本,FP表示分類錯誤的負類樣本,TN表示分類正確的負類樣本,FN表示分類錯誤的負類樣本。
本實驗環境的硬件環境為:CPU Intel i5-6300H CPU@2.30 GHz,8 GB RAM,GPU NVIDIA GeForce GTX 960M,采用基于TensorFlow2.1 的Keras 深度學習平臺,使用Sklearn 和imblearn 庫,python 版本為3.7,Win64位操作系統。
對CBL網絡模型的參數設置如表5所示。

表5 CBL模型的參數設置Table 5 Parameters in CBL model
表中,N表示預處理后數據的維數,M表示數據流量的分類個數,網絡中用到的最大池化層的池化步長均設置為5,Dropout的值均設置為0.5。
對深度強化學習模型中的各個超參數設置如表6所示。

表6 深度強化學習模型參數設置Table 6 Parameters in deep reinforcement learning
為了減少訓練過程中的不穩定現象,對參數進行如下設置:(1)為避免網絡陷入局部最優,實驗中采用Adam優化器,將學習率設置為0.001;(2)為加快實驗速度,采用批量更新的方式,每次從經驗池中選取小批量的樣本更新網絡參數,經驗池容量設置為1 000,批量設置為128。同時設置折扣因子為0.8,動作選擇策略的參數ε隨著實驗的進行從1.0 逐漸遞減到0.01,衰減步長設置為0.000 1,隨著ε的減小,智能體隨機選擇動作的概率會逐漸減小。
本文采用NSL_KDD 和UNSW_NB15 兩組網絡流量數據集進行實驗。數據集的詳細內容如3.1 節所述。實驗中,將整個訓練集的所有數據設置為一個epoch,設置最大epoch 為30,每訓練5 個epoch 對模型的分類結果做一次統計,采用對照實驗的方式分別測試使用Borderline-SMOTE 算法處理前后系統對數據的識別率。統計訓練30個epoch后的分類結果,如圖8、圖9所示。

圖8 模型對NSL_KDD的識別率Fig.8 Detection accuracy of NSL_KDD

圖9 模型對UNSW_NB15的識別率Fig.9 Detection accuracy of UNSW_NB15
由圖8、圖9 可以看出,隨著訓練的不斷進行,用不同數據訓練的分類器的性能均在逐步提升,且引入Borderline-SMOTE 算法的模型所對應的分類準確率均高于相同訓練次數下對于原始數據集的準確率,可以直觀地看出引入不平衡處理算法對于模型的收斂具有較大的促進作用。
為了進一步驗證本文所提模型的有效性,比較了六種不同方法的準確率、召回率以及精確率:Adam-BNDNN[18]、DQN[19]、RF[19]、SVM[19]、MLP[19]和Adaboost[20],統計結果如表7、表8所示,其中加粗的數據是該項性能指標的最優值。

表7 各模型對NSL_KDD的分類性能比較Table 7 Performance comparison of each model for NSL_KDD %

表8 各模型對UNSW_NB15的分類性能比較Table 8 Performance comparison of each model for UNSW_NB15%
直觀起見,將表7 中的數據繪制成條形圖的形式,結果如圖10所示。

圖10 各模型對NSL_KDD的分類性能Fig.10 Classification performance of each model for NSL_KDD
結合表7和圖10可以看出,本文提出的CBL_DDQN模型在NSL_KDD 數據集上的檢測效果顯著。在準確率、召回率以及精準率這三項評價指標上分別達到了99.96%、99.97%和99.79%,各項性能指標均優于其他IDS。
同樣地,為了直觀起見,將表8 中的數據繪制成條形統計圖的形式,結果如圖11所示。

圖11 各模型對UNSW_NB15的分類性能Fig.11 Classification performance of each model for UNSW_NB15
結合表8和圖11可以看出,本文模型對UNSW_NB15的檢測結果中整體識別準確率可達到90.12%,召回率可達到95.20%,精確率可達89.93%,雖然不及所提對比方法相應的各項指標最優值,但綜合考慮各項性能指標,本文所提模型可以實現良好的入侵檢測效果。
綜合分析上述兩組實驗結果,可知本文提出的基于改進雙重深度Q網絡模型能很好地解決入侵檢測問題。
本文提出了CBL_DDQN 網絡入侵檢測模型,將CNN 和BiLSTM 的混合網絡CBL 網絡引入DDQN 框架,使得模型擁有更佳的性能。與傳統深度學習算法相比,一定程度上解決了傳統深度學習對于數據標簽的依賴性問題,并取得了比深度學習算法更好的分類效果。考慮到數據之間的不平衡導致分類器難以充分學到數據特征的問題,采用Borderline-SMOTE 算法對稀有攻擊樣本數量進行擴充,結果表明,不平衡處理算法能在一定程度上提升模型的分類能力。
綜上所述,本文所提模型在不平衡數據分類問題中表現良好,且整體性能優于改進前的DQN 網絡和其他深度學習網絡,體現出深度強化學習的一種新的思維方式。接下來的工作將致力于降低模型的空間復雜度,提升模型的時間效率,加速模型收斂;同時,將在更加復雜的數據條件下,進一步研究模型的泛化能力。