劉克文,張賁,王宇飛
(1.中國電力科學研究院,北京市,100192;2.華北電網有限公司,北京市,100053;3.華北電力大學控制與計算機工程學院,北京市,102206)
隨著信息技術和互聯網的飛速發展,國家電網公司的信息化水平日益提高,信息系統也已滲透到整個公司的生產、經營、管理等各環節,并支撐了國家電網公司各項業務開展。但隨著公司網絡規模的擴大,網絡信息安全問題日益突顯,入侵檢測作為網絡信息安全的基礎性研究逐漸引起研究人員關注。入侵檢測是對入侵行為的檢測,入侵檢測系統通過收集網絡及計算機系統內所有關鍵節點的信息,檢查網絡或系統中是否存在違反安全策略行為及被攻擊跡象。因而設計高效、準確的入侵檢測模型,現實意義重大。
解決入侵檢測問題的思路一般是將入侵檢測問題抽象成一個復雜的多分類問題,通過構造分類器來實現對入侵檢測的判別。常用的入侵檢測算法有:核主成分分析(kernel principal component analysis,KPCA)結合前饋(back propagation,BP)神經網絡構造分類器[1];KPCA結合支持向量機(support vector machine,SVM)構造分類器[2-3];粒子群算法(particle swarm optimization,PSO)優化權重矩陣和閾值的BPNN構造分類器[4];主 成 分 分 析 (principal component analysis,PCA)、線性判別分析 (linear discriminant analysis,LDA)和 K-最近鄰居法 (knearest neighbor,KNN)構造分類器[5];PCA、KPCA等方法構造分類器[6]。上述常用入侵檢測算法中存在數據冗余高、分類精度低、運算時間長和迭代次數多等問題。為更好地解決上述問題,本文設計了一種基于復合分類器的入侵檢測模型。復合分類器由KPCA、BP神經網絡和量子遺傳算法(quantum genetic algorithm,QGA)組合而成。復合分類器通過對原始數據降維并優化分類器參數的方式完成大量樣本的訓練、分類模型生成,再使用分類模型對待測樣本做出準確分類,最后通過實驗證明了基于復合分類器的入侵檢測模型的有效性。
KPCA是一種高效的非線性特征選擇算法,適用于高維原始數據的主成分分析,即原始數據降維處理。KPCA改進自線性的PCA[7],KPCA的核心思想是將原n維歐氏空間Rn的數據通過核函數映射到Hilbert特征空間,在Hilbert空間作線性PCA。KPCA算法流程為:先引入從空間Rn到Hilbert空間的變換x=Φ(xi),并認為Φ(xi)已經中心化,計算Hilbert空間中各點的協方差矩陣C

式中:m代表Hilbert空間維數。
設C的特征值為λ及非零特征值對應的特征向量為υ,可證明υ一定處于由Φ(x1),…,Φ(xm)構成的空間中,則υ可表示為

此時原問題變為求解αi,則有

式中:K代表Φ(xi)和Φ(xj)的內積,Kij=<Φ(xi),Φ(xj)> 是 Gram 矩陣。令 λn<αn,αn>=1,即 λn正交化,計算各Φ(xi)在υ上的投影gi(x),其中gi(x)是對應于Φ(xi)的非線性主成分分量,

