張 堯,李子森
(廣東電網有限責任公司廣州供電局 項目管理中心,廣州510000)
隨著現代通信、計算、網絡和控制技術的發展,信息技術運用領域的不斷開拓,工業化和信息化的融合已經成為一種發展的必然趨勢。作為標志性的產物,網絡化的工業控制系統已經得到了世界各國的重視,尤其是在“工業4.0”的帶領下,已經成為未來國民經濟和社會發展的戰略性規劃之一。變電站內各種工業嵌入式設備越來越多地采用通用協議、通用硬件平臺和通用軟件,并且全面實現數字化和網絡化。然而,隨著網絡化、信息化的發展逐漸打破了原始工業控制系統固有的封閉性,信息安全問題也日益暴露出來。面對這些威脅,必須針對網絡化的工業控制系統設計一套完整的、行之有效的對應策略來保護系統的安全。
一般主要采用有效性、適應性和可擴展性3 個指標來對一個入侵檢測系統進行評估[1]。入侵檢測技術仍處于快速發展階段,還有很多地方可以改進。由于方法、技術的單一性,限制了目前商用入侵檢測系統性能的進一步提高。在理論研究中,雖然已提出了多種多樣的檢測方法,但一個全面、指導性的理論框架尚未構建,在入侵檢測領域還有很多工作需要探索。
本文將基于特征選擇的輕量級入侵檢測技術和基于數據挖掘的分類算法相結合。在實際意義方面,針對智能電網系統將2 種技術結合構建一種新的入侵檢測模型,在使入侵檢測系統的正確性有一定保證的基礎上,加快檢測的速度,由此提高IDS實時性,進而提高入侵檢測系統性能;在理論意義方面,結合兩種不同的入侵檢測算法,構建一個新的入侵檢測模型。
輕量級一方面指建立的入侵檢測模型結構簡單明了、易于理解,另一方面指IDS 處理數據的速度快、實時性高,主要采用特征選擇算法實現。基于分類指主要采用分類算法構建分類器,對待測數據進行檢測分類。
入侵檢測系統(intrusion detection system,IDS)是由一系列相互配合的硬件和軟件組成的系統,實現入侵檢測的功能,對發生的入侵行為及時察覺。CIFD 模型是在1997年提出的標準入侵檢測模型[2],對入侵檢測系統的標準語言和組件間的通信協議進行了定義。該模型用事件表示IDS 所需要檢測的數據,并將一個完整的入侵檢測系統按功能分為事件產生器、事件分析器、事件分析庫和響應單元這4個組件,如圖1所示。

圖1 CIFD 模型Fig.1 CIFD model
本文提出的檢測方法為當數據特征值較少時,直接采用分類算法構建分類器對待測數據進行分類;當數據特征值較多時,先采用特征選擇算法構建最優特征子集,再使用最優特征子集訓練分類器后,對待測數據分類。即結合特征選擇算法和分類算法,并由此構建一個新的入侵檢測模型。
1.2.1 特征選擇算法
特征選擇[3]的目的是在盡量保證分類精度的前提下,降低特征空間的維數,以此加快對數據的處理速度。在與其他分類器配合時,過濾器模式的信息增益特征選擇算法具有較少的誤報率,表現出良好的性能。本文選擇過濾器模式下基于信息增益的特征選擇算法。
1.2.2 分類算法
基于對各分類算法優缺點進行分析,本次模型選用易于理解且復雜度小的決策樹算法。ID3 算法的優勢在于其理論清晰易懂,使用的方法簡單,容易學習,且分類的速度快。
本文提出的基于分類的輕量級入侵檢測系統框架如圖2所示。

