陳磊,胡廣朋
(江蘇科技大學計算機學院,鎮江 212003)
當今世界計算機信息技術飛速發展,互聯網已經深入我們生活的方方面面。在此背景下,網絡攻擊事件頻發,并且造成了巨大的損失。
近年來全球的網絡安全事件不斷增加。2017年爆發了3起勒索病毒事件,其中Wanna Decryptor影響最大,造成高達80億美元的損失[1]。此外還發生過多起數據泄露事件,比如Vault7數據泄露、MongoDB啟示錄、Equifax數據泄露等,2018年網絡掠奪攻擊越演越烈,英國航空公司、Newegg、Inbenta等紛紛報告了Magecart引人注目的黑客攻擊。2019年新型勒索軟件Big game hunting的攻擊激增,其專門攻擊大型目標。同年也發生多起因黑客攻擊造成的用戶數據泄露。2020年國內爆出中國電信泄露2萬條用戶信息。微博5.38億用戶數據在暗網出售等網絡安全事件。由此可見,互聯網面臨持續的安全威脅,迫切需要加強對網絡安全的防御來保護公民和政府的信息安全。
入侵檢測技術是一種要找出危害信息資源完整性、可用性和機密性的一組惡意行為的安全措施[2]。入侵檢測系統(IDS)能夠識別異常行為和流量,并且對未授權的行為進行監測和響應,所以它一直是網絡安全領域重要的研究內容。目前已經有一些IDS的研究成果。張展、趙英等人[3]提出一種基于CNN和RNN混合模型的入侵檢測,主要針對在入侵檢測中單一應用CNN和RNN無法同時學習時序和空間特征的問題。實驗表明,該方法相比單獨CNN模型或RNN模型在NSL_KDD數據集上有更高準確率。汪波、聶曉偉[4]為了解決網絡入侵的多分類問題,提出了用多目標數學規劃模型分析多類網絡攻擊行為的方法。劉敬浩、孫曉偉等人[5]針對網絡數據特征維度高的問題,提出了基于主成分分析和循環神經網絡的入侵檢測方法PCA-RNN。實驗表明該方法要優于單獨使用深度學習方法和淺層學習的分類模型。王振東、劉堯迪等人[6]針對BP神經網絡在入侵檢測過程中存在初始值隨機性較大以及容易陷入局部最優問題,提出一種改進灰狼算法優化BP神經網絡的入侵檢測模型(IGWO-BP)。該模型在NSLKDD和UNSW-NB15數據集上取得了較優的檢測結果。
隱馬爾科夫模型是由馬爾科夫鏈發展而來,因為現實中的問題往往比馬爾科夫鏈描述的更加復雜,觀測變量不是和狀態一一對應的,每兩個狀態之間的轉移都存在概率,這個概率可以利用前面的狀態推算出來,這個模型由兩個部分構成,馬爾科夫鏈和一般隨機過程,馬爾科夫鏈的核心是狀態間的相互轉移,另一個是觀測變量與狀態的對應關系。
隱馬爾科夫模型可描述

其中Ωx是隱含狀態的有限集合,Ωo是觀測值的有限集合,π是初始概率分布,A是狀態轉移矩陣,B是發射矩陣。
隱馬爾科夫模型的工程實踐主要是解決三個基本問題,即評估問題、解碼問題和學習問題。解決對應問題的算法分別是forward-backward算法、Viterbi算法和Baum-Welch算法。
隱馬爾科夫模型具有算法成熟、效率較高和訓練簡單的優點。它應用于入侵檢測能夠擁有較高的檢測率和較低的誤報率。
解決隱馬爾科夫模型學習問題的Baum-Welch算法是利用逐次迭代近似極大似然函數的下界實現的,本身是一種梯度下降的優化算法,所以在訓練時極有可能陷入局部最小,造成結果不理想。
麻雀搜索算法(SSA)[7]是根據麻雀覓食并躲避捕食者而提出的新型群體智能算法。根據文獻[8]對各新型群智能算法的對比結果,該算具有尋優能力強、收斂速度快的優點。
在麻雀搜尋食物的過程中,群體由種群比例因子w分為發現者和加入者。其中發現者擁有較高的能源儲備,在種群中負責發現食物,為所有的加入者提供覓食的方向。當發現捕食者,發現者會去其它安全區域。加入者跟隨一個發現者覓食。發現者和加入者的身份是動態變化的,它們的比例不變。
這種策略的數學模型描述如下:
n只麻雀在d維空間中的表示為:

所有麻雀的適應度值表示為:

具有較好適應度值的發現者會優先獲得食物,并且為加入者提供覓食方向,發現者相比加入者有更大的覓食范圍。每次迭代發現者的位置更新如下:

其中,是指在第t代第j維時第i只麻雀的位置,α是(0,1]的均勻隨機數,T為最大迭代次數,Q為一個標準正態隨機數,L是一個元素全為1的d維列向量,R2為[0,1]的均為隨機數表示警報值,ST為警戒閾值,取值范圍為[0.5,1.0]。當R2<ST時,暫時沒有危險,可以廣泛搜索。反之則需要飛到其它安全區域覓食。
加入者通過監視和追隨發現者來獲得食物,它的更新方式如下:

其中是指第t代全局最差位置,是第t+1代生產者的最佳位置,A是元素隨機賦值1或-1的d維行向量,其中A+的計算如下:

在更新過程中,如果意識到危險的麻雀占總數的10%到20%。那么全體麻雀位置影響如下:

其中是第t代的全局最優位置,β是步長控制參數,服從均值為0,方差為1的高斯分布,K是[-1,1]的隨機數,f i是當前麻雀的適應度值。f g是當前全局最佳,f w是當前全局最差。ε是一個接近0的常數,以防止分母為0。
具體算法流程如圖1所示。

圖1 麻雀搜索算法流程
隱馬爾科夫模型的學習問題是基于HMM的入侵檢測應用的關鍵。解決隱馬爾科夫模型學習問題的經典算法是Baum-Welch算法,通常訓練模型是選取一組隨機的參數,選取不同的隨機初始化參數進行訓練得到的模型往往有較大差異,也就是說不同的初始化參數會對檢測結果有較大的影響。該算法是一種特殊的EM算法,只能保證收斂到局部最大值點,所以要盡量使訓練的結果逼近全局極大值,以使得模型的檢測結果更精確。
由于麻雀搜索算法的全局尋優能力較好,它可以使用一組全局搜索,而不是基于隨機選擇HMM參數的單點搜索,經過多次迭代得到更好的初始參數。
采用麻雀搜索算法優化隱馬爾科夫模型的入侵檢測方法主要包括三個部分,即初始化參數選取、模型訓練和入侵識別。第一步采用麻雀搜索算法選取模型的初始參數,第二步采用正常的系統調用序列使用Baum-Welch算法訓練模型,第三步使用前向算法計算正常的系統調用序列在正常情況下發生的概率,以此來作為閾值K確定的依據。第四步將待測序列使用前向算法計算在正常情況下發生的概率,將得到的結果與確定的閾值比較來判斷是否發生入侵。

圖2 SSA-HMM入侵檢測框架
本文采用的實驗數據在Forrest研究小組研究入侵檢測時使用。實驗數據中的一個行為由進程從開始執行到結束的系統調用序列的若干數據對組成。
實驗參數:
(1)種群大小為50;
(2)最大迭代次數為100;
(3)發現者安全閾值ST=0.8;
(4)發現者比例占種群數量的20%;
(5)意識到危險的麻雀占種群總數的10%;
(6)系統調用短序列設置為15;
實驗結果:
正常系統調用序列相關實驗數據如表1所示。

表1 正常系統調用序列
異常系統調用序列相關實驗數據如表2所示。

表2 異常系統調用序列
由上述實驗結果能夠看出SSA-HMM相比HMM在正常系統調用序列中P(O|λ)的值增大了,在異常系統調用中P(O|λ)的值減小了,這使得在SSA-HMM下正常系統調用和異常系統調用的P(O|λ)的差異擴大了。這使得SSA-HMM能夠更加精確分辨系統異常行為。
與其他入侵檢測方法比較如表3所示。

表3 方法比較
其中滑動窗口統一設置為6;

由實驗結果可知SSA-HMM入侵檢測方法相比其它幾種方法提高了檢測率,也減小了誤檢率。
本文提出了一種麻雀搜索算法結合隱馬爾科夫模型的入侵檢測方法,針對隱馬爾科夫模型中的鮑姆—韋爾奇算法訓練模型參數時易陷入局部最優解的問題,利用麻雀搜索算法優化隱馬爾科夫模型的初始化參數,獲得相對較優的隱馬爾科夫模型從而提高識別的準確率。該方法還存在下列兩個問題:首先是滑動窗口的選擇問題。滑動窗口增大雖然會提高識別的準確度但是會導致計算量過高性能不佳,所以要解決二者的平衡問題。其次是檢測的的實時性問題。很多研究都是基于離線檢測,實時檢測的研究很有必要。