王繼業 楊 軍 韓麗芳 周 亮 周純杰
1(中國電力科學研究院有限公司 北京 100192)2(華中科技大學人工智能與自動化學院 湖北 武漢 430072)
隨著智能電網建設的全面展開,我國電力系統飛速發展,自動化水平不斷提高,人們對電力的需求和依賴日漸增加。近些年,一些黑客或不法分子通過網絡攻擊手段侵入電力系統內部實施破壞的事件頻頻發生,給電力系統的穩定運行敲響了警鐘。智能變電站作為智能電網的重要組成部分,承載了變電設備狀態監測、電網運行數據、相關信息實時采集和發布等任務。智能變電站的運行狀態影響著電力系統的穩定運行,而智能變電站系統的通信協議標準化、數字化模式使其極易遭到攻擊,變電站系統穩定性面臨嚴峻的挑戰[1]。
隨著大量電網安全事件的發生,在對安全事件還原的過程中暴露出了告警數據量龐大、誤報現象嚴重等問題。茹蓓等[2]提出一種海量數據干擾下冗余數據高性能消除方法,引入均值漂移傳遞函數對冗余數據進行分類,并通過獲取其活躍程度實現高性能消除。劉自力等[3]提出了一種能夠處理大數據的頻繁項集挖掘算法,將海量復雜度高的多源異構數據轉化為知識。文獻[4]利用基于特征重疊的告警去冗模塊,有效地去掉了海量告警日志中重復以及冗余的告警信息。
目前告警信息冗余處理大多是針對通信網絡的,而面向電力工控系統的告警信息處理的研究較少。針對智能變電站,本文提出基于模糊證據推理的智能變電站多源告警數據的攻擊取證方法。首先對數據進行預處理達到統一數據類型減少數據量的目的,再通過特征匹配、模糊化、歸一化、相似度匹配等方法去掉智能變電站告警證據中的誤報。這樣,能夠在顯著減少告警信息數量的基礎上,有效解決單個設備的誤報問題,在提高智能變電站數據可靠性、還原攻擊場景等方面具有積極意義。
基于IEC61850標準的智能變電站從邏輯結構上分為站控層、間隔層和過程層[2-3]。其中過程層設備包括變壓器、斷路器、隔離開關、電流電壓互感器、合并單元、智能終端、獨立的智能電子裝置等,主要完成開關量、模擬量采樣和控制命令的執行等與一次設備相關的功能;間隔層設備包括繼電保護裝置、系統測控裝置、在線監測裝置等二次設備,主要完成對一次設備進行測量、控制、保護的功能;站控層通信設備包括監控主機、數據通信網關機、數據服務器、PMU數據集中器、綜合應用服務器、對時系統等,實現面向全站設備的監視、控制、告警和信息交互功能[5]。
智能變電站網絡化的成功應用使其以功能、信息的冗余代替了常規變電站裝置的冗余。智能變電站網絡架構[6]如圖1所示,其采用“三層兩網”分層分布的結構,這使其站內數據流傳遞方向具有“縱橫交錯”的特點,即不僅保持了同一層次內的橫向傳送,還具有不同層次間的縱向交換。

圖1 智能變電站網絡架構
智能變電站的典型安全攻擊包括遠程攻擊、本地提權(獲取超級權限)、系統數據竊取、偽造控制指令、篡改數據(包括篡改網絡數據和本地系統數據等)等。典型攻擊過程常常是這些安全攻擊的組合,例如首先通過遠程攻擊獲取本地訪問權限,然后采用數據竊取獲得關鍵用戶的口令、關鍵系統配置、關鍵控制組件的控制邏輯。獲得并分析電力控制系統的運行邏輯后,通過發送偽造的控制指令,破壞電力控制系統的正常運行。同時,攻擊者可以利用篡改數據攻擊,替換監控數據,使之符合控制邏輯,并達到隱蔽攻擊行為的效果。
因此在攻擊取證時要考慮攻擊的多種攻擊特征。攻擊特征主要從攻擊目的、攻擊機理、攻擊后果三個方面進行考慮。針對收集到的攻擊種類,首先將攻擊進行分類,然后針對每一種攻擊類型,從上述三個方面選取相應的特征,以此構建攻擊特征庫。智能變電站常見網絡攻擊[7-8]如表1所示。