圖2 入侵檢測系統框架Fig.2 Intrusion detection system framework
模型主要可劃分為4 個部分,由信息源、數據采集模塊組成事件發生器,由數據預處理模塊、判斷模塊、特征選擇模塊和分類器模塊組成事件分析器,由日志記錄、報警和響應模塊組成響應單元,事件數據庫單獨為一部分。
來自信息源的數據以數據包的形式被數據采集模塊接收,經處理后形成審計記錄到達數據預處理模塊,隨后對預處理后的數據判斷,若特征值低于閾值,則直接進入分類器分類;若特征值高于閾值,則進入特征選擇模塊處理后,再進入分類器。經分類器判斷為入侵行為的進入響應模塊,發出警報并進行日志記錄,最后將入侵事件記錄在事件數據庫。
1.4.1 數據采集
本文設計的入侵檢測模型信息源為網絡數據,因此數據采集模塊主要功能為從網卡獲取數據,并將亂序的TCP 連接進行重組。本文采用WinPcap 方式實現數據包捕獲,首先將網卡模式調成混雜模式,然后通過設置BPF(伯克利包過濾器)內核中的參數,設置過濾數據的規則。再設置系統的緩沖區大小,并將數據包對象分配在里面,實現捕獲數據包功能。在數據包充滿系統緩沖區后,將其復制到用戶緩沖區。
1.4.2 數據預處理
數據預處理的目的是將由數據采集模塊采集的原始數據格式轉換成C4.5 算法所能識別并進行處理的格式,之后的處理主要包括對數據連續特征屬性的離散化和對特征值的歸一化。
1.4.3 特征選擇
本模型選用的特征選擇算法是過濾器模式下的基于信息增益的算法,目的是選出具有最高信息增益的特征,即該特征在數據集中有最高的區分度,有關特征選擇的詳細公式推導如下所述。
計算一個特征A的信息增益的公式如下:

式中:I(s1,s2,…,sn)是由數據的熵確定的,其值如式(2)所示:

式中:P(Ci)表示某一個樣本屬于Ci的概率;n表示n個類別;si是Ci類別的數據數量;s表示總的樣本數量。

若此時假設特征A有v個不同的值,則特征A可以對總樣本進行劃分,共v個子集s1~sv,每一個子集包含總樣本中特征A的值為相應腳標的記錄值,(s1j+s2j+…+snj)/S表示子集sJ的權值。

式中:Pij表示子集Si中的樣本屬于Ci類別的概率。
通過式(1)~式(4),可以計算出特征A的信息增益,由此可以計算所有特征的信息增益,進而在所有的特征中選擇信息增益值最高的特征構建最優子集。
1.4.4 分類器
分類器模塊的主要功能是采用經過處理的訓練數據對分類算法進行訓練,構建一個分類器,再將經處理后的測試數據送入分類器中進行分類,判斷是否發生入侵,最后將結果送入響應模塊。
經過特征選擇后,再由ID3 構建決策樹。決策樹算法和特征選擇算法都有賴于信息增益的大小,為了加快計算速度,可以做相應改進,公式推導如下:
由數學知識,當x值很小時,ln(1+x)≈x,由此可得到式(5):

同時,log2Pi=lnPi/ln2,結合式(4)可得式(6):

比較式(6)前后,可以看出計算復雜度已大大減小,計算速度必然加快。
1.4.5 響應器
待檢測數據在分類器中進行分類后,將結果送入響應器,若為入侵行為,則發出警報通知系統管理員,同時可主動采取相應措施,如與防火墻實現聯動、與安全管理平臺或其安全設備進行互聯。
當IDS 檢測到異常行為后,響應模塊在規則中進行添加,使防火墻能對攻擊源和攻擊目標(包括IP、端口和服務)及時封堵,從而達到對計算機網絡的保護。在此過程中,將所檢測的異常行為具體信息和添加的規則都寫入事件日志,報告給系統管理員。
2.1.1 實驗條件
本次實驗所用的實驗數據均來自KDD 99[4],該數據集包含超過500 萬條連接記錄。每條連接記錄有41 個屬性值,其中34 個屬性為連續值,7 個為離散值。每條記錄都有標簽,即正常或入侵,共用4 種入侵方式,即DOS 攻擊、R2L 遠程攻擊、U2R 提權攻擊和PROBE 探測攻擊。
實驗時采用KDD 99 數據集的訓練數據進行訓練,為避免偶然性,測試數據集包含的數據量需比較大。因此訓練數據集包含100000 條數據,取與訓練數據不同的60000 條數據用作測試數據。
本次實驗在WEKA[5](懷卡托智能分析環境)開源平臺上完成。模型采用基于信息增益的特征選擇算法和ID3 決策樹分類算法。ID3 分類算法已較為成熟,現有的開發工具很多都已預開發該函數,可以在程序函數庫中直接調用。實驗環境如表1所示。
表1 實驗環境
Tab.1 Experiment environment

