王 勝,唐 超,張凌浩,張 頡,王 海,柴繼文,劉珊梅,鄭永康,鄧 平,曹 亮,夏曉峰,秦 帆
(1. 國家電網四川省電力科學研究院,成都 610072;2. 國家電網自貢供電公司,四川 自貢 643000; 3. 國家電網甘孜供電公司,四川 甘孜 626700;4. 重慶大學 大數據與軟件學院,重慶 400044)
隨著計算機技術和網絡技術的發展,特別是互聯網及社會公共網絡平臺的快速發展,在“兩化”融合的行業發展需求下,為了提高生產和管理效率,電力行業大力推進工業控制系統自身的集成化、集中化管理,智能電網也就隨之而來。變電站作為電力系統即智能電網中的重要組成部分,擔負著電壓轉換、電能分配、輸配電的控制和管理等重要任務,其安全、可靠地運行是整個智能電網安全和穩定的重要保障。
智能變電站由于其自身的重要性,關系到某一片區所有的電力供應。一旦智能變電站某一功能模塊出現細微差錯,所造成的損失將是不可估量的。如今也有許多不法分子對智能變電站進行惡意攻擊,使智能變電站出現故障,導致整個電網進入癱瘓狀態,造成巨大的經濟損失,2019年委內瑞拉大停電事件就是一個很好的例子。
智能變電站的安全是多方面的,除了上述的外部惡意攻擊以外,由于變電站設備高度的集成化和一體化,內部工作人員的一些不當操作、站內設備的突發意外故障等也都會導致智能變電站的安全面臨嚴峻的挑戰。
如今智能變電站通常采用IEC61850標準[1],其內部所有變電站的信息共享與數據傳輸通過智能變電站的過程層網絡來實現。過程層網絡的報文是變電站內部各功能部件間相互協調的通信載體[2],它包括了整個變電站所運行的狀態以及相應的設備信息。因此,過程層網絡的穩定與正確性是整個智能變電站得以正常運行的重要保證。這也是文中所研究的重點所在。
筆者介紹了智能變電站網絡的結構特性,對智能變電站安全進行了詳細分析,闡述了國內外的研究現狀,提出了面向智能變電站過程層網絡安全異常流量檢測的方法。
在智能變電站中,根據IEC61850標準主要采用的是“三層兩網”的架構體系[3],如圖1所示。

圖1 智能變電站“三層兩網”結構Fig. 1 Three layers and two networks of intelligent substation structure
“三層”分別是“站控層”“間隔層”和“過程層”,“兩網”則就是“站控層網絡”和“過程層網絡”。其中,“站控層網絡”主要基于TCP/IP的MMS協議。通過MMS協議,實現站控層對間隔層的信息統一管控。“過程層網絡”則是直接連接間隔層和最底層的過程層設備,是直接管理控制過程層設備運行的。它主要使用專有的工控傳輸協議“GOOSE”和“SV”。
過程層的設備主要包括合并單元、智能終端,以及變壓器和發電機等,并且直接面向電力系統的設備,所以過程層網絡傳輸的穩定性和正確性,是保證整個變電站和電力系統可以穩定運行的關鍵。文中工作也是針對過程層網絡的流量進行分析檢測。
在過程層網絡中,智能變電站主要使用報文來進行信息的傳輸。報文內容的正確性和傳輸的實時性,是變電站正常運行的重要保障。一旦過程層網絡報文流量傳輸出現異常,將會直接導致過程層所面對的電力系統的一次設備出現故障或者差錯。所以對過程層的流量進行檢測和分析十分重要。過程層網絡所傳輸的主要是GOOSE和SV。GOOSE報文主要承載的是面向對象的變電站事件信息,而SV報文主要承載的信息則是采樣值的信息。
1.2.1 GOOSE
GOOSE是工業控制系統中的專有協議,它是面向通用對象的變電站事件,不需要經過回執確認,由系統直接選擇順序重發機制,具有實時性和一發多收的特點。GOOSE保存的信息主要是一些保護設備的信息,如跳閘、閉鎖等[4];以及變電站的時間信息。GOOSE報文的發送和接收分別通過publisher(公告式發布)和subscriber(預訂式接受)執行。每當變電站中有設備數據發生變化,GOOSE都會即刻進行傳送。并且在此階段,GOOSE的發送間隔會逐漸地增大,直至數據的變化趨于穩定即事件狀態穩定。GOOSE的報文幀格式如表1所示。