表1 常見網絡攻擊
現今,通信網絡報文已成為智能變電站設備間信息交互和共享的主要方式,可將智能變電站系統的信息流主要分為GOOSE報文信息流、MMS報文信息流、SV報文信息流[9]。為了記錄報文事件,智能變電站新配置了網絡報文記錄分析裝置,除此之外,智能變電站還配置了記錄電壓電流發生突變、開關量變化引起的保護動作波形的故障錄波裝置,在智能變電站遭到攻擊時,服務器中的系統日志及登錄日志文件可以提供大量有用的告警信息。不同層次的不同設備都會產生告警數據,它們的來源不同,而且格式多樣,如報文數據、日志文件等,由此可見告警數據具有多源異構的特性。正是由于告警數據數量龐大且多源異構,無法將告警數據直接進行告警關聯以還原攻擊場景。因此,本文先對多源異構的告警數據進行預處理,再將智能變電站的多源告警數據與攻擊特征庫進行特征匹配,并通過模糊隸屬度以及歸一化處理得到相同數據格式的告警證據,最終利用余弦相似度算法分析設備之間的證據相似度,得到有效的證據集,解決告警數據量龐大且格式不統一的問題。
面對形式各異和不斷發展的網絡攻擊手段,傳統的安全事件檢測手段日益不能滿足變電站安全管理的需求。入侵攻擊場景還原可以從整體上反映攻擊者攻擊意圖,為增強網絡安全管理效率、制定有效的安全規劃和監管策略提供科學依據。然而由于變電站通信鏈路、設備狀態等問題,各設備產生的告警不能保證其正確性,難免會發生誤報、漏報等現象。
為了避免過多的錯誤信息影響攻擊場景的還原效率[10],本文提出基于模糊證據推理的智能變電站多源告警數據的攻擊取證方法,從實現規則上講,用模糊證據推理確定目標所屬類型的過程共分三步:(1)確定目標信息的模糊隸屬函數。(2)用證據理論對目標信息隸屬函數進行合成。(3)判決準則選取。此方法在減少誤報的同時降低了告警數據的數量,考慮到變電站各設備之間的關聯性,應用于變電站的攻擊取證方法總體實現思路為:采集智能變電站各個設備的告警證據,經過數據預處理后將其與攻擊特征庫進行攻擊特征匹配,然后通過隸屬度函數對告警證據進行模糊隸屬度計算,再對每個設備的模糊隸屬度進行歸一化處理,此時對于各個設備的告警證據具有相同的數據格式。格式統一后,還需利用余弦相似度算法分析設備之間的證據相似度,得到符合要求的攻擊證據集,最后通過分析證據集判斷其屬于哪種類型的攻擊。基于模糊證據推理的攻擊取證過程示意圖如圖2所示。

