劉元生,王 勝,白云鵬,夏曉峰
(1.國網甘孜供電公司,四川 甘孜 626700;2.國網四川省電力科學研究院,成都 610072;3.重慶大學 大數據與軟件學院,重慶 400044)
隨著網絡技術的發展,未來的網絡通信將為自動化技術提供堅實的互聯基礎。智能變電站是典型的電力自動化控制系統,在中國電力網絡發展中占據重要地位,其產生的數據具有規模大、復雜性高特點,對數據處理過程和方法有較高要求,同時,對系統的安全防護也提升到更復雜維度上。入侵檢測系統作為安全防護的重要組成部分,也是智能變電站安全防護的關鍵環節。
目前的入侵檢測系統是依照一定的安全策略,對網絡、系統的運行狀況進行監視,盡可能發現各種攻擊企圖、攻擊行為或者攻擊結果,以保證網絡系統資源的機密性、完整性和可用性。近年來國內外對入侵檢測的研究集中在精確性中,在機器學習分類算法的提升上有很多應用[1-10],這種方法要求首先對捕獲的數據進行預處理并且引入參數[11-17],在犧牲計算資源的同時可以在一定程度上提高檢測系統的精度。另外在建立威脅模型方面,各類相關研究都專注于對特定的網絡結構有效獲取威脅來源[18-21],并且平衡各威脅源對安全的權重也是研究的方向之一。在威脅分析后建立風險模型時,如何使得風險模型有效的反映出系統的安全狀態[22-25],近年來相關研究以引入機器學習與神經網絡方法為主,在消耗運算資源的同時可以得出具有代表性的數值。
將入侵檢測系統應用于智能變電站,需要結合智能變電站的運行特征[26-29],例如變電站的報文捕獲必須采用被動獲取的方式,并且不能給變電站施加過多的系統負荷以至影響變電站的運行狀態。另外智能變電站需要實時處理大量信息,并且對系統的可靠性要求極高,在任何數據量和運行狀態下必須首先滿足系統的平穩性要求。所以基于智能變電站的入侵檢測系統需考慮系統在被動性、低負荷、實時性以及可靠性方面的影響。基于以上特點,面向智能變電站的入侵檢測采用網絡式結構設計,以被動式監聽工具為載體并優化數據存儲結構,使得系統在實際環境中的負載更小。
入侵檢測系統在工業領域主要檢測的威脅包括:利用系統權限進行非法操控,對設備參數的惡意篡改,通信協議的異常和攻擊等。檢測系統通過收集系統日志,網絡報文,用戶行為來判斷是否產生告警信息,它有3種體系結構:主機入侵檢測、網絡入侵檢測和分布式入侵檢測。其中主機入侵檢測是檢測對主機或服務器的入侵與攻擊,具有部署成本低,準確度高,可以應用在加密場景中并且檢測出攻擊造成的影響,但是主機入侵檢測對系統資源占用較多,并且檢測方法依賴系統記錄文件,對入侵攻擊存在一定的時差并且可能出現漏判的情況。
分布式入侵檢測是由多個組成部分構成,并部署在網絡中的各個設備中,每個設備將各自監聽采集到的信息匯總到系統控制中心進行處理,但是這種方式對大型網絡部署與維護代價高,并且同樣會對系統資源大量占用。網絡入侵檢測是將系統的監聽模塊部署在設備的網卡中從而監聽整個網絡中的報文,從而使得系統的實時性響應度高,能夠在收到威脅報文時迅速做出告警動作,并且系統在部署中對資源的需求低,對系統的正常功能影響低,這對設備運行穩定性要求高的設備十分重要;雖然這種模式只能檢測到單獨網卡中的報文信息,但是由于智能變電站的站控層中,監控主機具有集中收發報文的功能,所以在智能變電站中部署不受影響,適合在智能變電站中使用。
基于以上分析,在資源受限并且對運行穩定性要求高的環境中,使用網絡入侵檢測是可行且必要的選擇。
根據IEC-61850智能變電站通信結構被分為“三層兩網”,如圖1所示。

