屈耘野 姜詠琪
(中國海洋大學 山東省青島市 266100)
網絡攻擊與入侵很可能會帶來廣泛的負面影響,包括數據損失、經濟損失和多維度的安全威脅。網絡攻擊與入侵所導致的業務中斷,很可能引發數據泄露,面臨敲詐勒索等威脅。對醫療系統的攻擊,使非法入侵者獲取關鍵信息,更是讓醫療檢測和器械的準確性大打折扣;無人駕駛系統中的攻擊與入侵,更關乎每個公民的人身安全。
近年來,基于機器學習的檢測技術在諸多領域進行了應用。2017年,Litjens[1]等人調查了在醫學領域使用機器學習技術的狀況,特別是在醫學圖像分類、目標檢測、分割和其他任務中的應用。2018年,Mohammadi[2]等人提供了用于物聯網大數據的機器學習算法與框架背景。Kiran[3]等人總結了應用于時空數據檢測的機器學習模型,并研究了相關評估標。
這些應用的實際成果表明,機器學習可能擁有超越傳統算法的優勢。本文提出通過數據噪音和馬氏距離差值項改進最新深度自編碼器(Autoencoder, AE)的方法,能夠更為有效的進行高維流量降維與入侵檢測,有助于彌補自編碼器難以學習深層特性和克服數據損壞的缺點,并為日后希望實現或研究入侵檢測技術的研究人員和工程師們提供經驗與參考。
自編碼器的結構分為編碼器和解碼器兩部分。它將輸入編碼并降維,提取數據關鍵的特征,然后解碼并重建原始的高維輸入數據,使得解碼后的數據與輸入本身盡可能一致[4]。
本文中自動編碼器使用分別具有42、24、12、12和42個神經元的5個全連接層。第一層是輸入層,與數據原始輸入的維度一致,與之后兩層一同用于編碼。最后兩層用于解碼,由于數據原始輸入維度的要求,輸出層的神經元個數與其一致。
其中編碼部分每層之間分別使用雙曲正切(TanH)激活函數與整流線性單元(ReLU)激活函數。最后兩層為解碼層,同樣使用TanH激活函數與ReLU激活函數,能夠更好地重構輸入數據。
受整體結構復雜程度、數據集規模和噪聲損壞等因素限制,原始自編碼器訓練生成的神經網絡過擬合可能性較高。考慮對輸入數據加入噪音,使學習得到的編碼器具有較強的穩定性,提高其泛化性能。本文噪音使用標準正態分布(Standard Normal Distribution)函數:

服從該概率分布的噪音將添加到輸入數據的每一個值上:

其中函數Add_noise用于加噪,n_factor為噪音權重系數,xj'為加噪后的單個數據樣本在該維度上的值。
馬氏距離(Mahalanobis Distance)是一種度量樣本之間相似程度的距離指標,既考慮到了各種特性之間的互相聯系又獨立于測量尺度[5]。
設輸入數據集的均值為:

且數據集的協方差矩陣為∑,則其馬氏距離表示為:

馬氏距離計算過程中使用了數據集的均值,而均值會放大少量攻擊入侵數據的影響[6]。因此本文采取不受攻擊入侵數據變化影響的訓練集正常數據均值μN和協方差矩陣∑N,函數表示如下:

加入馬氏距離差值項后改進的自編碼器損失函數表示如下:

其中函數MSE是均方誤差損失函數,m_factor為馬氏距離差值項權重系數,M(Xi,Yi)為馬氏距離差值。
本文實驗使用Ubuntu18.04.5操作系統,計算機CPU為Intel Core i7-10750H,RAM容量為40GB,基于Keras框架使用Python3.6.9與Tensorflow1.2.0底層實現;數據集使用基于KDD99數據集重采樣的NSL-KDD數據集。
KDD99數據集源于美國政府國防部于1998年在馬薩諸塞州林肯實驗室(MIT Lincoln Laboratory)進行的一項網絡攻擊與入侵實驗[7]。其中訓練集已經完成超過20種攻擊入侵行為的標記,測試集中則包含了10余種未曾出現的新型入侵。KDD99數據集在第五屆知識發現與數據挖掘國際會議發布,之后在事實上成為了網絡攻擊與入侵領域檢驗模型效果的測試工具。
NSL-KDD數據集對KDD99數據集進行了重采樣[8]。其中帶標記的訓練集與測試集均為41個維度。本次實驗根據需要對相關標簽進行了映射與轉換,并排除了部分未知和錯誤的數據。處理后樣本分布正常連接樣本數量60179,占比54.50%;攻擊入侵樣本數量50231,占比45.50%。

