張益兵
(中國電力財務有限公司,北京 100005)
智能電力系統的迅速發展,使其所處的網絡環境、攻擊方式也日趨復雜。當前,電力系統終端安全防護機制存在著較大缺陷。對電力系統的智能配電終端進行入侵檢測,可以及時有效發現與處置電網攻擊,從而改變電網被動防御狀況,降低用電安全風險,減少經濟損失。為了確保電網的安全,需要快速、準確地分析入侵行為。
文獻[1]提出了基于二次決策的入侵檢測模型,該模型結合了深度堆棧自動編碼器和神經網絡,對入侵行為進行自動學習。使用自動編碼器對特征壓縮處理后,加入區分異常數據的第二階段訓練過程中。結合神經網絡進行異常數據訓練,完成入侵檢測。文獻[2]提出了一種基于深度序列的檢測方法,該方法通過構建深度網絡模型學習歷史數據,并對其進行降維處理。利用學習監督機制約束入侵數據學習過程,根據實際情況在線更新輸出學習結果。目前,大多數入侵行為都是通過攻擊特權進入程序來破壞系統安全,該過程在時間和空間上都處于穩定狀態。使用上述兩種方法無法捕捉全部入侵行為數據,為此,結合機器學習與大數據技術進行入侵檢測。
在電力系統中使用機器學習與大數據技術相結合的方式來檢測入侵行為,構建的模型如圖1 所示。

圖1 入侵行為分析模型
由圖1 可知,電力系統數據來源多樣且格式復雜,只有對這些數據進行預處理得到統一格式后,才能交付給其他模塊[3]。在多源環境下,需要按照數據重要程度分析不同數據之間的關聯屬性,該過程容易受到海量數據影響,花費大量時間。因此,使用大數據技術來約減數據[4]。
數據約減處理是通過插入、刪除和替換操作,將屬性集轉換為目標字符串的基本操作。當兩個屬性集轉換為目標字符串形式時,利用編輯距離來表示轉換后的兩個字符串之間的距離,公式為:
式中,gi表示屬性集ci的字符串轉換結果;gj表示屬性集cj的字符串轉換結果[5];(i,j-1)+1 表示字符串gj刪除一個字母;(i-1,j)+1 表示字符串gj插入一個字母[6]。
設λ為經驗閾值,表示兩個屬性集之間的關聯程度,如果Sgigj(i,j)>λ,則表明兩個屬性集之間不存在關聯關系。如果(i,j)<λ,則表明兩個屬性集之間存在關聯關系[7-8]。式(1)計算結果越大,則說明兩個集合屬性越相似。
將約減后的數據作為機器學習的入侵檢測數據,主要用于分析入侵行為。機器學習過程如下:
步驟1:根據獨立分布的樣本數據,分析任意兩個數據之間的屬性集關系[9-10];
步驟2:提取屬性特征,整合全部特征,得到最終關系特征集[11];
步驟3:計算特征集權重,構建判斷矩陣,如下:
式中,D表示關系特征集的主特征根;n表示階段數。通過比較任意兩個屬性集,對其進行歸一化處理后,可獲取一致性指標[12];
步驟4:根據一致性指標,對入侵行為進行定量描述,由此完成入侵行為分析模型的構建。
由于入侵行為分析數據較多,且每條數據都具有不同屬性,這些屬性既有數值型的,也有符號型的[13]。因此,為了處理這些數據,引入異構值差度量距離函數進行歸一化預處理。
設兩個異構數據集分別為a、b,對應的屬性分別為ai、bi,這兩個數據在第i個屬性上的度量距離為:
式中,σ2表示平方誤差。
針對非線性可分解的樣本數據,采用Mercer 核函數將樣本映射到特征空間,并在特征空間內生成線性決策面,從而解決了在輸入空間中直接進行非線性分割的問題,如圖2 所示。