則g(x)=[g1(x),…,gn(x)]T為樣本的特征向量。比值 λ表示了分量gi(x)對樣本總體方差的貢獻度,最終選取若干個最大的特征值對應的特征向量υi構成實驗所需的特征子空間。
BP神經網絡是一種典型的前饋網絡,通過網絡結構正向傳遞計算結果、使用訓練函數反向修正網絡權重矩陣和閾值,完成樣本的訓練模型的構造,再使用構造好的訓練模型完成對待測樣本處理[8]。
下面幾個參數決定了BP神經網絡最終精度:隱含層數目、每層神經元個數、訓練函數、學習函數、傳遞函數、權重矩陣和閾值。其中,除權重矩陣和閾值以外的其他參數均根據實際問題設定,而權重矩陣和閾值一般選[0,1]之間隨機數[9]。
QGA是遺傳算法和量子計算相結合的算法[10]。與普通遺傳算法相比,QGA的特點是使用量子位編碼來表示染色體,并通過量子旋轉門和染色體交叉來完成種群進化,因而QGA種群規模更小,且收斂速度快,抗早熟能力強。
QGA中的染色體用量子位來描述,即隨機概率的方式。1個量子位既可以表示0或者1兩種狀態,又可以表示0、1之間的任意中間態。設有m個量子位,則可以有2m種狀態,所以QGA的種群規模遠小于普通遺傳算法(genetic algorithm,GA)。設a、b分別為狀態|0〉和|1〉的概率幅,在滿足|a|2+|b|2=1的情況下,則[0,1]之間任意量子狀態可表示為

即狀態Ψ為狀態|0〉和|1〉的疊加。
在QGA中進化過程是由量子門旋轉和染色體交叉共同作用完成。量子門公式(6)中θ是旋轉角,U是量子門旋轉矩陣,公式(7)是量子位更新公式,

公式(7)中Δθi的大小直接決定了算法收斂速度,Δθi取值太小算法收斂很慢,Δθi取值太大種群易早熟,通常 Δθi∈[0.001π,0.005π]。染色體交叉的作用是防止種群早熟,通常采用全干擾交叉操作[11]。
復合分類器由KPCA模塊、BP神經網絡模塊和QGA模塊組成。其中KPCA模塊負責原始樣本數據降維處理,QGA模塊負責向BP神經網絡傳遞訓練參數并計算適應度函數Fitness,由BP神經網絡模塊完成最后的數據訓練、分類,具體結構見圖1。

圖1 復合分類器結構Fig.1 Construction of hybrid classifier
2.2.1 KPCA 模塊設計
通常用于入侵檢測的原始數據均來自入侵檢測系統等網絡安全設備的日志,并且國家電網公司由于所屬各機構具體使用的網絡安全設備品牌、功能各異,因而需要對各子機構上報的日志做融合處理,即合并各類日志的不同數據字段。所以入侵檢測模型需要處理、分析的原始數據具有數據量大、維數高等特點,通常合并后的日志文件都以MB,甚至GB為存儲單位,并且日志中每條記錄的維數都有幾十維,甚至上百維。因而在針對入侵檢測問題設計復合分類器時,首要考慮的是對原始數據做降維處理,又因為每條記錄中不同維度之間常常是復雜的非線性關系,所以復合分類器使用KPCA做降維工具,具體選用Gauss徑向基函數作為KPCA核函數

2.2.2 BP 神經網絡模塊設計
復合分類器選用2層BP神經網絡。設原始IDS的n維數據經KPCA降維后得到m維新數據樣本,則在BP神經網絡中選用m維數據做為BP神經網絡的輸入數據,即BP神經網絡輸入層有m個神經元。又因為待求解問題為分類問題,所以BP神經網絡的輸出層是1個神經元。BP神經網絡的隱層神經元個數為

式中:m、m′分別是輸入層、輸出層神經元個數,d是[1,10]之間的隨機整數。BP神經網絡中傳遞函數均采用S型函數tansig。權重矩陣和閾值由QGA迭代給出。
2.2.3 適應度函數
設測試樣本的總體分類準確率為Θ,則PSO的適應度函數為

適應度函數的閾值為Fθ,當F(i)<Fθ時,迭代結束。Fθ=1.0152 時,Θ =0.985。
為充分證明本文基于復合分類器的入侵檢測模型的有效性,設計2組實驗分別就入侵檢測模型的準確率和泛化能力給予驗證。其中:實驗一主要為驗證本文入侵檢測模型在國家電網網絡安全告警中的實用性;實驗二主要為驗證本文入侵檢測模型的泛化能力,并且與當前常用入侵檢測算法進行性能橫向比較。
選用連續100天的網絡安全日志構成實驗樣本,其中每條樣本的檢測時間間隔為1 s,并且每條樣本由72維數據字段構成,其中2個特定字段分別定義了網絡攻擊大類和具體攻擊子類其余70個字段分別表示記錄的不同特征。其中日志共包含5大類告警,分別為“惡意軟件類”、“網絡攻擊類”、“信息破壞類”、“信息內容安全類”和“其他告警”等。連續100天的日志共有8226217條記錄,從中隨機抽取10%的原始數據822622條做實驗數據,并從實驗數據中隨機抽取70%的數據575835條做訓練樣本,其余30%的數據246787條做測試樣本,再隨機抽取10%的數據82262條用于KPCA降維,詳細樣本抽取情況如表1所示。