表1:網絡攻擊與入侵檢測實驗結果
訓練數據集為基于實驗數據集隨機采樣的約70%數據,測試數據集為剩余的約30%數據。其中噪音分布概率為標準正態分布,噪音權重系數n_factor為0.05。
由于需要用來訓練自編碼器神經網絡的是正常流量數據,因此將訓練集中的攻擊入侵樣本排除在外,測試集則保留所有正常和攻擊入侵樣本來提供評估模型性能的方法。訓練集中的攻擊入侵樣本可視情況添加到測試集中,擴大測試集規模從而使實驗結果更具參考性。
為了從不同的角度更好地評估本論文提出的兩種算法改進所取得的異常檢測效果,分別構建四個自編碼器神經網絡:原始自編碼器、降噪自編碼器、含馬氏距離差值的原始與降噪自編碼器。除了所提到的參數外,其余參數保持一致。
另有兩個較為重要的超參數:batch是在每次更新模型參數之前處理的數據樣本數量,epoch是訓練過程中訓練集完整的讀取與訓練次數。它們都是學習算法的整數超參數之一。本論文實驗中,超參數epoch為150或300,超參數batch為32或64,將性能最佳的模型保存到文件中。每個參數進行10次完整實驗取平均結果。
本文選用混淆矩陣體現的準確性指標、接受者操作特征(ROC)曲線下方面積(Area Under Curve, AUC)作為評價標準。
混淆矩陣把所有類別的預測結果與真實結果按類別放置到了同一個表里,可以計算得到真負類率(True Negative Rate, TNR)指標,由預測為負樣本、實際上也是負樣本的結果數除以實際上負樣本的總數得出。
對網絡攻擊入侵檢測任務而言,在一定的范圍內將正常連接識別為攻擊入侵更能讓人接受,因為這只是讓需要詳細審查的連接數量增加,而反過來可能直接導致攻擊入侵的發生。因此考慮采用真負類率來衡量檢測準確性,即下文所提準確性指的是真負類率指標。
ROC曲線的橫坐標為假正類率,縱坐標是真正類率。AUC是ROC曲線下方所覆蓋的面積,反映了ROC曲線表達的自編碼器異常檢測的能力。其值越接近于1,異常檢測效果越好。
由混淆矩陣可以計算出真負類率,也就是特指度,用來代表訓練結果的準確性,同時由ROC曲線可以計算得到面積指標AUC,用來客觀判斷和比較自編碼器異常檢測的性能。四個自編碼器方法的準確性(TNR)與AUC如表1所示。
由表1中四個實驗的對比,可知降噪自編碼都較原始自編碼器針對攻擊入侵具有更高的異常檢測準確性,對于網絡攻擊入侵具有更好的特征學習能力,獲得的隱層表達效果更好。馬氏距離差值項的引入,也較為顯著地增加了網絡攻擊入侵檢測的準確性。實驗表明了通過數據加噪與馬氏距離差值項的加入都可以較為顯著地提升異常檢測效果,兩者同時使用的異常檢測效果最佳。
本文改進機器學習中的深度自編碼器技術,結合網絡攻擊入侵數據集,對神經網絡的輸入數據加入正態分布的噪聲構成降噪自編碼器,改進現有的均方誤差函數,將馬氏距離差值項添加到損失函數中。實驗表明,改進后的自編碼器能夠更好地學習網絡攻擊入侵數據的關鍵特征,提高了神經網絡學習的魯棒性和穩定性,較原始自編碼器具有更好的綜合性能。本文在一定程度上為基于機器學習的網絡攻擊入侵檢測做出了貢獻。