表1 GOOSE報文格式
1.2.2 SV
SV所承載的是設備的采樣值信息,以網組傳播訂閱的方式傳輸。SV會周期性地將設備的電流電壓的采樣信號進行傳輸。一旦有數據丟失,會立即重新傳送。SV在網絡上傳輸時采用的是開放式系統互聯通信參考模型(open system interconnection reference model),即OSI模型,但是只用到了其中的4層,包括應用層、表示層、數據鏈路層和物理層。傳輸層和網絡層為空,在應用層將協議數據單元PDU定義好,經過表示層的編碼后直接映射到數據鏈路層和物理層,這樣避免了通信堆棧而造成的傳輸延時,保證了報文傳輸和處理的快速性。SV的報文格式如表2所示。

表2 SV報文格式
從智能變電站的本身來看,智能變電站中的一些二次設備十分脆弱。根據IEC61850標準所建立的智能變電站,其內部設備的通信安全缺少有效的保護手段。尤其是GOOSE和SV協議,在設計時對信息安全的考慮是不夠完善的,GOOSE和SV采用多播的形式進行傳輸,針對這一點,至少存在著DoS和重放等攻擊手段可以對智能變電站內部的通信進行有效地攻擊。一旦智能變電站受到了上述任何一種攻擊,整個智能變電站的網絡環境就會受到巨大的影響,根據1.1節中對智能變電站的過程層網絡的概要介紹,無論是GOOSE還是SV協議,對網絡傳輸的實時性都有嚴格的要求。
在智能變電站中很難對業務流量進行分析,對潛在的異常流量行為模式無法做到完全的感知。因此,很難防范一些異常行為的出現,一旦這類異常行為出現,可能會對二次設備造成很大的損壞,所造成的損失難以估計[5]。
所以,對智能變電站的過程層流量及異常流量進行檢測,對整個智能變電站的安穩運行有著重大意義。
在中國,隨著電力需求的發展以及國家對電網發展戰略的制定,全國各地已經陸續開始了許多智能變電站的建設。從2010年6月發生的“震網”病毒等事件后[6],學術界意識到電網安全的重要性以及相應預防措施的缺乏性,并且也提出了一系列的解決和緩解方案。比如,楊雅輝等[7]提出了一種基于增量式的GHSOM神經網絡模型的入侵檢測研究方法;Yu等[8]提出通過分析過程層設備異常以及它們所引起的信息流,也包括信息流異常狀態的形成機理和相應特征量,提出并設計了不同的異常保護判據;丁修玲等[9]也提出了一種基于報文解析的變電站過程層網絡異常信息流的保護方法,通過電力系統和通信系統的聯合仿真證實了電網中通信延遲的危害。也有許多研究直接從工業控制系統出發,通過對系統的權限、認證等角度入手,從而保證了智能變電站的安全性[10]。
在已有的相關技術方法中,對異常流量的檢測,通常是從時間、空間上構造“正常模式”或“正常流量”作為基準,或者是通過設置簡單閾值來判斷異常流量。前者并沒有結合報文內的信息,而后者由于變電站網絡中會存在突發報文,閾值的設置很難選擇[11]。文中采用了文獻[12]中的特征選取方法,完成對網絡流量報文內與流量類型相關的重要特征的選擇,剔除冗余特征,使分類效果得到提升。文中提出對智能變電站仿真平臺進行攻擊實驗,從而對所收集的正常運行流量和突發的異常流量通過k-means聚類算法進行分類,可以有效地識別過程層網絡中的異常流量。有監督的機器學習方法可以建立一個準確的模型來進行檢測,由于它需要對大量的樣本進行人工標記,成本過大、工作量過多,所以研究選用典型的非監督的機器學習算法k-means聚類算法。
異常流量特征的選取主要使用了文獻[12]中信息熵理論的特征選取法,不僅可以得到流量數據中的重要特征,而且也能夠去除冗余特征,使檢測結果更加準確。
2.1.1 引入信息熵度量特征
“熵”是熱力學中的相關概念。在1948年,香農首次把熱力學中有關“熵”的概念引入到信息論之中,從而把“熵”作為了一個隨機事件發生的不確定性的度量。
當一個事件有可能會出現n種可能的結果,每種結果獨立出現的概率都為pi時,信息論中香農使用了度量I表示事件的不確定性結果
(1)
式中,事件的可能結果越多,不確定性越大,完全確定時,不確定性為零。并且,香農將與I成正比的
S=Klnn,
(2)
稱為信息熵。也就是說,信息熵越大的時候,其事件的可能性就越多,所蘊含的信息量就更大,反之亦然。
文中通過引入信息熵度量特征的重要程度。一個屬性特征的信息熵越大,所包含的信息量就越大,就越能作為區分的判定。反之,如果一個屬性的信息熵值很小,表明所有的流量數據在這個屬性上的差異就不大,從而也就無法通過此項屬性值來對流量進行區分判定。
2.1.2 流量特征選取方法
文獻[12]中的特征選取方法,將特征主要分為了兩類:重要特征和不重要特征。與流量類別有著相關關系的特征一般是重要特征,即該特征被引入后會對類別產生影響。而不重要特征則與此相反,表示與其不相關。通常使用1 s內正常流量和異常流量特征熵值的差值來區分重要特征和不重要特征,特征重要系數K為
(3)

