◎中國移動通信有限公司研究院 黃靜 張會娟 陳佳 何申
隨著物聯網技術不斷發展,萬物互聯時代已經來臨[1]。然而,數以億計的物聯網設備接入網絡,不斷增長的數據維度和繁瑣的網絡交互行為,使得網絡環境日趨復雜,含有各種不確定性,這給維護網絡安全帶來了巨大的挑戰[2]。作為主動防御的第一步,入侵檢測已經成為熱點課題[3]。
入侵檢測是對入侵行為的發覺,它通過收集和分析運行信息,從中發現網絡異常行為[4]。如Zaidi 等人基于統計分析技術,通過模擬攻擊類型的流氓節點,對網絡進行入侵檢測評估[5]。實驗結果表明,所提出的入侵檢測方法能夠有效地檢測DDOS 攻擊。Aldribi 等人使用在線多元統計變化分析來檢測異常網絡,利用實例的個體和相關行為來提高檢測能力[6]。閆等人提出一種基于特征匹配的計算機網絡入侵檢測系統多模式匹配算法,提高了系統的檢測能力[7]。然而,上述方法對已知的攻擊行為有效,難以檢測不確定和未知攻擊,自適應能力較差。
人工智能技術由于其強大的學習能力和自適應能力,已經在入侵檢測方面得到廣泛應用[8]。例如,芶等人提出了一種基于隨機森林算法(Random Forest Algorithm,RFA)的入侵檢測模型,該模型能夠對大流量攻擊進行分布式檢測[9]。另外,Devi 等人提出了一種改進型支持向量機(Enhanced Support Vector Machine,ESVM)識別入侵攻擊類型[10]。實驗結果表明,所提出ESVM 算法的準確性優于傳統的SVM 算法。然而,上述方法中,輸入特征往往含有大量冗余特征,從而造成了嚴重的計算成本浪費。
為了解決輸入維度冗余,計算成本浪費問題,
Ahmad等人采用卡方特征選擇方法進行特征篩選。然后,基于 LPBoost 分類器建立了入侵檢測模型[11]。另外,高等人先采用自動編碼器降低輸入維度,然后基于SVM 分類技術來評估網絡狀態[12]。結果表明,上述方法有效減少了網絡計算負擔。然而,上述方法仍存在以下問題:
1、文本變量問題:樣本的文本變量每種狀況頻率有很大的差異,僅簡單的標記成整數值,忽略了其在數據集中的重要性,影響最終的特征篩選結果。
2、網絡環境不確定問題:在大規模異構復雜網絡中,一些不確定性問題是不可避免的,如網絡傳輸中的丟包和時延問題,或者因異構網絡環境所帶來的平臺差異性等不確定性對入侵檢測方法提出了巨大的挑戰。
3、學習速度慢問題:在上述所提方法中,如何避免算法陷入局部最小值,加快網絡學習速度,仍然是一個亟需解決的問題。
針對以上問題,文中提出了一種基于自適應模糊神經網絡(Adaptive Fuzzy Neural Network,AFNN)的入侵檢測方法。首先,設計了一種協同特征選擇算法(Cooperate Feature Selection Algorithm,CFSA),從而更好的篩選入侵檢測相關的主要特征,避免了計算成本浪費問題;其次,提出一種AFNN,緩解了網絡環境中的不確定問題,提高了網絡檢測精度;最后,提出一種自適應反向傳播(Adaptive Back Propagate,ABP)算法,更新了AFNN 相關參數,提高網絡學習性能。為了驗證所提方法的有效性,將該方法應用于KDDCup99入侵檢測數據庫,結果表明該入侵檢測方法具有更好的準確性和快速性。
為了降低數據樣本維度,減少計算量,首先對輸入特征變量進行篩選。但變量往往包含多種文本變量。因此,文中提出了CFSA,首先科學量化所有文本特征變量,評估出每個文本在數據集中的重要性,然后,對所有采集的特征變量進行篩選。
在所提的CFSA 算法中,首先采用TF-IDF,對文本特征變量矩陣A 進行處理。對給定第j個樣本單詞*的TF(*,j)計算公式為:

