◎中國移動通信有限公司研究院 黃靜 張會娟 陳佳 何申
隨著物聯(lián)網(wǎng)技術不斷發(fā)展,萬物互聯(lián)時代已經(jīng)來臨[1]。然而,數(shù)以億計的物聯(lián)網(wǎng)設備接入網(wǎng)絡,不斷增長的數(shù)據(jù)維度和繁瑣的網(wǎng)絡交互行為,使得網(wǎng)絡環(huán)境日趨復雜,含有各種不確定性,這給維護網(wǎng)絡安全帶來了巨大的挑戰(zhàn)[2]。作為主動防御的第一步,入侵檢測已經(jīng)成為熱點課題[3]。
入侵檢測是對入侵行為的發(fā)覺,它通過收集和分析運行信息,從中發(fā)現(xiàn)網(wǎng)絡異常行為[4]。如Zaidi 等人基于統(tǒng)計分析技術,通過模擬攻擊類型的流氓節(jié)點,對網(wǎng)絡進行入侵檢測評估[5]。實驗結(jié)果表明,所提出的入侵檢測方法能夠有效地檢測DDOS 攻擊。Aldribi 等人使用在線多元統(tǒng)計變化分析來檢測異常網(wǎng)絡,利用實例的個體和相關行為來提高檢測能力[6]。閆等人提出一種基于特征匹配的計算機網(wǎng)絡入侵檢測系統(tǒng)多模式匹配算法,提高了系統(tǒng)的檢測能力[7]。然而,上述方法對已知的攻擊行為有效,難以檢測不確定和未知攻擊,自適應能力較差。
人工智能技術由于其強大的學習能力和自適應能力,已經(jīng)在入侵檢測方面得到廣泛應用[8]。例如,芶等人提出了一種基于隨機森林算法(Random Forest Algorithm,RFA)的入侵檢測模型,該模型能夠?qū)Υ罅髁抗暨M行分布式檢測[9]。另外,Devi 等人提出了一種改進型支持向量機(Enhanced Support Vector Machine,ESVM)識別入侵攻擊類型[10]。實驗結(jié)果表明,所提出ESVM 算法的準確性優(yōu)于傳統(tǒng)的SVM 算法。然而,上述方法中,輸入特征往往含有大量冗余特征,從而造成了嚴重的計算成本浪費。
為了解決輸入維度冗余,計算成本浪費問題,
Ahmad等人采用卡方特征選擇方法進行特征篩選。然后,基于 LPBoost 分類器建立了入侵檢測模型[11]。另外,高等人先采用自動編碼器降低輸入維度,然后基于SVM 分類技術來評估網(wǎng)絡狀態(tài)[12]。結(jié)果表明,上述方法有效減少了網(wǎng)絡計算負擔。然而,上述方法仍存在以下問題:
1、文本變量問題:樣本的文本變量每種狀況頻率有很大的差異,僅簡單的標記成整數(shù)值,忽略了其在數(shù)據(jù)集中的重要性,影響最終的特征篩選結(jié)果。
2、網(wǎng)絡環(huán)境不確定問題:在大規(guī)模異構復雜網(wǎng)絡中,一些不確定性問題是不可避免的,如網(wǎng)絡傳輸中的丟包和時延問題,或者因異構網(wǎng)絡環(huán)境所帶來的平臺差異性等不確定性對入侵檢測方法提出了巨大的挑戰(zhàn)。
3、學習速度慢問題:在上述所提方法中,如何避免算法陷入局部最小值,加快網(wǎng)絡學習速度,仍然是一個亟需解決的問題。
針對以上問題,文中提出了一種基于自適應模糊神經(jīng)網(wǎng)絡(Adaptive Fuzzy Neural Network,AFNN)的入侵檢測方法。首先,設計了一種協(xié)同特征選擇算法(Cooperate Feature Selection Algorithm,CFSA),從而更好的篩選入侵檢測相關的主要特征,避免了計算成本浪費問題;其次,提出一種AFNN,緩解了網(wǎng)絡環(huán)境中的不確定問題,提高了網(wǎng)絡檢測精度;最后,提出一種自適應反向傳播(Adaptive Back Propagate,ABP)算法,更新了AFNN 相關參數(shù),提高網(wǎng)絡學習性能。為了驗證所提方法的有效性,將該方法應用于KDDCup99入侵檢測數(shù)據(jù)庫,結(jié)果表明該入侵檢測方法具有更好的準確性和快速性。
為了降低數(shù)據(jù)樣本維度,減少計算量,首先對輸入特征變量進行篩選。但變量往往包含多種文本變量。因此,文中提出了CFSA,首先科學量化所有文本特征變量,評估出每個文本在數(shù)據(jù)集中的重要性,然后,對所有采集的特征變量進行篩選。
在所提的CFSA 算法中,首先采用TF-IDF,對文本特征變量矩陣A 進行處理。對給定第j個樣本單詞*的TF(*,j)計算公式為:
其中,k*,j 表示第j 個樣本單詞*出現(xiàn)的次數(shù)。n 表示第i個樣本表示數(shù)據(jù)中的單詞總數(shù)量。IDF 計算公式為:
其中,M 表示樣本總數(shù),mi表示所有樣本中出現(xiàn)單詞*的次數(shù)。單詞*的量化數(shù)值Ξ(*,j)表示為:
然后,基于PLS 方法,進行特征變量的篩選。對自變量P=[P1,P2,...,PN]和因變量Q=(q1,q2,…,qM)T進行標準化處理:
其中,n 表示自變量個數(shù),M 表示樣本總數(shù),Pj=[p1j,p2j,...,pMj],pij表示第i 個樣本的第j 個自變量值,表示第j個自變量的平均值,表示第j 個自變量的標準差,表示標準化后的第i 個樣本的第j 個自變量值,qi 表示第i 個因變量樣本,表示因變量的平均值,s 表示因變量的標準差,表示標準化后的第i 個因變量樣本。計算相關系數(shù)矩陣:
其中,d(0<d≤h+1)表示一個常數(shù),δi,和γi 表示擬合系數(shù),表示取h 個成分回歸建模時刪除樣本點d 后的擬合量,表示基于全部樣本點,取h 個成分回歸建模時所有樣本點d 后的擬合量。當提取過程結(jié)束。提取k 個主成分,取系數(shù)絕對值,按照大小排序,前k 個擬合系數(shù)對應的自變量,作為基于AFNN的入侵檢測模型的輸入變量。
綜上所述,文中所提CFSA 減少了文本數(shù)據(jù)對特征提取結(jié)果的影響,使最終的特征選擇結(jié)果更加可靠。
由于網(wǎng)絡環(huán)境的復雜性和不確定性,當前入侵檢測方法識別精度不高。因此,在本文中,改進傳統(tǒng)的FNN,通過引入容錯誤差值,提出了一種基于AFNN的入侵檢測方法,更加有效緩解了網(wǎng)絡環(huán)境的不確定性。如圖1所示,AFNN的拓補結(jié)構包括:輸入層、RBF 層、歸一化層、輸出層和分類層。
圖1 基于AFNN入侵檢測方法框架
1、輸入層:該層由k 個神經(jīng)元,其輸出為:
其中,k 表示輸入特征個數(shù)。
2、 RBF 層:該層由r 個神經(jīng)元組成,每個神經(jīng)元的輸出為:
其中,φj 是RBF 層第j 個神經(jīng)元的輸出,cj=[c1j,c2j,...,crj]為第j 個RBF 層神經(jīng)元的中心向量,cij 表示第i 個輸入神經(jīng)元對RBF 神經(jīng)第j 個元的中心值,σj 表示第j 個隱含神經(jīng)元的寬度。
3、歸一化層:該層神經(jīng)元個數(shù)為r,和RBF 層相同,并且每個神經(jīng)元的輸出為:
其中,μj 是歸一化層的第j 個神經(jīng)元的輸出。
4、輸出層:網(wǎng)絡狀態(tài)入侵檢測的輸出為:
其中,y 表示神經(jīng)元輸出,ω=[ω1,ω2,…,ωr]表示連接權值向量,ωj 表示歸一化層第j 個神經(jīng)元與輸出神經(jīng)元之間的連接權值。
5、分類層:判定入侵檢測類別:
文中采用BP 算法學習AFNN的學習參數(shù),包括:RBF層的中心向量c、寬度σ和輸出層的連接權值ω。然而,傳統(tǒng)的BP 算法容易陷入局部最小值,收斂速度慢的缺點。因此,為了有效更新AFNN 參數(shù),文中設計一種學習率的自適應策略,提出了一種ABP 算法,其學習過程為:
其中,η(t)表示學習率。在傳統(tǒng)BP 算法中,學習率是一個重要的參數(shù)。固定的學習率容易使算法陷入局部最小值,造成收斂速度緩慢。因此,在文中提出了一種學習率自適應策略:
定理一:當AFNN的學習參數(shù)使用公式(16)-(17)更新時,AFNN 收斂。
證明:FNN的誤差為:
定義李雅普諾夫函數(shù):
基于公式(16)-(17),李雅普諾夫的導數(shù)為:
其中,
因此,
證畢。
為了驗證所提檢測模型的性能,本文基于KDDCup99入侵檢測數(shù)據(jù)庫,實現(xiàn)入侵檢測識別。仿真環(huán)境為:MATLAB 2015b,CPU 為Intel Corei5-8265U,主頻1.80GHz,內(nèi)存為8GB,操作系統(tǒng)為Windows 10。
基于KDDCup99入侵檢測數(shù)據(jù)庫,采用CFAS 篩選出與入侵檢測類型相關的特征變量。KDDCup99 的輸入特征變量41 個,包括:9 個TCP 數(shù)據(jù)包連接屬性、13 個專家知識屬性和19 個時間窗口計算屬性。四種入侵類型包括:Dos、Probing、R2L 和U2R。選取3000 個樣本并且保證包含了所有入侵類型。該實驗獨立進行50 次,取50 次實驗結(jié)果的平均值作為最終結(jié)果。為了節(jié)約篇幅,文中給出每個特征變量的編號,具體意義參考文獻[13]。特征選擇結(jié)果如圖2所示。
圖2 CFAS特征篩選結(jié)果
文中基于AFNN 建立了入侵檢測模型,從而識別不同類型的入侵。為了驗證所提入侵檢測模型的性能,采用識別精度(Identification Accuracy)、誤檢率(False)和漏檢率(Miss)三個指標進行評估,具體公式如下:
其中,TIA表示識別精度,TF表示誤報概率,TM表示漏檢概率,NR表示正確的分類數(shù),N 表示樣本總數(shù),NF表示誤檢的樣本數(shù),NM表示漏檢的樣本數(shù)。
本實驗中,采用的入侵數(shù)據(jù)樣本總量為8000 個。5000個樣本用來訓練入侵檢測模型,3000 個樣本用來測試模型性能,每種入侵檢測類型的分布情況如表1所示。自適應BP算法中學習率中的常數(shù)α 設置為0.02,e為0.2。實驗結(jié)果如圖3-5所示。
圖3 表示測試輸出結(jié)果,圖4 表示所提入侵檢測模型的誤檢率和漏檢率,圖5 為不同的入侵類型的檢測精度。基于圖3-5 的結(jié)果,所設計的AFNN 入侵檢測模型能夠以一個良好的魯棒性能,很好地診斷不同的入侵類型。同時,為了評估所提入侵檢測模型性能,將其結(jié)果與其他算法進行比較:FNN,BP 網(wǎng)絡,PCA-SVM[11],AN-SVM[12],ISSDA[14],具體比較情況如表2所示。
圖3 測試分類結(jié)果
圖4 誤檢率和漏檢率
圖5 測試精度
由表2 可以看出,文中所提的基于AFNN的入侵檢測模型對多種入侵類型的精度分別為99.91%,98.93%,99.05%,93.10%,97.60%,高于其他算法。另外,所提入侵檢測模型的誤檢率和漏檢率在所有算法種是最低的?;谝陨戏治?,說明無論網(wǎng)絡環(huán)境是否存在不確定性和不一致性,基于AFNN的入侵檢測模型具有良好的識別性能。
表1.實驗樣本分布情況
同時,與AN-SVM 和PCA-SVM 比較,文中采用 CFSA進行文本特征的量化,評估出每個文本對數(shù)據(jù)集的重要性,從而提高了AFNN的分類性能。另外,在實驗中AFNN的訓練時間為45s,F(xiàn)NN的訓練時間為68s,對比二者的精度和訓練時間,說明所提的ABP 算法能夠加快AFNN的學習速度,有效提高網(wǎng)絡學習性能。
表2.不同算法識別性能比較
文中提出了一種基于AFNN的入侵檢測方法。在該方法中,采用CFSA 篩選出入侵檢測相關的主要特征,減少了人為主觀造成的偏差,從而更好的篩選出入侵檢測相關特征,使得最終的特征選擇結(jié)果更加可信;設計基于AFNN的入侵檢測方法,提高了模型的容錯能力和自適應能力,緩解網(wǎng)絡環(huán)境的不確定性,提高入侵檢測效果;提出ABP 算法,更新AFNN 相關參數(shù),加快了網(wǎng)絡學習速度,最后,基于 KDDCup99入侵檢測結(jié)果,證明了所提的入侵檢測方法具有更好性能。由于AFNN的結(jié)構調(diào)整需要人工大量的嘗試,因此在后續(xù)工作中,將進一步研究AFNN 結(jié)構的自組織,提高其泛化能力。