張?zhí)煸?陳 偉 劉宇嘯
(南京郵電大學計算機學院 南京 210023)
(403803607@qq.com)
隨著科技的快速發(fā)展,人們在享受網絡帶來的更加豐富便捷生活的同時,也面臨著日益嚴重的網絡安全問題.中國互聯(lián)網信息中心發(fā)布的第50次《中國互聯(lián)網絡發(fā)展狀況統(tǒng)計報告》中指出,截至2022年6月,中國電信、中國移動和中國聯(lián)通總計監(jiān)測發(fā)現(xiàn)分布式拒絕服務攻擊316542起,工業(yè)和信息化部網絡安全威脅和漏洞信息共享平臺總計接報網絡安全事件7415654件.隨著網絡安全事件的不斷發(fā)生,網絡入侵檢測[1-2]已成為網絡生態(tài)系統(tǒng)中最關鍵的問題之一.提升入侵檢測有效識別惡意流量[3]的性能已成為網絡安全技術發(fā)展的必然要求.
傳統(tǒng)的機器學習方法,如貝葉斯網絡[4]、支持向量機[5]、決策樹[6]、隨機森林[7]、K最近鄰[8]等,都是通過學習已存在的入侵或者正常模式的網絡數(shù)據(jù)包的特征來發(fā)現(xiàn)異常.Wester等人[9]使用樹增強樸素貝葉斯分類器用于計算機網絡流量的基于異常的入侵檢測;周杰英等人[10]基于隨機森林進行特征轉換,再使用梯度提升決策時模型進行多分類網絡入侵檢測,模型收斂較快、精度較高、泛化能力好;江澤濤等人[11]針對入侵檢測效率低的問題,提出基于感知哈希矩陣的最近鄰入侵檢測算法.
然而,機器學習算法對特征依賴度較高,且難以學習網絡流量數(shù)據(jù)的復雜和非線性關系.深度學習作為表征學習的代表,能夠在高維海量數(shù)據(jù)中獲取其本質特征,進而提高分類準確率,被廣泛應用于入侵檢測中.常用的深度學習方法有卷積神經網絡[12-13]、循環(huán)神經網絡[14]、自編碼器[15]、深度信念網絡[16]、膠囊網絡[17]等.Mirsky等人[18]提出的核心算法KitNET使用1組自編碼器,以集成方式產生重構誤差區(qū)分正常流量和異常流量.在此基礎之上,Li等人[19]將網絡流量數(shù)據(jù)分為稀疏矩陣和稠密矩陣,利用隨機森林選出重要特征,根據(jù)AP聚類完成特征分組,輸入KitNET得到1組RMSE值,再對RMSE求平均值作為重構誤差,最后利用Kmeans算法區(qū)分正常/異常流量,縮短了檢測時間,有效提高了預測精度;Azizjon等人[20]利用1維卷積神經網絡用于網絡流量數(shù)據(jù)的異常檢測;Imrana等人[21]使用雙向LSTM(long short-term memory network)提升對U2R和U2L攻擊的檢測精度;Zhang等人[22]結合CNN和LSTM,采用多尺度CNN分析數(shù)據(jù)集空間特征,然后利用LSTM對時序特征進行處理,最后模型利用時空特征來分類,具有較高的準確率、較低的誤報率.
本文圍繞網絡流量的入侵檢測模型展開研究,提出了一種基于多尺度時空殘差網絡的入侵(multi-scale spatial-temporal residual network,MS-ST-RNet)檢測方法.首先使用log1p平滑處理對偏度較大的特征進行轉換,優(yōu)化數(shù)據(jù)分布;然后分別利用1維多尺度卷積和長短期記憶網絡分別提取網絡流量數(shù)據(jù)的空間特征和時序特征,并進行融合;接著基于殘差網絡的思想添加“直接/恒等映射”,避免網絡退化問題;最后通過全連接層和softmax函數(shù)對網絡流量進行分類.
本文的主要貢獻如下:
1) 考慮前后流量數(shù)據(jù)的時序關聯(lián),采用多條流量為整體,挖掘多條數(shù)據(jù)的時間相關性.相較于傳統(tǒng)的采用單條流量提取特征,本文的方式更有利于長短期記憶網絡提取時序特征.
2) 在數(shù)據(jù)預處理階段,為避免數(shù)據(jù)偏度較大而對模型性能造成影響,采用log1p平滑處理對部分特征進行轉換,使其更加服從高斯分布.通過數(shù)據(jù)樣本分布的可視化以及轉化前后與標簽的皮爾遜相關性對比,證明平滑處理的有效性.
3) 在特征提取階段,用1維多尺度卷積層提取數(shù)據(jù)樣本的空間特征,用長短期記憶網絡提取數(shù)據(jù)樣本的時序特征,并進行融合,提升模型的表征能力;添加恒等映射,使得深層網絡可以融合淺層、中層、高層網絡的特征,防止網絡退化問題.
4) 在入侵檢測數(shù)據(jù)集UNSW_NB15上進行了充分實驗,證明了本文模型解決網絡退化問題的有效性、超參數(shù)選擇的正確性以及相比常見深度學習模型的優(yōu)越性.
本文所提出的入侵檢測模型基于1維卷積、長短期記憶網絡以及殘差網絡的融合,下面就有關概念和預備知識予以介紹.
1維卷積指卷積濾波器窗口只在一個方向上滑動并進行卷積操作,定義如下:
y=σ(W*x+b).
(1)
其中:x為卷積層輸入;y為卷積層輸出;W∈Pk為卷積層的濾波器權值函數(shù);b∈Pd為卷積層偏置,σ為激活函數(shù),k為濾波器長度,d為特征維度.
1維卷積層可以對網絡流量數(shù)據(jù)進行固定尺度的空間特征提取.
圖1 LSTM網絡結構
ft=sigmoid(Wf·[ht-1,xt]+bf),
(2)
it=sigmoid(Wi·[ht-1,xt]+bi),
(3)
(4)
ot=sigmoid(Wo·[ht-1,xt]+bo),
(5)
(6)
ht=ot*tanh(ct).
(7)
其中:xt為時刻t的輸入;ct為時刻t的單元狀態(tài);ht為時刻t的隱藏狀態(tài)(初始時刻隱藏狀態(tài)為0);W與b分別為各個結構之間的權重與偏置值.
在深度學習中,隨著網絡層數(shù)的加深,除了增加計算資源消耗以及產生過擬合問題外,還會出現(xiàn)梯度消失或者爆炸問題,導致淺層網絡參數(shù)無法更新.當網絡很深時,模型效果不僅沒有提升,甚至很可能變差,即產生了網絡退化的問題.這是因為深層網絡在前向傳播的過程中,隨著網絡加深,網絡獲得的信息逐層減少,使用殘差網絡的思想,添加一系列殘差塊,構造“直接/恒等映射”的跳躍連接,使下一層不僅包括該層的信息,還包括該層經非線性變換后的新信息,使得信息層次更為豐富.
融合CNN、LSTM及殘差網絡,本文提出了一種基于MS-ST-RNet的入侵檢測模型,主要由數(shù)據(jù)預處理以及MS-ST-RNet這2大模塊組成,模型架構如圖2所示,符號定義如表1所示.
表1 符號定義
2.1.1 數(shù)據(jù)預處理
平滑處理很容易被忽略掉,導致模型的結果總是達不到一定標準,可以對偏度較大的數(shù)據(jù)用平滑處理進行轉換,使其更加服從高斯分布.
數(shù)據(jù)集中可能存在各種字符串型特征,而實際上機器學習、深度學習模型需要的數(shù)據(jù)是數(shù)值型的,因為只有數(shù)值型才能進行計算.因此,對于非數(shù)值型特征state,proto,service,需要進行相應編碼將其量化.本文選擇scikit-learn中函數(shù)OneHotEncoder將非數(shù)值型數(shù)據(jù)轉換為數(shù)值型數(shù)據(jù).
不同特征的數(shù)量級不同導致計算結果的不同,數(shù)量級大的特征會起決定性作用,而數(shù)量級小的特征作用可能被忽略.例如,在本文采用的數(shù)據(jù)集中,dur特征范圍在[0,53],而sload特征范圍在[0,1872000000],這2個特征具有不同的數(shù)量級.因此為了消除特征間數(shù)量級差異對入侵檢測的影響,本文用scikit-learn中的StandardScaler()對特征進行標準化處理,使其服從均值為0、方差為1的標準正態(tài)分布.
2.1.2 MS-ST-RNet模型
將經過數(shù)據(jù)預處理的網絡流量數(shù)據(jù)輸入MS-ST-RNet進行深度時空特征提取.MS-ST-RNet由若干個多尺度時空殘差模塊堆疊而成,每個模塊的輸入與輸出維度相同.利用函數(shù)reshape將多維輸出1維化,再經過全連接層將提取到的時空特征綜合起來.最后采用softmax函數(shù)作為分類器實現(xiàn)網絡流量分類,獲得網絡流量分類結果.
多尺度時空殘差模塊為MS-ST-RNet的核心模塊.MS-ST-RNet通過多尺度時空殘差模塊的多尺度1維卷積層增加網絡寬度,提取空間特征;通過LSTM提取數(shù)據(jù)間的時序特征,并將空間特征和時序特征進行特征融合,增強模型表征能力以及泛化能力;通過堆疊多個多尺度時空殘差模塊增加網絡深度,添加恒等映射,將網絡淺層、中層以及高層特征進行融合,使信息層次更加豐富,避免深層網絡出現(xiàn)梯度消失、梯度爆炸、網絡退化等問題.
多尺度時空殘差模塊在多尺度時空模塊的基礎上添加“直接/恒等映射”,如圖3所示:
2.2.1 多尺度1維卷積層
網絡流量的識別不能僅依賴于一些離散的局部特征,而應該通過多個不同尺度的卷積核來提取不同大小的流量特征,并將其融合以獲得多組局部特征.本文通過多尺度1維卷積層實現(xiàn)多尺度網絡流量數(shù)據(jù)的空間特征提取,使用的卷積濾波器長度分別為3,5,7.通過逐項相加實現(xiàn)多尺度空間特征融合,單個元素信息量增加的同時可以保持特征維度不變,降低后續(xù)運算開銷.利用BN層進行批歸一化,使數(shù)據(jù)服從或近似服從標準正態(tài)分布,加快神經網絡的收斂速度,防止梯度爆炸、梯度消失以及過擬合現(xiàn)象.選擇ReLU作為激活函數(shù)放大特征間差異,增加網絡稀疏性,使得最終提取出的多尺度空間融合特征更具代表性,提升網絡泛化能力.
2.2.2 LSTM
為避免長序列訓練過程中出現(xiàn)的梯度消失和梯度爆炸的問題,本文通過LSTM提取網絡流量數(shù)據(jù)的時序特征,同多尺度1維卷積層,使用BN進行批歸一化并選擇ReLU作為激活函數(shù),之后再與多尺度空間特征進行融合.LSTM層的輸出維度由隱藏單元個數(shù)決定.由于后續(xù)要與多尺度空間特征進行特征融合,并添加恒等映射進行殘差連接,因此本文將隱藏單元個數(shù)設置為多尺度時空殘差模塊的輸入數(shù)據(jù)維度,即經過數(shù)據(jù)預處理過程的網絡流量數(shù)據(jù)維度.
2.2.3 殘差學習
為解決網絡退化問題,本文通過構造“直接/恒等映射”的跳躍連接方式實現(xiàn)殘差擬合.多尺度時空殘差映射如下:
xout=x+F(x)=x+xout_fin.
(8)
其中:x和xout分別為多尺度時空殘差學習的輸入與輸出;xout_fin為多尺度時空殘差模塊提取到的時空融合特征;F(x)為殘差映射.同多尺度1維卷積層以及LSTM,使用BN進行批歸一化并選擇ReLU作為激活函數(shù),優(yōu)化數(shù)據(jù)分布,得到多尺度時空殘差模塊的最終輸出.
添加恒等映射后,伴隨著網絡加深網絡性能不下降,深層網絡效果比淺層好,解決了網絡退化問題.
本文實驗訓練和測試均在Windows10操作系統(tǒng)環(huán)境下進行,CPU為AMD Ryzen 7 5800H with Radeon Graphics 3.20GHz,16GB內存.開發(fā)語言為Python,集成開發(fā)環(huán)境為Pycharm和Jupyter Notebook.Pytorch作為最流行的深度學習庫之一,可以執(zhí)行大規(guī)模的數(shù)值計算,方便地搭建網絡模型,實現(xiàn)本文的MS-ST-RNet.
為了評估MS-ST-RNet的檢測性能,用混淆矩陣計算出基礎指標后,本文采用精確率P(precision)、召回率R(recall)、F1值、準確率Acc(accuracy)和AUC作為模型效果的評估指標.
精確率是預測出的正樣本中預測正確的比例,召回率是預測正確的正樣本占所有正樣本的比例,F1值是精確率和召回率的加權調和平均,準確率是預測正確的樣本占總樣本的比例.計算如下:
(9)
(10)
(11)
(12)
AUC是ROC曲線覆蓋的面積,ROC是假陽性(FPR)與真陽性率(TPR)之間的關系曲線,FPR和TPR分別為x,y軸.計算如下:
(13)
(14)
其中:TP是預測為正實際也為正的樣本個數(shù);TN是預測為負實際也為負的樣本個數(shù);FP是預測為正實際為負的樣本個數(shù);FN是預測為負實際為正的樣本個數(shù).
本文實驗選用的數(shù)據(jù)集是UNSW_NB15,該數(shù)據(jù)集是2015年澳大利亞網絡安全中心(ACCS)實驗室利用IXIA PerfectStorm工具生成的,比傳統(tǒng)的KDD-99和NSL-KDD數(shù)據(jù)集更具現(xiàn)代網絡流量代表性.官方提供了分割好的訓練集和測試集,數(shù)據(jù)共有45個特征.
模型具體結構在第2節(jié)已給出,去除id、攻擊類別和標簽,剩余42維特征,采用2.1.1節(jié)中的數(shù)據(jù)預處理方式,最終數(shù)據(jù)維度變?yōu)?94維,送入多尺度時空殘差網絡,再通過全連接層和softmax函數(shù)得到最終的二分類結果.
在機器學習或深度學習中,研究者需要在訓練開始之前依據(jù)自身經驗和專業(yè)知識設置一些參數(shù),選擇1組相對最優(yōu)的參數(shù)訓練模型,這些參數(shù)不會根據(jù)網絡優(yōu)化進行迭代更新,被稱為超參數(shù).經過多次實驗調整參數(shù),本文選擇了以下超參數(shù)訓練MS-ST-RNet,如表2所示:
表2 實驗超參數(shù)設置
合適的學習率能夠使目標函數(shù)在合適的時間內收斂到最小值,學習率越大輸出誤差對參數(shù)的影響就越大,參數(shù)更新就越快,但同時受到異常數(shù)據(jù)的影響也就越大,很容易發(fā)散.迭代次數(shù)過小,網絡不能得到最優(yōu)參數(shù);迭代次數(shù)過大,網絡容易過擬合.經過多次調整,本文的學習率為0.001、迭代次數(shù)為12時,效果較好.優(yōu)化器是Adam,損失函數(shù)為交叉熵損失函數(shù).
為了說明本文模型解決網絡退化問題的有效性以及超參數(shù)選擇的正確性,本文進行了多組實驗,包括log1p平滑處理前后的效果對比、不同深度的多尺度時空網絡與MS-ST-RNet的對比以及不同超參數(shù)帶來的實驗結果對比.
1) log1p平滑處理前后對比.
選擇連續(xù)特征,將其平滑處理之前及l(fā)og1p平滑處理之后與“l(fā)abel”標簽的皮爾遜相關性作對比,如表3所示.選擇與“l(fā)abel”相關性的絕對值明顯增加的特征進行平滑處理,因為平滑處理之后能更好地體現(xiàn)樣本特征.
表3 平滑處理前后與“l(fā)abel”的相關性對比
2) 不同深度的多尺度時空網絡與MS-ST-RNet的對比.
為驗證MS-ST-RNet解決網絡退化問題的有效性,本文構建了不同深度的多尺度時空網絡(multi-scale spatial-temporal network,MS-ST-Net)與MS-ST-RNet進行對比,各個模型介紹如下:
MS-ST-Net-1由1個多尺度時空模塊組成;MS-ST-Net-5由5個多尺度時空模塊堆疊而成;MS-ST-Net-10由10個多尺度時空模塊堆疊而成;MS-ST-RNet-1由1個多尺度時空殘差模塊組成;MS-ST-RNet-5由5個多尺度時空殘差模塊堆疊而成;MS-ST-RNet-10由10個多尺度時空殘差模塊堆疊而成.
MS-ST-Net與MS-ST-RNet的性能評估結果如表4所示:
表4 MS-ST-Net與MS-ST-RNet(本文)的性能對比
通過縱向對比可知,隨著網絡加深,與MS-ST-Net-1相比,MS-ST-Net-5和MS-ST-Net-10的模型性能明顯減弱,存在網絡退化問題;而添加恒等映射的殘差網絡MS-ST-RNet-1,MS-ST-RNet-5,MS-ST-RNet-10,模型性能隨著網絡深度的增加而有所提升,具備更高的精確率、召回率、準確率、F1值以及AUC值.通過橫向對比可知,網絡深度相同時,MS-ST-Net-1和MS-ST-RNet-1的性能相近,但MS-ST-RNet-5相比MS-ST-Net-5,MS-ST-RNet-10相比MS-ST-Net-10性能明顯提升.
因此,在淺層網絡中,MS-ST-RNet和MS-ST-Net性能相近;但在深層網絡中,MS-ST-RNet表現(xiàn)出相當優(yōu)秀的效果,具備更強的網絡入侵檢測能力.
3) 不同超參數(shù)帶來的實驗結果對比.
迭代次數(shù)對損失值和準確率的影響如圖4所示.
圖4 迭代次數(shù)對模型的影響曲線
隨著迭代次數(shù)的增加,深度學習網絡中權重的更新次數(shù)也在增加,網絡從欠擬合到慢慢進入優(yōu)化擬合狀態(tài),在此過程中驗證集損失值呈現(xiàn)螺旋式下降趨勢,迭代次數(shù)為12時,網絡已經能夠很好地訓練.迭代次數(shù)高于12時,出現(xiàn)過擬合的情況,模型損失值升高,性能降低且訓練時間變長.所以本文將迭代次數(shù)設置為12.
本文將常用深度學習模型應用到UNSW_ NB15數(shù)據(jù)集上,如不同深度的CNN,LSTM,GRU,CNN-LSTM,CNN-GRU,各模型的檢測性能如表5所示:
表5 不同深度學習模型在UNSW_ NB15數(shù)據(jù)集的性能評估結果對比
由表5可知,GRU在數(shù)據(jù)集UNSW_NB15上效果優(yōu)于CNN和LSTM,具備較優(yōu)的網絡流量入侵檢測性能;混合模型的整體性能優(yōu)于單一模型,采用CNN進行空間特征提取后,LSTM和GRU性能都有提升;MS-ST-RNet-1與GRU-1,MS-ST-Net-1性能接近,但是當網絡層數(shù)較深時,MS-ST-RNet-10比其他同深度的模型明顯表現(xiàn)更好,各項指標都在98%以上,再一次說明了本文模型的優(yōu)越性和有效性.
考慮到現(xiàn)有的入侵檢測方法存在特征提取不佳、分類準確率低以及泛化能力弱等問題,本文融合了1維CNN、LSTM以及殘差網絡,提出基于多尺度時空殘差網絡的入侵檢測系統(tǒng).通過log1p平滑處理改善數(shù)據(jù)樣本分布,證明網絡流量數(shù)據(jù)預處理的有效性;然后利用1維多尺度卷積以及LSTM分別提取網絡流量數(shù)據(jù)的空間特征和時序特征并進行融合,提升了模型表征能力;添加恒等映射防止梯度消失、梯度爆炸并解決了網絡退化問題;最后通過全連接層以及softmax函數(shù)對數(shù)據(jù)樣本進行二分類,實現(xiàn)高效、準確的網絡入侵檢測.皮爾遜相關性對比實驗表明,經過log1p平滑處理之后,數(shù)據(jù)分布更加均勻,能更好體現(xiàn)樣本特征;有效性驗證實驗結果表明,通過添加“直接/恒等”映射可提升網絡流量入侵檢測能力并解決網絡退化問題;超參數(shù)實驗結果表明,本文設置較優(yōu)的超參數(shù),有利于網絡的優(yōu)化擬合;與常用的深度學習模型(不同深度的CNN,LSTM,GRU,CNN-LSTM,CNN-GRU)的對比實驗表明,本文提出的模型性能更優(yōu).
下一步本文將進行以下研究:UNSW_NB15訓練集中樣本是不平衡的,本文未進行不平衡樣本處理,未來可以通過過采樣、欠采樣等方法從多數(shù)類中刪除樣本或者向少數(shù)類中添加樣本,并實現(xiàn)多分類入侵檢測.