同時,對于冗余特征,定義了冗余系數T,來表示2個特征的冗余程度:
(4)
式中,TAB越接近1,則2個特征越不相關,反之就越相關。
如果2個特征互為冗余特征,只需要刪除熵值平均值較小的那個特征即可。
k-means聚類算法是最為經典的使用最為廣泛的一種聚類方法。它是基于距離的一種聚類算法,使用樣本間的距離作為劃分樣本的依據,距離越近則樣本就越接近,反之同理。k-means算法流程如圖2所示。

圖2 k-means算法流程Fig. 2 Algorithm steps of k-menas

在上述的最佳區間內隨機選擇一個k值,并選出k個初始聚類中心:Z=(Z1,Z2,…,Zk),計算各樣本與各聚類中心的距離,并將其與距離最小的中心劃分為一類,式(5)中d表示樣本與樣本中心的距離,s表示所選出的特征項。
(5)
更新聚類中心,計算出各個類簇的樣本距離的平均值:
(6)
計算整個數據集的平方誤差SSSE判斷是否收斂:
(7)
雖然上述是在一個較優區間內選擇的k值,但是仍有可能不是最理想的k值,所以引入輪廓系數[15],來選擇一個最優的初始k值。輪廓系數是評判聚類效果好壞的一個指標,其區間為[-1,1],其值越大效果越好。在上述區間內,隨機選擇N個k值,并分別計算每次的輪廓系數,選擇最終輪廓系數最大的一個。個體輪廓系數Si公式為
(8)
式中:a(i)表示和i同類中所有數據對象之間的平均距離;b(i)表示和i不同類中所有數據對象之間的最小平均距離。
總的輪廓系數為各個體輪廓系數的平均值
(9)
研究目的是對智能變電站中的過程層網絡中異常流量進行分析,從而檢測到電站在運行時可能產生的異常流量,及時做出反應避免損失。k-means算法是屬于非監督型的機器學習算法,無需事先進行大量的學習工作。
對異常流量數據進行檢測的過程如圖3所示,分別是對流量數據進行收集,包括正常流量數據和經過人為干涉后所產生的異常流量數據。對收集到的流量利用2.1.2的特征選擇的方法找到主要的重要特征,并將特征進行標準化處理,并利用聚類算法對流量進行分類,從而達到識別檢測異常流量的效果。

圖3 檢測流程Fig. 3 Work steps
筆者對智能變電站的仿真平臺進行抓包,對流量數據進行采集,并且在這過程中對過程層網絡進行DoS攻擊,以保證可以產生一定的異常流量。抓取一個時間段內的GOOSE和SV協議報文,將每一個GOOSE或者SV協議的報文抽象成一個網絡連接,提取出GOOSE和SV報文中的相應信息,如源MAC地址、目的MAC地址、協議類型等。變電站中的所有設備的MAC地址和IP地址都是固定的,因此也可以將這2個信息做綁定,這樣就將協議報文給抽象成了方便處理的連接數據。
在運用聚類算法對信息流量數據進行分類檢測前,使用在3.1節中所提到的異常流量特征選擇的方法來對所抓取到的流量信息進行重要特征的提取,作為聚類算法的度量標準,從而使聚類算法變得更加高效。因為所進行的是DoS網絡攻擊,所以所提取出來的最主要特征是GOOSE和SV報文中的MAC地址和IP地址以及發送間隔。
在完成了這些準備工作之后,繼續采集變電站流量數據,并同時對其進行DoS攻擊。將所獲取的流量數據進行聚類檢測,并對得到的聚類結果進行分析,異常簇中報文內容92.6%與模擬的攻擊報文信息吻合。筆者同時使用傳統的基于閾值的方法進行了檢測,結果對比如表3所示。

表3 實驗對比
文中介紹了智能變電站的網絡結構,指出了過程層網絡安全的重要性。根據過程層網絡通信協議特性分析了過程層網絡的安全問題。提出了一種基于k-means聚類算法的智能變電站過程層網絡安全異常流量的檢測方法,并采用了一種基于信息熵的特征選取方法。經實驗結果對比得出了文中方法的可行性及其有效性。接下來的工作將在文中的基礎上,進一步研究提高檢測率以及檢測的實時性。