圖1 智能變電站網絡
以上結構組成了智能變電站二次通信網絡。其中站控層與間隔層的網絡為站控層網絡,間隔層與過程層中的網絡為過程層網絡。在站控層網絡中,間隔層向上發送MMS(manufacturing message specification),GOOSE(generic object oriented substation event)和SNTP(simple network time protocol)報文格式的設備信息,站控層向下發送一樣格式的控制命令;在過程層網絡中過程層向上發送SV(Sampled Value)報文傳輸設備狀態信息,間隔層向過程層發送GOOSE報文。
根據智能變電站中網絡結構,入侵檢測系統部署在站控層時可以更有效的檢測報文,并且將系統界面實時更新在監控主機中;另一方面,來自外部的攻擊是以與站控層設備通信為主,通過攻擊操作平臺來向網絡中的設備發送惡意指令,因此系統部署在站控層主機可以更有效及時地應對威脅。
在網絡威脅分析中,部署在網絡中的各式安全防護系統所產生數據具有多樣化和復雜化的特點,各類威脅分析模型被提出并應用于此類問題,并且在一定程度上對系統整合威脅分析提供了有效的幫助。
對于工業設備中常用威脅分析模型存在3點問題:1)所需系統資源高,威脅分析需要對系統日志,網絡報文和數據庫進行實時掃描,這對許多工業設備來說容易造成系統過載;2)傳統威脅分析對各類數據進行格式統一時會遇到對報文有效信息的誤裁剪,尤其是對存在特殊通信協議的系統;3)由于設計和算法的復雜性,系統對攻擊的響應滯后,這對安全性要求高的工業設備來說同樣是不可接受的。基于以上問題,研究提出面向工業設備的威脅分析模型,模型結構如圖2所示。

圖2 面向工業設備的威脅分析模型結構
模型將信息安全領域劃分為3個功能域,功能域之間相互關聯,相互傳輸數據,完成系統整體的安全防護。其中數據功能域負責收集并提供對安全防護有價值的信息;設備功能域用于獲取設備信息并評估系統安全風險值;威脅分析功能域是模型中的關鍵域,負責處理系統日志中的安全信息,入侵檢測產生的安全信息,并將所需的數據綜合分析后得到設備的風險值,其功能結構如圖3所示。

圖3 威脅分析功能域結構
威脅分析功能域將不同來源的安全特征參數進行匯總,目的是將整個系統中提供的安全計算數據一起納入風險模型的考量范圍。但是風險模型輸入的各安全特征對網絡的影響參數不同,在優化威脅分析模型時,參考了專利[30]提出的基于灰色模型的網絡脆弱性節點的主動預測方法的權重評估內容計算安全特征對網絡全局的影響權重。
在實際計算中首先對圖3中威脅分析功能域中安全分析與其他功能域的9項安全特征參數建立觀測矩陣
(1)
其中:t代表時刻,ft(1)代表第t時刻第1個安全特征參數的影響值,并且按照公式(2)對觀測矩陣進行無量綱處理得到矩陣A1。
(2)
(3)
此時矩陣A1的第一列向量為觀測向量,其他列為比較向量,通過公式(4)計算得到各子項的關聯系數并構成關聯矩陣M。
(4)
(5)
此時由關聯矩陣M,再通過公式(6)、(7)、(8)得出任意2個安全特征參數的關聯度,并形成新矩陣M′。
(6)
(7)
(8)
(9)
因為M′是非負對稱矩陣,M′存在最大模特征值λ,設特征向量為P,存在λP=M′P,此時該特征向量P即表示第i個安全特征參數在全局中的影響。
計算后可以根據9個安全特征參數在網絡中的不同影響加以權值分析,使得模型計算出的風險值更具有說明性。
在對威脅分析功能域模型中的9個影響參數進行計算后,系統在面臨威脅攻擊時主要產生影響的安全風險參數為以下5類,攻擊風險,故障風險,報文數據,入侵告警以及設備可能故障,其中后三者為前兩者的計算提供依據。所以攻擊與故障的風險對整個系統的安全分析具有重要價值,為了進一步使計算出的安全風險具有代表性和說服力,系統將攻擊與故障造成的風險進行分類。系統使用C(confidentiality),I(integrity),A(Availability)3個維度的安全風險因素作為分析元組,結合入侵檢測中識別到威脅報文的攻擊動態計算風險數值,最后將計算結果輸入到威脅分析功能域中,通過功能模型對系統設備風險值實時更新。
在計算風險元組的參數數值時參考層次分析法(AHP)計算模型,考慮到該方法在一致性比較中一致性檢驗的代價不確定,并且存在主觀性判斷影響,為了優化參數生成,文獻[31]中提出的攻擊模型與文獻[32]中提出的模糊一致判斷矩陣實現對風險值參數的優化。
算法首先對某次入侵攻擊R在機密性方面對下層傳播層次元組中的a1,a2,…,an進行重要程度比較,按照表1中的0.1~0.9標度的九標度法,從而生成模糊矩陣C。