圖2 基于模糊證據推理的攻擊取證過程示意圖
在對智能變電站多源告警數據的攻擊取證過程中,一般要保存所有相關信息。由于告警信息數目龐大,因此在取證前需要對數據進行預處理,這樣可以節約時間和空間,降低后續成本。預處理分為兩個方面,一是減小數據量,二是統一數據類型。由于在數據采集過程中存在數據采集的非同步性、數據來源的不一致性、數據采集的時效性等問題,不可避免會出現數據缺失、冗余、格式不符、含義不明等多種情況,這些不符合分類模型處理規范的數據在攻擊取證過程中十分棘手。因此,需要對變電站各類信息(量測信息、狀態信息、通信信息、事務日志等)進行預處理,形成可以方便分析處理的數據集。
針對變電站數據本身不符合分析規范的情況進行處理,主要包括數據清洗、數據集成、數值化處理幾個方面。
數據清洗主要負責處理數據缺失及噪聲問題。對于數據缺失可以采用剔除法或替代法,剔除法雖實現容易但可能造成其他關鍵數據的缺失,而替代法可以采用均值填補,或用回歸、貝葉斯等算法結合一些固定約束估計缺失值。噪聲數據則可以采用分箱、聚類、回歸、計算機與人工相結合的方法剔除。
數據集成主要負責將要進行綜合分析計算的不同格式的數據合并成可用的數據集。
數值化處理將變電站數據中非數值型轉化為數值型,例如通信報文所用的協議類型MMS和SV分別用標號“0”和“1”代替。
為了提高告警信息的通用性和擴展性,選取入侵檢測信息交換格式(IDMEF)中權重比較大的屬性將告警信息格式標準化,即可以將告警信息的格式表示為Alarm(Alarm_ID,Alarm_Type,Alarm_Source,Alarm_Dest,Alarm_Time,Alarm_Port)。
獲取的告警信息中可能包含大量無關告警,通過各類安全設備從網絡中采集主機、服務、漏洞等告警校驗所需信息判斷目標系統與告警信息的相關性,以此去掉無關的告警信息。在告警校驗中,需要根據攻擊行為的類型,相應地調整元素內容。以拒絕服務攻擊為例,給出告警校驗函數:
Function DoS-Verification{
alarm:{
Dest : DestIP
/*告警的目的IP集合*/
Port: DestPort
/*目的端口號集合*/
Vulnerability: CVEID
/*告警的漏洞信息*/
Source: SrcIP
/*告警的源IP地址*/
}
Target:{
Active: Hosts
/*活躍主機地址集*/
Ports: ports
/*主機開放端口*/
Vul: CVEID
/*漏洞信息集合*/
RA: RAccessed
/*主機訪問控制策略中被訪問關系*/
}
Verification:{
If(alarm.Dest∈Target.Active & alarm.Port∈Target.Ports & alarm.Vulnerability∈Target.Vul & alarm.Source ∈Target.RA)
Result=1;
Else
Resut=0;
/*校驗未通過,將告警信息濾除*/
}
}
雖然去除掉了告警中的無關告警信息,但是同一攻擊在某一瞬時可能在某一設備產生重復的原始告警,因此,在分析告警數據之前還要去除這些冗余的告警。本文采用滑動窗口來消除重復告警,實現如下:
(1)產生新的告警NewAlarm時,從時間窗口中移除開始時間差值大于窗口值的告警,即若存在(NewAlarm.starttime—DeAlarm.starttime)>WindowSize,則將DeAlarm從時間窗口中移除;
(2)按時間順序匹配新告警NewAlarm與時間窗口中的告警Alarmi;
(3)若兩個告警的類型、源IP地址和目的IP地址均相同則將兩個告警合并,即若存在(NewAlarm.Alarm_type==Alarmi.Alarm_type)&&(NewAlarm.source==Alarmi.source)&&(NewAlarm.dest==Alarmi.dest),則合并兩個告警。
模糊理論是指用到了模糊集合的基本概念或隸屬度函數的理論,其應用范圍廣泛,從工程科技到人文科學都可以發現它的研究蹤跡與成果。針對電力系統,在模擬人腦對電力系統進行運行控制時,由于人腦存在識別、推理等模糊性的特點,在采用專家系統、模式識別等技術時均用到了模糊集方法。
當智能變電站某部分運行異常時,可能引發與其相關聯的部分發生運行錯誤,產生大量告警信息。通常情況下,依據0和1來判斷某件事情是否發生。然而,針對本文這種情況即告警信息與其產生的根源是一種模糊的、一對多的關系,采用1或者0來判斷比較片面和絕對,由此用0到1之間的任意數來表示[11]。本文結合最大隸屬法,對告警進行模糊相關性分析,實現告警的精確描述與定位,以解決單個設備誤報問題。
定義1設U為論域,一個模糊集合A在U上的一個映射uA表示為:
uA:U→[0,1]
u→uA(u)
(1)
對于u∈U,函數uA(u)稱為模糊集合A的隸屬度函數即表示u對A的隸屬度。通常結合實際選取隸屬度函數uA。
將理論應用于智能變電站,告警信息經過預處理后,要確定目標信息的模糊隸屬度函數。隸屬度函數的確定有多種方法,例如:模糊統計法、例證法、專家經驗法、指派方法等。本文采用指派方法,根據問題的性質主觀地選用某些形式的模糊分布。
針對不同的變電站設備有不同的模糊集合,隸屬度函數有不同的選擇,比較典型的隸屬度函數包括三角形、梯形、S型等。可以將三角形、梯形的隸屬度函數表示為:
(2)
式中:a和c為確定三角形“腳”的參數;b為確定三角形 “峰”的參數。
(3)
式中:a和d為確定梯形“腳”的參數;b和c為確定梯形“肩膀”的參數。
將攻擊特征庫中的攻擊類型集合假設為Θ={θ1,θ2,…,θn},并將某一節點設備A的告警證據集表示為eA={e1,e2,…,eNA},則設備告警對攻擊θi的支持度表示為:
(4)
式中:NA,θi代表符合攻擊特征的異常告警數量;NA代表該設備異常告警的總數量。則該設備對攻擊的支持度為:uA={uA(θ1),uA(θ2),…,uA(θn)}。
本文采用偏大型上升函數S型隸屬函數[12],即將攻擊θi的告警證據的隸屬度函數表示為:
(5)
式中:a、b的值需要自定義。通過隸屬度函數計算設備對各不同攻擊支持度的模糊隸屬度,得到的結果為fA={fA(θ1),fA(θ2),…,fA(θn)}。
為了讓數據尺度統一將上述結果作歸一化處理,即將有量綱的表達式經過變換化為無量綱的表達式,其目的是可以用數值來直接進行比較。歸一化后的形式如下:
(6)
通過對單一告警證據的模糊化處理,得到某個設備可能遭受的攻擊情況,由于智能變電站各設備模塊間有信息傳遞,若僅憑某一個設備遭到攻擊的情況就下定論可能不符合實際。由此,可以通過判斷智能變電站各設備間告警信息的相似程度以得到有效的告警證據集。
相似度度量即計算個體間的相似程度,相似度度量的值越小則說明個體間相似度越小,反之說明個體相似度越大。典型的相似度算法包括歐幾里得距離、Jaccard相似系數、余弦相似度等。歐幾里得距離的計算是基于各維度特征的絕對數值,指的是在m維空間中兩個點之間的真實距離。Jaccard相似系數主要用于計算符號度量或布爾值度量的個體間的相似度,其無法衡量差異具體值的大小,只關心個體間共同具有的特征是否一致。余弦相似度算法則用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小的度量,其更加注重兩個向量在方向上的不同,相比于其他算法更適合應用在智能變電站的各設備間多源告警證據的相似度的衡量上。因而,本文用余弦相似度算法[13]衡量智能變電站任意兩個節點設備間的相似度:
(7)
dAB越高則智能變電站中設備A、B發生相同攻擊的概率越大。計算完成后,將所有符合要求的告警證據集表示為:
E={(ei,ej)|dij≥δ,?i,j,i≠j}
(8)
式中:δ表示證據相似度閾值。進一步,假設智能變電站中有k個設備符合要求,通過分析證據集E={e1,e2,…,ek}中的證據,可以得到證據集隸屬于某種攻擊θi的概率:
(9)
通過將單一告警證據模糊化處理,分析不同設備告警證據的相似度,得到有效的攻擊證據集,避免因錯誤告警過多而影響攻擊取證的有效性,最后通過分析有效證據集判斷其屬于不同類型攻擊的概率。
以圖1所示智能變電站網絡架構來說明本文所提方法的可行性和有效性。實驗以UDP Flood攻擊[14-15]為例。當間隔層設備收到UDP數據包時,檢測目的端口是否有正在等待的應用程序,若不存在,其會給該偽造的源地址發送ICMP數據包。隨著不斷向間隔層設備的開放端口發送UDP數據包,導致整個系統負擔過重,通信緩慢甚至崩潰,不能處理合法的傳輸任務。具體流程如下:
(1)構造UDP數據包。構建與間隔層各類UDP數據包具體內容相似的UDP數據包,以確保實驗的有效性;
(2)檢測間隔層設備端口的開放性,為UDP攻擊作準備;
(3)向間隔層設備的開放端口發送大量UDP報文,占用網絡資源,導致無法正常通信;
(4)監控主機抓取數據包。
當實際系統遭到攻擊時,首先從智能變電站的各層設備中得到多源異構的告警數據,對智能變電站而言,同一設備產生的告警類型可能不同,通過分析智能變電站不同設備的告警信息,我們將告警類型分為事故告警、異常告警、變位告警、越限告警、告知告警,某一時間段內,變電站的部分告警信息如表2所示。