其中,k*,j 表示第j 個樣本單詞*出現的次數。n 表示第i個樣本表示數據中的單詞總數量。IDF 計算公式為:

其中,M 表示樣本總數,mi表示所有樣本中出現單詞*的次數。單詞*的量化數值Ξ(*,j)表示為:

然后,基于PLS 方法,進行特征變量的篩選。對自變量P=[P1,P2,...,PN]和因變量Q=(q1,q2,…,qM)T進行標準化處理:

其中,n 表示自變量個數,M 表示樣本總數,Pj=[p1j,p2j,...,pMj],pij表示第i 個樣本的第j 個自變量值,表示第j個自變量的平均值,表示第j 個自變量的標準差,表示標準化后的第i 個樣本的第j 個自變量值,qi 表示第i 個因變量樣本,表示因變量的平均值,s 表示因變量的標準差,表示標準化后的第i 個因變量樣本。計算相關系數矩陣:


其中,d(0<d≤h+1)表示一個常數,δi,和γi 表示擬合系數,表示取h 個成分回歸建模時刪除樣本點d 后的擬合量,表示基于全部樣本點,取h 個成分回歸建模時所有樣本點d 后的擬合量。當提取過程結束。提取k 個主成分,取系數絕對值,按照大小排序,前k 個擬合系數對應的自變量,作為基于AFNN的入侵檢測模型的輸入變量。
綜上所述,文中所提CFSA 減少了文本數據對特征提取結果的影響,使最終的特征選擇結果更加可靠。
由于網絡環境的復雜性和不確定性,當前入侵檢測方法識別精度不高。因此,在本文中,改進傳統的FNN,通過引入容錯誤差值,提出了一種基于AFNN的入侵檢測方法,更加有效緩解了網絡環境的不確定性。如圖1所示,AFNN的拓補結構包括:輸入層、RBF 層、歸一化層、輸出層和分類層。

圖1 基于AFNN入侵檢測方法框架
1、輸入層:該層由k 個神經元,其輸出為:

其中,k 表示輸入特征個數。
2、 RBF 層:該層由r 個神經元組成,每個神經元的輸出為:

其中,φj 是RBF 層第j 個神經元的輸出,cj=[c1j,c2j,...,crj]為第j 個RBF 層神經元的中心向量,cij 表示第i 個輸入神經元對RBF 神經第j 個元的中心值,σj 表示第j 個隱含神經元的寬度。
3、歸一化層:該層神經元個數為r,和RBF 層相同,并且每個神經元的輸出為:

其中,μj 是歸一化層的第j 個神經元的輸出。
4、輸出層:網絡狀態入侵檢測的輸出為:

其中,y 表示神經元輸出,ω=[ω1,ω2,…,ωr]表示連接權值向量,ωj 表示歸一化層第j 個神經元與輸出神經元之間的連接權值。
5、分類層:判定入侵檢測類別:


文中采用BP 算法學習AFNN的學習參數,包括:RBF層的中心向量c、寬度σ和輸出層的連接權值ω。然而,傳統的BP 算法容易陷入局部最小值,收斂速度慢的缺點。因此,為了有效更新AFNN 參數,文中設計一種學習率的自適應策略,提出了一種ABP 算法,其學習過程為:

其中,η(t)表示學習率。在傳統BP 算法中,學習率是一個重要的參數。固定的學習率容易使算法陷入局部最小值,造成收斂速度緩慢。因此,在文中提出了一種學習率自適應策略:

定理一:當AFNN的學習參數使用公式(16)-(17)更新時,AFNN 收斂。
證明:FNN的誤差為:

定義李雅普諾夫函數:

基于公式(16)-(17),李雅普諾夫的導數為:

其中,

因此,