表1 0.1~0.9標度表
矩陣C滿足:rii=0.5,i=1,2,…,n;rij=1-rji,i=1,2,…,n;rij=rik-rjk,i,j,k= 1,2,…,n。
接著對矩陣判斷是否滿足一致性,如果不滿足則對矩陣進行一致化處理:以1,2行為例,r11+r22=r12+r21=1;r11-r21=r12-r22=a,r2k=r1k-a;同理推出,r11-r31=r13-r33=b,r32=r12-b,進一步得出rkj=r1j-C(j= 2, 3, …,n,k≠j);
根據公式(10)計算得出新矩陣,最后按照公式(11)進行歸一化處理后得到參數值。
(10)
(11)
在完整性、可用性方面同理,經計算得到攻擊在機密性、完整性、可用性3個方面的評價指數。
在得到了攻擊在3個維度的評分后對風險值進行進一步計算,公式如下
(12)
(13)
(14)
其中:fc(x),fi(x),fa(x)分別表示攻擊在機密性,完整性,可用性方面所造成影響與范圍的評價指數;i代表第i個攻擊可能引起的故障;C,I,A分別代表該攻擊在機密性、完整性,可用性方面的評價指數;TCi,TIi,TAi分別代表當前故障在機密性、完整性、可用性方面的評價指數;N代表可能引起故障的總數。
經過公式(12)、(13)、(14)計算出的對應風險值可以將攻擊對系統風險影響的范圍進行較好的定義,從而對后續系統安全防護提供重要依據。得到攻擊在不同維度造成的風險評估后,系統需要將風險值更新至設備列表中,具體可以依據的函數為
Fc(x)=fC(x)·T(y),
(15)
FI(x)=fi(x)·T(y),
(16)
Fa(x)=fa(x)·T(y),
(17)
其中y代表該攻擊來源攻擊的次數,T(y)函數為

(18)
T(y)函數根據不同攻擊次數設定不同的參數以提高風險值,將最終的風險值更新到系統中。
在威脅與風險評價模型實際部署在入侵檢測系統中時,系統執行流程將分為3步:1)每當系統受到威脅攻擊,系統將首先通過威脅分析模型把9條關鍵參數傳入到威脅分析功能域中,該域通過基于灰色模型的網絡脆弱性節點主動預測的方法將9條參數的權重計算出來;2)系統將作用于攻擊與故障的5條加權后的參數傳入風險數值計算系統模型中,經過模糊一致矩陣和相應算法得出攻擊在3個安全維度中的評估;3)將得出的評估數值傳回威脅分析功能域,以經過三維風險計算的5條高權重安全影響因素為主體,加上4條低權重安全影響因素綜合得出系統的安全風險,并實時更新。
為了將系統網絡部署在智能變電站站控層設備中,本系統首先部署在與站控層設備具有相同內核的CentOS云服務器中,并且對系統的相關實驗也在相同環境中建立并進行測試,服務器中的系統部署如圖4所示,其中系統的重點功能是根據檢測出的數據對告警終端信息的后續處理以及設備風險值的同步更新。

圖4 服務器中的系統結構
對告警信息提供了下載與查看攻擊詳情的同時,可以聯合查詢,如來自同一攻擊源發送的其他攻擊信息等。對設備風險值的同步更新通過對數據庫的低耦合性設計,使得在交互過程中可以保證良好的數據獨立性。
系統在實現風險值更新模塊設計時采用了共享數據表的方法,通過數據訪問實現入侵檢測系統與風險計算關聯交互,對數據庫要進行相應的優化設計。
系統告警信息通過風險數值計算模型得出的三維度風險值,將分別存儲在兩張表中,第一張表在攻擊發生后的初次計算后寫入,第二張表在寫入后通過更新算法繼續寫入,系統只從第二張表中獲得更新后的數據,第一張表只用于數據計算,表示結構如表2所示,并且單獨列出數據表表示更新后的系統風險值表結構所示,這樣降低數據耦合度可以使得數據訪問效率和數據安全性提升。