表1 實驗1樣本Tab.1 No.1 experimental samples
在確定實驗樣本后,需對原始實驗樣本做降維處理。對原始樣本記錄中除表示入侵分類的2個特殊字段以外的70維字段用KPCA做降維處理,KPCA核函數參數取10,得到70維特征對應的λi。取其中λi最大的前10項構成新數據樣本,每項的λi如表2所示,可以根據算出新樣本分量(x)對樣本總體方差的貢獻度大于85%。

表2 KPCA計算結果(實驗1)Tab.2 Results of KPCA algorithm for No.1 experiment
將KPCA降維后的訓練樣本送入BP神經網絡,得到訓練模型,訓練模型權重矩陣和閾值由QGA迭代得到,QGA最大迭代次數1500,BP神經網絡訓練次數10000,實驗結果見表3。設某一類樣本是正樣本,則其他類別樣本統稱為負樣本,可得漏報率(正樣本出錯個數/正樣本總數)和誤報率(負樣本出錯個數/負樣本總數)。
由表3可知,國家電網實驗樣本最終的分類正確率達到98.5002%,與入侵檢測模型設定的收斂閾值0.985非常接近,但對于小類別樣本的誤報率和漏報率偏高。其原因在于:(1)因為實驗樣本采集自真實公司網絡環境,因此數據壞點和噪聲不可避免;(2)使用KPCA降維雖然大大減少了實驗運算量,但也忽略了部分影響因素(略去的60維數據);(3)神經網絡對于小類別樣本的不敏感性也造成了較高的漏報率和誤報率。但從入侵檢測整體上衡量實驗一的結果,其入侵檢測模型可信度較高,能達到事先設定的期望值0.985。

表3 QGA&BPNN實驗結果(實驗1)Tab.3 Results of QGA & BPNN for No.1 experiment
選用 KDDCUP99數據集[12]做實驗數據,KDDCUP99數據集中將樣本數據分為Normal(正常)、DoS(拒絕服務)、R2L(遠程主機的未授權訪問)、U2R(未授權的本地超級用戶特權訪問)、Probe(端口掃描)等。因 KDDCUP99原始數據接近5000000條,為方便實驗本文在保持原始數據類別比例結構不變情況下,隨機抽取10%的原始數據494021條做實驗數據,并從實驗數據中隨機抽取70%的數據345815條做訓練樣本,其余30%的數據148206條做測試樣本,再隨機抽取10%的數據49405條用于KPCA降維,詳細樣本抽取情況如表4所示。

表4 實驗樣本(實驗2)Tab.4 No.2 experimental samples
在確定實驗樣本后,需對原始實驗樣本做數據結構分析處理,即降維處理。KDDCUP99原始數據有42維,其中前41維是樣本特征,最后1維是樣本的分類,因此對樣本前41維用KPCA做降維處理,KPCA核函數參數取80,得到41維特征對應的λi。其中前10維的λi也是41個λi中值最大的10項,如表5所示,其他31維的 λi取值范圍均在[9.51×10-8,2.65 ×10-4],所以取 λi最大的前10 項特征構成新樣本,根據算出新樣本分量對樣本總體方差的貢獻度大于96%。