圖2 樣本映射到特征空間示意圖
由圖2 可知,全部樣本數據映射到特征空間后,避免出現異構數據,由此完成異構數據預處理[15]。
將預處理后的數據作為機器學習輸入數據,通過事先準備好的規則來定義入侵行為,并對每個規則進行遍歷,從而對數據包負載進行檢測。一旦找到,則上報告警信息[16]。在檢測過程中,將檢測過程劃分為多模匹配與校驗兩部分。當檢測規則載入規則集合之后,規則集合會被預先組合,把具有同樣特性的規則放到同一簽名組中,通過規則匹配實現入侵檢測。
第一部分:多模式匹配階段。首先,將信息輸入到規則匹配引擎中,然后按照所得到的信息特征進行識別。報文將首先進入檢測的第一階段,即多模式匹配階段。在多模匹配階段,通常先選取一條與報文特征相匹配的規則。入侵檢測規則匹配過程如圖3 所示。

圖3 入侵檢測規則匹配過程
由圖3 可生成待檢測報文,得到預驗證數據集。
第二部分:驗證階段。在驗證階段,對報文逐條遍歷,當報文特征符合規則的全部約束條件時,則生成告警信息。詳細檢測過程為:
步驟1:根據多模式匹配時間復雜性,從多個特征集中抽取出候選規則;
步驟2:針對步驟1 所獲得的多個多模式匹配規則,假定多模式匹配規則數目為t,簽名依次為1,2,…,t;
步驟3:對規則逐個遍歷,若將簽名設定為「命中」,則在「命中」前的n-1 次都是無效的,由此確定簽名序列中最后一次簽名的位置,即為有效命中結果,該結果即為入侵行為數據。
由于部分入侵行為數據與電力設備響應有關,因此,需要使用三級檢測模式,確保入侵檢測過程[17]中不會遺漏任何一個可疑數據。第一級檢測主要是檢測所有電力設備運行狀態,搜索異常運行狀態信息;第二級檢測主要是對異常數據作出反應,經過一級檢測之后,整合全部數據,構建異常數據庫,通過整合與歸類確定不同攻擊手段;第三級檢測是將前兩級檢測結果與歷史數據庫中有關的攻擊行為數據進行比對分析,獲取全部分析結果。在電力設備某個終端顯示request 中帶有“/gitbin”字樣,則說明這是一個入侵攻擊者正在尋找電力系統漏洞風險,通過機器學習與大數據技術,查詢行為狀態是否保持在正常指標內,再通過預處理定時定量對攻擊行為數據完整性進行分析,獲取精準分析結果。
選取存儲在電網中的Cup 數據集,一個完整的TCP 會話就是一個電力設備通電使用記錄,電網連接記錄屬性集,如表1 所示。

表1 電網連接記錄屬性集
表1 中包含10 個連續型屬性,5 個離散型屬性。
4.2.1 緩沖區溢出
緩沖區溢出的根本在于C++自身不安全,檢查陣列和指針之間的參考是沒有界限的。緩沖區溢出漏洞是很普遍的,在C 語言開發工具中,存在這類漏洞。
4.2.2 運行進程干擾
運行進程是指一個進程可以讀取與寫入另一個進程,該攻擊方式是將sbrk()函數直接插入到代碼中,或者在進程空間中尋找適當空間,然后編寫代碼和重寫原始數據,從而實現惡意代碼執行的目的。
4.2.3 特洛伊木馬
特洛伊木馬是一種存在于計算機中的程序,能夠竊取口令、拷貝或移除文件。
電力設備運行監測平臺是用來監視電網中違反系統安全性原則的平臺,其結構如圖4 所示。

圖4 電力設備運行監測平臺
由圖4 可知,數據源為平臺提供監控數據,分析引擎負責分析與審核數據,一旦發現有入侵行為,就立刻將數據傳遞給響應模塊,響應模塊隨機作出反應,生成反饋信息。
為了驗證基于機器學習與大數據技術的入侵檢測方法的性能,將其與文獻[1]方法和文獻[2]方法對比分析。使用了檢準率Pa、誤警率Pb兩個指標。設實驗集合分別為S1 和S2,兩個實驗集合經過訓練后得到的ROC 曲線,如圖5 所示。

圖5 ROC曲線
由圖5 可知,所提方法在三種攻擊手段下,檢準率均大于0.95,其余兩種方法檢準率均低于所提方法,尤其是文獻[2]方法誤警率較高。由此可知,所提方法的檢測準確率較高。
使用機器學習與大數據技術結合的方法檢測入侵行為,將樣本映射到特征空間,處理異構數據,再結合多模式匹配規則實現入侵檢測。通過該方法,能夠有效解決入侵檢測過程在低誤警率的前提下具有高檢準率這一難題。