軟硬件條件參數操作系統Windows內存512 M處理器1.73 GHz Intel Core i7編程環境VC++ 6.0
2.1.2 評價標準
本文綜合基于特征選擇的輕量級的入侵檢測系統性能、以及決策樹算法性能兩者的性能評價指標,選取建模時間、準確性和誤報率三者作為本次實驗模型的評價指標,準確率即檢測率,誤報率指被錯誤判斷為攻擊的正常攻擊數目占總的正常樣本數量的比值。
2.1.3 實驗步驟
(1)下載KDD 99 數據包,解壓縮后隨機選取數據構建2 個數據集X和C,其中X數據集包含100000 條數據,為訓練數據集;C數據集包含60000條數據,為測試數據集。
(2)對X內的數據進行預處理,經過連續屬性離散化和歸一化處理后,對此時的數據集X進行復制操作,結果為X1與X2。
(3)將X1送入本次提出的入侵檢測模型的事件分析模塊,經特征選擇后由ID3 算法構建分類器F1;將X2直接送入分類器模塊,經訓練構建分類器F2。
(4)將測試數據集C重復步驟2 操作,此時得到數據集C1和C2,再分別送入分類器F1和F2,進行分類。
(5)記錄實驗數據并進行分析,得出結論。
經過基于信息增益的特征選擇后,各入侵類型的特征選擇的結果如表2所示。

表2 特征選擇結果Tab.2 Feature selection results
從結果可以看出,經過特征選擇模塊的處理后,4 種入侵方式的特征值都有明顯減少,即數據集的特征數減少。留下的特征信息增益都比較大,包含數據最多的信息。
分類器F1和F2平均訓練時間如表3所示。F1是經過特征選擇后采用ID3 算法構建的分類器,F2是用訓練數據全特征經ID3 算法訓練后形成的分類器。比較兩者的平均訓練時間,可以明顯看到F1的訓練時間低于F2分類器。

表3 平均訓練時間Tab.3 Mean training time
對待測數據進行分類后,本次建立的入侵檢測模型對KDD 99 數據集的分類準確率如表4所示。從結果可以看出,分類器F1的分類準確率高于分類器F2,即本次提出的基于分類的輕量級入侵檢測方法構建的入侵檢測模型較傳統IDS 的檢測正確率有明顯提升,可以改善入侵檢測系統的性能。

表4 對各攻擊的分類準確率Tab.4 Classification accuracy of each attack
同時,對DOS 和NORMAL 類型的檢出率明顯高于其他類型,這是由于KDD 99 數據集中包含的數據分布極不均勻,接近80%是DOS 攻擊類型,NORMAL 類型占比也在19%以上,剩下極小部分才是另外3 種類型。當訓練數據集中某一類型數據數量較少時,訓練的分類器無法很好地對其進行識別,造成分類器F1和分類器F2對U2R 和R2L 的檢測正確率低。
本文將2 種已知入侵檢測算法有機結合,提出了一種新的入侵檢測模型,進而提高IDS 的性能。具體而言,將特征選擇算法與分類算法結合,能有效提高入侵檢測系統的檢測速度。在對4 種攻擊類型的檢測中,檢測準確率與攻擊類型數量所占比例成正比。沒有任何一種算法是完全優于其他算法的,因此將不同的算法應用于入侵檢測的適當步驟將有效提高入侵檢測系統的性能,多種技術的聯合將大大提高IDS 的性能。
未來智能電網系統將進一步網絡化,及時應對網絡攻擊的威脅顯得更加急迫,將催生更多準確性和實時性高的IDS;入侵檢測的未來發展方向也將是多技術的聯合應用,從而更好地保護智能電網系統和網絡的安全,降低網絡攻擊帶來的損失。