表5 KPCA計算結果(實驗2)Tab.5 Results of KPCA algorithm for No.2 experiment
將KPCA降維后的訓練樣本送入BPNN,得到訓練模型,訓練模型權重矩陣和閾值由QGA迭代得到,QGA最大迭代次數2000,BPNN訓練次數15000。QGA的Fitness曲線見圖2。從圖2可知,在第400代左右適應度函數基本趨于穩定,最終在第810代收斂于Fθ,即總體分類正確率不小于0.985,實驗結果見表6。

圖2 適應度函數曲線Fig.2 Curve of fitness function

表6 QGA&BPNN實驗結果(實驗2)Tab.6 Results of QGA & BPNN for No.2 experiment
橫坐標為進化代數(0,100,200,),縱坐標為適應度函數,為進一步體現本文入侵檢測模型的算法優勢,現選取 KPCA 結合 BP 方法[1]、SVM 方法[2]、PSO結合BP方法[4]做橫向比較,結果見表7。

表7 實驗結果比較Tab.7 Comparison of experimental results
由表7可知,其他分類算法在準確度上并不理想,特別是FPR偏高。其原因為:文獻[1]使用未經參數優化的BPNN做分類器,因而不可避免神經網絡易陷于局部極小點、權重和閾值選取困難等固有弱點;文獻[2]沒有使用群智能優化算法為SVM尋參,因而造成訓練模型精度低;文獻[4]沒有對原始數據降維,所以算法分類時間遠高于其他分類算法,并且PSO的局部尋優能力不如QGA,因而誤差較大。
本文設計了一種由KPCA、BPNN和QGA 3種人工智能算法組合而成的入侵檢測模型,克服了原有入侵檢測算法中普遍存在的數據維數高、分類器參數選取困難、分類器準確率低等問題。相比于其他常見入侵檢測算法,本文的基于復合分類器的入侵檢測模型在分類準確率方面優勢明顯。又因本文實驗數據集隨機抽取自海量原始樣本,并且訓練樣本集和測試樣本集不存在交集,即完全獨立,從而保證了100%開集分類測試,所以復合分類器的泛化能力得到保證。最后通過實驗證明了復合分類器的有效性。
[1]劉完芳,黃生葉,常衛東.基于KPCA入侵檢測特征提取技術[J].微計算機信息,2007,13(9):81-83.
[2]Bao P Q,Yang M F.Intrusion detection based on KCPA and SVM[J].Computer Applications and Software,2006,23(2):125-127.
[3]Sun Z B,Sun M S.A Multi-classification intrusion detection system based on KPCA and SVM[J].Information Technology,2007,7(11):29-31.
[4] Lin Z M,Chen G L,Guo W L,et al.PSO-BPNN-based prediction of network security situation[C]//The 3rd International Conference on Innovative Computing Information and Control.Fuzhou,China:IEEE,2008:37-41.
[5] Zhang R X,Wang Y.Fusion of PCA and LDA for intrusion detection[J].Computer Technology and Development,2009,19(11):132-135.
[6]Gao H H,Yang H H,Wang X Y.PCA/KPCA feature extraction approach to SVM for anomaly detection[J].Journal of East China University of Science and Technology:Natural Science Edition,2006,32(3):321-326.
[7] Martinez A M,Kaka A C.PCA versus LDA[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2001,23(2):228-233.
[8] Bilski J,Rutkowski L.A fast training algorithm for neural networks[J].IEEE Trans on Circuits and System II:Analog and Digital Signal Processing,1998,45(6):749-753.
[9] Purucker M C.Neural network quarterbacking[J].IEEE Potentials,1996,15(3):9-15.
[10] Li B B,Wang L.A hybrid quantum-inspired genetic algorithm for multiobjective flow shop scheduling[J].IEEE Trans on Systems,Man,and Cybernetics,Part B:Cybernetics,2007,37(3):576-591.
[11] Narayanan A,Moore M.Quantum-inspired genetic algorithm[C]//Proc.of IEEE International Conference on Evolutionary Computation.Piscataway,USA:IEEE,1996:279-294.
[12] Hettich S,Bay S D.KDD cup 99 task description[EB/OL].http://kdd.ics.uci.edu/databases/kddcup 99/task.html.1999.