表2 風險值更新數據表設計
通過對數據表的共享處理實現了入侵檢測系統對安全分析風險值更新,另外在系統交互方面,為了更好地適應智能變電站網絡,對入侵檢測系統采用模塊化分析,通過優化存儲連接的方法優化性能表現。入侵檢測系統結構分為:數據嗅探,威脅分析,響應處理和數據存儲模塊。模塊之間的關系如圖5所示,其中數據嗅探器為被動式嗅探工具;威脅分析使用了官方數據漏洞庫并提供更新漏洞庫版本接口,并增加自定義威脅來源功能;在響應處理中對識別的威脅報文提供下載,查看詳細信息和攻擊類別的功能;最后優化存儲結構,使得風險分析系統可以有效更新被攻擊設備的風險值。

圖5 入侵檢測系統結構
經過對各功能和效率的比較,嗅探器部分功能實現選擇Snort,使得系統在滿足被動式報文獲取的同時可以匹配官方Snort漏洞庫進行威脅分析,這樣使得系統在入侵檢測中更加適配,執行效率更高。Snort威脅分析是一種基于特征的入侵檢測系統,入侵檢測的關鍵模塊在于威脅分析模塊,其處理邏輯如圖6所示,其中報文解碼與預處理對報文進行格式處理并先后交由2次匹配判斷是否為威脅報文并存儲,其數據可以為后續進行數值分析提供依據。

圖6 威脅分析處理邏輯
在按照上述結構完成系統搭建后,對系統交互邏輯實現了有效的優化。
系統在服務器中的部署后進行了運行效率以及模擬攻擊測試的實驗。其中運行效率分別考慮網絡極限和處理器極限狀態時的系統運行情況。
在網絡測試中對1 M帶寬的服務器中下載上傳文件,使得網絡帶寬被占用的同時對服務器發送標記威脅報文,從而測試系統的有效性。結果如表3所示。

表3 網絡極限測試
在處理器測試中對1核1 G內存的服務器中對文件,在處理器占用時對服務器發送標記威脅報文,從而測試系統的有效性。結果如表4所示。

表4 處理器極限測試
如上述實驗所示,在網絡和處理器資源占用較大時系統依然具有良好的可靠性,并且證明了本系統對資源的占用低,不影響系統性能。
模擬攻擊測試共分為5種類型的測試,包括更改權限,數據庫訪問,刪除文件,虛假指令以及自定義威脅來源的測試。
測試結果使用混淆矩陣來評估表現,如表5所示。

表5 混淆矩陣
其中,TP(真陽性)表示正確預測的正常報文;FN(假陰性)表示錯誤預測的正常報文;FP(假陽性)表示錯誤預測的攻擊報文;TN(真陰性)表示正確預測的攻擊報文。其中預測正確的是TP,TN,故攻擊實驗的系統精確值計算方法為
(19)
分別對上述的5種攻擊進行測試,將測試結果統計后如表6所示。

表6 模擬攻擊測試
在系統的攻擊測試中,虛假指令一項識別率較低,分析認為主要有以下3點原因:1)入侵檢測的關鍵部分漏洞規則檢測中對虛假指令的涵蓋不足;2)單個服務器難以還原智能變電站網絡結構,所發送的虛假指令不能向下傳輸;3)因為構造的模擬報文不能正確觸發預警;這種情況可以通過自定義規則,或者在實際網絡中測試優化。
通過上述實驗結果,總體上入侵檢測系統可以滿足主要的攻擊檢測需求,并且對系統的資源需求較低,可以作為安全輔助系統部署在智能變電站中。
主要針對智能變電站中建立入侵檢測系統進行研究,通過調整系統結構,存儲方式,同時提出三維風險值更新算法,將入侵攻擊的范圍與影響直觀的體現出來,實現了實時分析的被動式入侵檢測系統,并且通過一系列實驗證明了系統的有效性,為安全防護和后續研究提供了相關的依據和經驗。