表2 變電站的部分告警信息
攻擊實施后,先對多源異構的告警數據進行預處理,再截取某段時間內智能變電站各設備的告警信息如表3所示。

表3 某段時間內智能變電站各設備告警信息統計表
然后進行攻擊類型匹配。具體流程如下:先逐條分析設備告警信息判斷是否屬于某種攻擊特征,如果屬于,則將對應的NA,θ數量增加1。以典型的兩種攻擊為例,其在攻擊特征庫中的表現形式如表4所示,如果告警信息中出現表4所示情況,則可以判斷其隸屬的攻擊類型。另外,由于不同攻擊類型的攻擊特征可能具有相似性,例如“安全日志異常”均符合兩種示例攻擊的特征,因此某一設備攻擊支持度之和可能不為1,即∑μA(θ)≠1。

表4 變電站的部分告警信息
攻擊特征庫中包含UDP Flood和重放攻擊兩種攻擊類型,即表示為Θ={θ1,θ2}。統計表中的五個節點設備用A、B、C、D、E來表示,并將設備A的告警證據集表示為eA={e1,e2,…,eNA},以此類推。將節點設備的告警證據集與攻擊特征庫相匹配,得到的統計結果如表5所示。

表5 攻擊特征匹配結果
表5中,u(θ1)、u(θ2)代表各設備對攻擊θ1、θ2的支持度。將隸屬度函數a、b的值設為0.3和0.7。即可以將攻擊θi的告警證據的隸屬度函數表示為:
(10)
通過隸屬度函數分別計算各設備對不同攻擊類型支持度的模糊隸屬度并進行歸一化處理,得到的結果如表6所示。

