郭志民, 周劼英,王 丹,呂 卓,楊 文
(1.國網河南省電力公司電力科學研究院,鄭州 450000;2.國家電網有限公司,北京 100031; 3.國網河南省電力公司,鄭州 450000)
當今網絡安全形勢日益嚴峻,網絡攻擊者利用巧妙的攻擊手法避開防火墻,入侵網絡系統(tǒng)獲取隱私信息、破壞網絡系統(tǒng)或導致服務器癱瘓,關于網絡入侵檢測研究已成為當今網絡安全最重要的研究方向之一。網絡入侵檢測通過對計算機系統(tǒng)和網絡事件分析,檢測入侵和攻擊行為。在一個網絡系統(tǒng)中,任何未經授權的活動,以及企圖繞過網絡安全機制的行為,都可視為網絡入侵行為[1]。網絡入侵檢測可被分為基于異常的檢測和基于誤用的檢測2種[2-3]?;诋惓5臋z測系統(tǒng)通過觀察網絡、系統(tǒng)或用戶的異常行為來檢測攻擊行為,基于誤用的檢測系統(tǒng)則使用先驗的攻擊模式和簽名來檢測攻擊行為。
隨著人工智能和機器學習的發(fā)展,越來越多研究開始嘗試使用機器學習的方法解決網絡入侵檢測的難題。Chowdhur等人[4]以互聯(lián)網上的流量數(shù)據為訓練集,一次性選取任意3組特征作為SVM的輸入進行訓練,給予了SVM一定檢測任意網絡異常行為的能力。Mohsen等人提出了用于入侵檢測的最小-最大K均值聚類方法[5]。該算法試圖最小化簇的最大內部方差,而不是像K均值算法那樣最小化內部方差的和。每個集群都有一定的權重,并將較高的權重分配給內部方差較大的集群,該算法獲得了81%的檢測率。Li等人[6]提出了2階段的“智能入侵檢測方法”。第一階段包括使用隨機森林算法,通過權衡特征的重要性來獲得特征的子集。第二個階段是一種基于特征子集作為輸入的分類器“基于混合聚類的Adaboost算法”。Jaiganesh等人[7]提出一種基于神經網絡的入侵檢測算法,通過專門選取入侵數(shù)據,使用反向傳播算法訓練神經網絡權重,使算法具有檢測入侵行為的能力。Sinapiromsaran等人提出了多屬性框架決策樹[8],將數(shù)據分為左、中、右3個區(qū)域,從最遠的一對中選擇一個核心向量來對入侵行為進行分類。李俊等人[9]考慮了網絡入侵數(shù)據的時序特點,使用GRU_RNN網絡結構在KDD數(shù)據集上進行訓練,獲得比其他非時序網絡更好的識別率與收斂性。
盡管許多現(xiàn)有研究探索了機器學習在網絡入侵檢測中的應用,這些研究對正常行為和攻擊行為進行分類,基于機器學習方法構建入侵檢測模型,具有一定檢測效果,但仍存在一些問題。主要體現(xiàn)在:1) 訓練樣本中標簽為正常行為的數(shù)據量遠大于非法行為,數(shù)據特征分布嚴重不均,導致模型難以訓練且泛化能力不足。2) 網絡入侵通常是時間上的一段連續(xù)行為,大多數(shù)模型不具備時序學習能力而丟失了時序特征,部分基于循環(huán)神經網絡的方法雖能夠學習時序特征,但其基于序列的串行訓練方式存在訓練耗時長且收斂效率較低等問題。
Transformer[10]最初應用于自然語言處理(NLP)任務中,其結構完全拋棄了RNN和CNN等網絡結構,而僅采用Attention機制來進行機器翻譯任務,且取得了很好效果,其網絡結構如圖1所示。Devlin等人提出的BERT[11],Brown等人提出的GPT-3[12],這些基于Transformer的模型都在NLP領域取得了重大突破。Transformer與基于RNN的時序神經網絡有明顯不同,RNN的訓練是迭代的、串行的,而 Transformer 的訓練是并行的,即所有特征是同時訓練的,大幅增加計算效率。
圖1 Transformer網絡結構Fig. 1 Transformer network structure
通過分析網絡入侵行為的數(shù)據特征,提出基于Transformer神經網絡模型的入侵檢測方法。通過在多個數(shù)據集上進行實驗,選取最優(yōu)的損失函數(shù)和網絡結構,最后在測試數(shù)據集上,相較于對比機器學習方法,提升訓練效率和識別率。主要貢獻包括:
1) 針對網絡入侵行為數(shù)據的時間相關性,提出了一種基于Transformer的網絡入侵檢測方法,進一步提升網絡入侵檢測的準確性。
2) 設計一種基于降維特征的多頭自注意力機制Transformer網絡模型,以解決傳統(tǒng)串行化時序神經網絡模型不易收斂且時間開銷較大問題,通過選取最優(yōu)損失函數(shù)和訓練參數(shù)進行并行化訓練,從而實現(xiàn)網絡入侵行為檢測。
3) 在多個數(shù)據集上進行對比實驗,結果表明,提出的基于Transformer網絡模型的網絡入侵檢測方法在多個數(shù)據集上均獲得了99%以上的精度和檢出率。
實驗采用的數(shù)據集為KDD-Cup-99和NSL-KDD網絡入侵數(shù)據集。KDD-Cup-99數(shù)據集[13]是第三屆國際知識發(fā)現(xiàn)和數(shù)據挖掘工具競賽所使用的數(shù)據集,共計23種標簽、4898431條數(shù)據,包含正常和22種攻擊類型標簽。NSL-KDD 數(shù)據集[14]是KDD-Cup-99數(shù)據集的改進版本,包含125973條網絡連接記錄。數(shù)據集如表1所示。
表1 網絡入侵數(shù)據集
分析了KDD-Cup-99及NSL-KDD數(shù)據集的數(shù)據分布,分析結果如圖2所示。
圖2 KDD-Cup-99及NSL-KDD數(shù)據分布Fig. 2 Data distribution of KDD-Cup-99 and NSL-KDD
分析結果表明,KDD-Cup-99數(shù)據集分布不平衡,這種不平衡數(shù)據分布會導致模型性能欠佳,導致漏檢率升高,而NSL-KDD數(shù)據存在信息冗余的問題[15]。為解決這一問題,引入特征提取模型,通過數(shù)據表征和降維,避免因數(shù)據冗余造成收斂性能降低。
1.2.1 字符數(shù)據編碼
由于原始數(shù)據集包含了字符串特征,不利于直接向量化,為了方便計算,將數(shù)據標簽進行One-hot編碼。One-hot編碼是機器學習分類任務中常用的數(shù)據編碼方式,它可以將原數(shù)據中離散的值轉化為歐式空間的點,使各標簽之間保持合理的特征距離。數(shù)據集中的每條數(shù)據被分為正?;虍惓?種類別,正常編碼為01,異常編碼為10,具體編碼方式見表2所示。
表2 數(shù)據標簽編碼
1.2.2 歸一化
由于原始數(shù)據中數(shù)據范圍相差較大,不利于網絡訓練。所以需要對原始數(shù)據的每一列進行歸一化處理。將同一列數(shù)據歸一化到(0,1)之間。其歸一化公式為
(1)
其中:x為原始數(shù)據集的任意一列數(shù)據值;xmin為統(tǒng)計整列獲得的最小值;xmax為最大值;x*為歸一化后的數(shù)據值。
1.2.3 特征降維
為了去除數(shù)據集中冗余信息對檢測準確性的影響,引入一個特征提取網絡F作為入侵檢測模型的前置網絡,該網絡由2層全連接層構成,其目的是將冗余的低級特征映射為高級特征。特征提取網絡F的計算過程如公式2所示。
y=σ(x′)=σ(F(x*)),
(2)
首先對網絡入侵數(shù)據進行時序編碼,對于特征數(shù)據集D,需要將時序信息嵌入到輸入特征中,通過一層全連接層,對不同時間的特征進行相應的時序編碼。時序編碼計算公式如下
PE(pos,2i)=sin(pos/10 0002i/dx),
(3)
PE(pos,2i+1)=cos(pos/10 0002i/dx),
(4)
其中:pos指的是一段序列中某個時刻特征的位置,取值范圍為[0, 最大序列長度];dx是特征維度;i表示在時序編碼向量中的索引,取值范圍為[0,...,dx]。位置嵌入函數(shù)的周期從2π到10 000×2π變化,而每一個位置在編碼維度上都會得到不同周期的sin和cos函數(shù)的取值組合,從而產生獨一的紋理位置信息,最終使得模型學到位置之間的依賴關系和自然語言的時序特性[4]。
從時序編碼后的特征序列中取一個長度為t的連續(xù)序列Xt=x1,....,xt|xi∈Rdx,其中xt是在t時刻維度為dx的網絡信息特征向量。輸出為一個長度為t的Yt=y1,....,yt|yi∈(0,1)狀態(tài)集,其中yt是在t時刻的狀態(tài)。輸入數(shù)據經過時序編碼后進入編碼模塊,編碼模塊將特征映射到更高維的特征圖(如圖3所示),并將其輸入到解碼模塊中,解碼模塊輸出最終的狀態(tài)集。
圖3 編碼模塊及解碼模塊結構圖Fig. 3 Structure of encoding module and decoding moudle
編碼模塊與解碼模塊具有相同的結構,主要由多頭自注意力層和前饋網絡組成。為了讓模型去關注不同方面的信息,采用了多頭自注意力層將注意力模塊分為多個頭,從而產生多個子空間,增強模型性能。
網絡由編碼器和解碼器組成(如圖4所示),其中編碼器主要由輸入層,時序編碼層和編碼模塊組成,輸入層通過全連接層將輸入時間序列數(shù)據映射到高維的向量,然后將輸入的向量與時序編碼向量逐元素相加,對其特征進行時序編碼。然后將結果輸入到編碼層,在經過編碼器后生成的特征向量,將其送入解碼器中。
圖4 基于Transformer網絡入侵檢測模型Fig. 4 Network intrusion detection model based on transformer
在推理的過程中采用動態(tài)解碼的方式,在經過編碼器之后獲得高維特征圖,將其輸出到解碼器中,同時根據前面時刻的預測結果依次進行。
由于數(shù)據樣本中存在正負樣本不均衡的問題,采用Focal Loss[16]作為損失函數(shù),如公式(5)所示,其廣泛用于目標檢測任務中的困難樣本挖掘,通過調整正負樣本的權重,使得模型在訓練中更關注難分類的樣本,有效緩解數(shù)據分布不均問題。
(5)
其中:y為分類層激活函數(shù)的輸出;y′為真實值,即編碼后的標簽;α和γ為調節(jié)因子,α取值為0.25,γ取值為2。
本次實驗中采用的硬件環(huán)境配置為Intel(R) Core(TM) i7-9700 CPU 64位處理器、32 GB內存,并采用GTX 3080運算加速,操作系統(tǒng)為Ubuntu 16.04。按比例4 ∶1隨機拆分訓練集和測試集,優(yōu)化器采用Adam,設置初始學習率為0.001,epoch數(shù)為100。
為了對實驗結果進行有效性能評估,采用二分類任務評價的標準混淆矩陣,混淆矩陣如表3所示。
表3 混淆矩陣
根據混淆矩陣,可以得到以下3個評價指標包括精度(PRE)、檢出率(TPR)、 F1分數(shù),如公式(6)、(7)和(8)所示。
精度(PRE)
(6)
檢出率(TPR)
(7)
F1分數(shù)
(8)
與傳統(tǒng)方法機器學習方法、基于深度學習的機器學習方法進行對比分析實驗[17-21]。傳統(tǒng)方法,與基于特征提取的支持向量機(SVM)算法及基于聚類的最鄰近結點算法(KNN)算法進行對比。深度學習方法,與深度神經網絡(DNN)和基于遞歸神經網絡的長短時記憶神經網絡(LSTM)進行對比。在不同數(shù)據集上,采用精度、檢出率和F1分數(shù)3個準確性指標進行對比實驗,驗證相對于其他模型,基于Transformer網絡模型的檢測方法在檢測效果上的優(yōu)勢。圖5、圖6分別展示了與傳統(tǒng)方法和與深度學習方法的對比實驗結果。
圖5 傳統(tǒng)方法對比實驗結果Fig. 5 Comparison experimental results of traditional methods
圖6 深度學習方法對比實驗結果Fig. 6 Comparison experimental results of deep learning methods
1)與傳統(tǒng)方法相比,提出的檢測方法在精度和檢出率方面都有明顯優(yōu)勢,SVM相較KNN提升一定檢測效果,但仍不佳。在不同數(shù)據集上,傳統(tǒng)方法檢測效果受影響較大,而研究方法無論是在數(shù)據分布不均的KDD-Cup-99數(shù)據集上,還是在數(shù)據相對分布均勻的NSL-KDD數(shù)據集上,都能取得好的檢測效果。
2)與深度學習方法進行對比實驗,采用相同的模型,使用不同的數(shù)據集訓練,DNN與LSTM的檢測效果也會受到影響,各指標波動明顯大于檢測模型,這表明方法在模型泛化性能上更具優(yōu)勢。采用相同的訓練集訓練,使用不同的模型進行對比,深度學習模型均能取得95%以上的精度和檢出率,且具有時序學習能力的LSTM比DNN有更好的準確性,說明網絡入侵行為存在可用的時序信息,提出檢測方法在各指標上取得了99%以上分數(shù),優(yōu)于其他深度學習模型。實驗結果表明,針對數(shù)據分布、時序信息學習及網絡結構改進都有效提升網絡入侵檢測效果。
提出一種基于Transformer網絡模型的網絡入侵檢測方法。所提出的Transformer網絡模型基于降維特征,利用多頭自注意力機制學習到網絡入侵數(shù)據時序特征,通過選取最優(yōu)的損失函數(shù)和訓練參數(shù)進行并行化訓練,結合特征提取的數(shù)據預處理方式,緩解數(shù)據分布不均衡問題,有效提高檢測效果。實驗結果表明,在不同數(shù)據集上,相比傳統(tǒng)方法以及深度學習方法,采用精度、檢出率和F1分數(shù)作為指標,都取得了最佳檢測效果。