證畢。
為了驗證所提檢測模型的性能,本文基于KDDCup99入侵檢測數據庫,實現入侵檢測識別。仿真環境為:MATLAB 2015b,CPU 為Intel Corei5-8265U,主頻1.80GHz,內存為8GB,操作系統為Windows 10。
基于KDDCup99入侵檢測數據庫,采用CFAS 篩選出與入侵檢測類型相關的特征變量。KDDCup99 的輸入特征變量41 個,包括:9 個TCP 數據包連接屬性、13 個專家知識屬性和19 個時間窗口計算屬性。四種入侵類型包括:Dos、Probing、R2L 和U2R。選取3000 個樣本并且保證包含了所有入侵類型。該實驗獨立進行50 次,取50 次實驗結果的平均值作為最終結果。為了節約篇幅,文中給出每個特征變量的編號,具體意義參考文獻[13]。特征選擇結果如圖2所示。

圖2 CFAS特征篩選結果
文中基于AFNN 建立了入侵檢測模型,從而識別不同類型的入侵。為了驗證所提入侵檢測模型的性能,采用識別精度(Identification Accuracy)、誤檢率(False)和漏檢率(Miss)三個指標進行評估,具體公式如下:

其中,TIA表示識別精度,TF表示誤報概率,TM表示漏檢概率,NR表示正確的分類數,N 表示樣本總數,NF表示誤檢的樣本數,NM表示漏檢的樣本數。
本實驗中,采用的入侵數據樣本總量為8000 個。5000個樣本用來訓練入侵檢測模型,3000 個樣本用來測試模型性能,每種入侵檢測類型的分布情況如表1所示。自適應BP算法中學習率中的常數α 設置為0.02,e為0.2。實驗結果如圖3-5所示。
圖3 表示測試輸出結果,圖4 表示所提入侵檢測模型的誤檢率和漏檢率,圖5 為不同的入侵類型的檢測精度。基于圖3-5 的結果,所設計的AFNN 入侵檢測模型能夠以一個良好的魯棒性能,很好地診斷不同的入侵類型。同時,為了評估所提入侵檢測模型性能,將其結果與其他算法進行比較:FNN,BP 網絡,PCA-SVM[11],AN-SVM[12],ISSDA[14],具體比較情況如表2所示。

圖3 測試分類結果

圖4 誤檢率和漏檢率

圖5 測試精度
由表2 可以看出,文中所提的基于AFNN的入侵檢測模型對多種入侵類型的精度分別為99.91%,98.93%,99.05%,93.10%,97.60%,高于其他算法。另外,所提入侵檢測模型的誤檢率和漏檢率在所有算法種是最低的?;谝陨戏治?,說明無論網絡環境是否存在不確定性和不一致性,基于AFNN的入侵檢測模型具有良好的識別性能。

表1.實驗樣本分布情況
同時,與AN-SVM 和PCA-SVM 比較,文中采用 CFSA進行文本特征的量化,評估出每個文本對數據集的重要性,從而提高了AFNN的分類性能。另外,在實驗中AFNN的訓練時間為45s,FNN的訓練時間為68s,對比二者的精度和訓練時間,說明所提的ABP 算法能夠加快AFNN的學習速度,有效提高網絡學習性能。

表2.不同算法識別性能比較
文中提出了一種基于AFNN的入侵檢測方法。在該方法中,采用CFSA 篩選出入侵檢測相關的主要特征,減少了人為主觀造成的偏差,從而更好的篩選出入侵檢測相關特征,使得最終的特征選擇結果更加可信;設計基于AFNN的入侵檢測方法,提高了模型的容錯能力和自適應能力,緩解網絡環境的不確定性,提高入侵檢測效果;提出ABP 算法,更新AFNN 相關參數,加快了網絡學習速度,最后,基于 KDDCup99入侵檢測結果,證明了所提的入侵檢測方法具有更好性能。由于AFNN的結構調整需要人工大量的嘗試,因此在后續工作中,將進一步研究AFNN 結構的自組織,提高其泛化能力。