表6 支持度的模糊隸屬度以及歸一化結果
采用余弦相似度算法計算任意兩節點設備間的相似度即[AB,AC,AD,AE,BC,BD,BE,CD,CE,DE],其結果為[1,1,0.72,0.09,1,0.72,0.08,0.73,0.11,0.71]。
將相似度閾值δ置為0.8,由此可見,設備A、B、C相似度比較高,即智能變電站的這三個設備發生相同攻擊的概率比較大。現智能變電站中有三個設備符合E={(ei,ej)|dij>δ,?i,j,i≠j},通過分析告警證據集E={eA,eB,eC}中的證據,計算出證據集隸屬于攻擊θ1、θ2的概率,即p(θ1)=0.68、p(θ2)=0.32。
若考慮到設備D、E,則可以將告警證據集表示為E={eA,eB,eC,eD,eE}。分別計算出證據集隸屬于攻擊θ1、θ2的概率:p′(θ1)=0.58、p′(θ2)=0.42。本次實驗采用的UDP Flood攻擊,依據本文方法將攻擊隸屬于UDP Flood攻擊的概率由0.58提升至0.68,可見通過將證據模糊化的取證方法可以有效去掉誤報。為了驗證此方法對不同攻擊的有效性,分別采用UDP Flood、SYN Flood、重放攻擊、中間人攻擊、錯誤數據注入攻擊[8-9,14]進行測試,實驗結果如圖3所示。

圖3 誤報消除效果對比實驗
由此可見,本文提出的基于模糊證據推理的智能變電站多源告警數據的攻擊取證方法可有效減少不同攻擊對智能變電站產生的誤報。
本文提出基于模糊證據推理的智能變電站多源告警數據的攻擊取證方法。首先介紹智能變電站的網絡架構、告警數據的多源異構特性,以及常見的攻擊。通過對智能變電站各個設備的告警證據進行預處理和模糊化處理,將多源異構的告警證據統一化,再利用余弦相似度算法分析設備之間的證據相似度,得到符合要求的攻擊證據集以減少誤報。最后以UDP Flood攻擊為例,對方法的有效性進行驗證。
本文方法能夠有效解決單個設備無法解決的誤報問題,對提高工控系統的數據可靠性、還原攻擊場景等方面具有積極意義。