汪 洋,張 云,葛雅川,李 楠,呂佩吾
(南京國電南自電網自動化有限公司,南京 211153)
電力系統作為國家關鍵基礎設施,能否安全平穩運行關系到國計民生。近年爆發的烏克蘭電網遭受攻擊[1],伊朗核設施遭受攻擊事件,顯示出網絡安全在電網運行中的極端重要性。
IEC 61850[2]是變電站的主要通信規約之一,站控層使用明文通信,存在安全隱患。IEC 62351[3]針對這種情況提出MMS的加密措施,極大地提高了安全性,但沒有針對報文應用層內容的安全性提出解決方案。本文提出IEC 61850應用層網絡安全的解決方案,可作為IEC 62351的補充,可以從語義層面漆層次加強繼電保護裝置的抗攻擊能力。
IEC 62351-4提出利用TLS技術[4]對MMS報文的加密安全措施,TLS架設在TCP之上可以提供以下安全防護:認證;機密性;數據完整性;不可抵賴性。
IEC 62351指出:“TCP/IP的TLS為通信協議集的傳輸層提供安全防護。TLS并不提供應用層安全防護,所以應用層安全應由其他安全措施提供。”由于具體應用場景不同,IEC 62351無法提出應用層防護建議,無法檢查客戶端/服務器交互過程的邏輯性與服務請求的合理性,無法檢測出隱藏在應用層的攻擊。
防火墻是網絡之間的安全屏障,保護內網免受非法侵入。防火墻可分為包過濾防火墻、應用層防火墻、代理服務防火墻。
防火墻既可部署在專門的硬件上,也可通過軟件形式部署在主機本身。
傳統的報文檢測技術僅涉及TCP/IP協議棧各層的頭部,如MAC地址、IP地址、TCP端口號。深度報文檢測是在傳統檢測的基礎上,增加對應用層具體內容的檢測。
DPI技術主要有:基于特征字的識別技術、應用層網關識別技術、行為模式識別技術。
本文提出“MMS行為特征檢測(MMS behavior feature detection,簡稱MMS-BFD)”方案,構造MMS行為特征庫,深度解析客戶端的服務請求報文,采取安全措施進行防護。MMS-BFD既具備應用層防火墻的深度報文檢測功能,又突破了獨立硬件防火墻不能解析密文的局限。
IEC 61850應用層攻擊主要分為三種。
(1) 畸形報文攻擊。通過向目標系統發送應用層有缺陷的報文,使得目標系統在處理這樣的報文時會出現崩潰。
(2) DOS攻擊。利用合理的服務請求來占用過多的服務資源,目標服務系統無法提供正常的服務或資源訪問,停止響應甚至崩潰,從而使合法用戶無法得到服務的響應。
(3)錯誤邏輯請求。利用通信規約和系統邏輯漏洞,制造符合語法要求,但業務邏輯不合理的服務請求。
IEC 61850對裝置的行為并沒有做出硬性約束。一些ACSI/MMS服務超出一般需求范圍,屬于DOS攻擊和反邏輯請求。
(1) 頻繁請求Read服務,如高頻率注冊報告控制塊,高頻率總召,超出正常需求。
(2) 頻繁請求Write服務,如短時間內連續多次切換定值區、修改定值、投退壓板和斷路器。
(3) 多客戶端服務不合邏輯,如使用FileClose服務關閉其他客戶端通過FileOpen創建和FileRead使用的讀寫句柄(系統總是從一個整數開始按照規則順序分配句柄,試探攻擊者并不需要試探整個句柄空間),一個客戶端切換定值區后另一個客戶端緊接著切換到另一個定值區。
(4) 頻繁通斷TCP連接。
(5) 不完整流程,如投退壓板時僅預選但不執行,讀錄波文件僅讀取其中部分就結束。
這些行為雖完全符合IEC 61850規范,但對一般變電站而言屬于異常行為范疇,是隱藏在合法報文中的非法操作。
針對這些攻擊,MMS-BFD在TLS解密報文后,接下來先后分三個模塊處理,見圖1。
(1) MMS解碼模塊。解析MMS報文,過濾畸形報文。
(2) 特征檢測模塊。根據具體場景,檢測服務請求是否合理,是否允許執行。
(3) 服務模塊。執行服務,或拒絕服務(如向客戶端發送否定響應報文)。這是最后一道防護,執行服務程序根據裝置狀態執行成功或失敗。

圖1 三層安全防護結構
MMS解碼模塊、服務模塊是實現IEC 61850通信必不可缺的基本模塊。MMS解碼模塊對畸形報文檢測的強度隨系統不同而有所差異,本文不深入探討。
特征檢測模塊是防DOS攻擊和反邏輯請求的主要模塊,是一般IEC 61850程序中不具備的功能。
特征檢測模塊針對解析MMS后得到的客戶端服務請求,做深層次行為解析,判斷其是否合理,是否符合正常業務邏輯。
客戶端的服務請求可抽象為兩類行為特征。
(1) 獨立行為特征。這類特征僅跟一個特定客戶端的行為有關,不涉及其他客戶端。例如:單個客戶端注冊報告控制塊頻率、單個客戶端獲取VMD中的對象列表的次數。
(2) 關聯行為特征。這類行為特征跟多個客戶端的行為相關。例如:某客戶端在其他客戶端切換定值區后,又下達切區命令切回去。從單個客戶端來看,切區是正常操作;而從多客戶端角度連貫起來看,屬于可疑操作。
根據繼電保護裝置的部署環境,裝置行為特征用計數器、計時器、行為鏈等形式表示,但不局限于這些形式。
(1) 計數器。計數器用于統計客戶端在一段時間內同一類行為發生次數。一旦次數超過閾值,裝置就啟動防護。
(2) 計時器。計時器用于記錄一個行為在多久之前發生。
(3) 行為鏈。行為鏈記錄客戶端一連串相關行為及行為的時間間隔。行為鏈的每個節點表示一個行為的發生,用五元組表示:
Action = {Client,Time,Code,Object,Para}
其中,Client為客戶端識別碼;Time為距上一行為的時間;Code為操作碼;Object為操作對象;Para為操作參數。
例如,把“客戶端A切換定值區至1,過了0.5 s后B客戶端切至2,再過0.3 s后A又切換至3”,切區為鏈如圖2所示。

圖2 切區行為鏈
為了不占用過多內存,行為鏈在數據結構上采用隊列的形式。節點數達到閾值時,刪除最早入隊的行為節點。
一條行為鏈要求操作碼Code必須具有關聯性,操作碼可在裝置配置文件中約定。
MMS-BFD通過入侵檢測,來防御客戶端攻擊。入侵檢測采用DPI方法,把客戶端報文的語義歸結并反映成行為特征,再根據行為特征判斷是否遭遇攻擊,再通過防御策略抵御攻擊。
MMS-BFD部署的前提是能夠解密報文,暴露應用層內容。根據IEC 62351對MMS報文加密后,只有通信兩端能加解密報文。因此,把DPI部署到保護測控裝置上,作為IEC 61850程序的一部分。
MMS深度報文檢測模塊分為四層。
(1)分揀層。接收MMS解析模塊的解析結果(參數集),把參數規格化后分揀,形成若干參數子集,輸入至特征層節點。
(2)特征層。本層節點是一系列計數器、計時器、行為鏈。設單客戶特征有n個,對應標號為FS1,FS2,…,FSn,n∈[0,+∞),多客戶端特征有m個,對應標號為FM1,FM2,…,FMm,m∈[0,+∞)。特征層節點接收分揀層格式化后的參數集,計算相應結果。
(3)狀態層。本層節點是一系列狀態機,單客戶特征有p個,對應標號為SS1,SS2,…,SSp,p∈[0,+∞),多客戶端特征有q個,對應標號為FM1,FM2,…,FMq,q∈[0,+∞)。狀態層節點接收特征層的特征計算結果,經過狀態變遷運算,得出新的狀態。
(4)決策層。本層綜合各個狀態層節點的輸出狀態,計算出是否提供客戶端請求的服務。
MMS深度檢測結構見圖3。

圖3 MMS深度檢測結構
基于MMS深度檢測結構,裝置根據一系列配置的閾值來探測攻擊的發生。
決策層為裝置是否響應客戶端服務請求提供了依據,但決策結果不應僅僅影響本次服務。
決策層應當具有反饋機制,影響前面流程的執行。在拒絕服務后,分揀層的MMS解碼模塊甚至TCP/IP協議棧,都可對相應客戶端采取處罰措施,丟棄相關請求或閉鎖相關功能。
控制塊的配置與具體應用部署相關。既可將配置以xml格式嵌入擴展的ICD模型文件,也可在裝置flash中新建專門的配置文件。
配置的主要目的是設置防御參數,建立檢測和防御體系。
根據典型變電站特性,客戶端關閉comtrade文件句柄行為的限制如下。
R1:該句柄必須為本客戶端打開;
R2:不能頻繁讀取同一個錄波文件。設1 h內只能讀一次;
R3:一個客戶端不得關閉其他客戶端打開的句柄。
根據這些需求,構造狀態層節點。
SS1:該客戶端的讀文件狀態,分為離線、在讀、異常三個狀態,見圖4。

圖4 文件操作狀態層節點SS1
為R1在特征層設置行為鏈FS1,行為鏈節點的Para字段為客戶端Client操縱的文件句柄FileID。
為R2在特征層設置計時器FS2,記錄從上一次讀取該comtrade文件開始所經歷的時間t,用min_t表示讀同一錄波文件的最短間隔時間。
R3復用FS1,若FileClose節點的FileID與前一行為節點一致,則FS1向SS1傳入“合法FileClose”信號,否則傳入“違反R3的FileClose”。
SS1在狀態躍遷后,向決策層傳達MMS指令及狀態。向裝置執行模塊程序下達提供或拒絕服務的指令,由執行模塊執行相關操作并生產應答報文。
本文提出的MMS行為特征檢測,是對TLS安全防護的有效補充。即使客戶端被物理的、網絡的方式攻破,裝置也能在一定程度上,從語義層面抵御非法服務請求。
三層安全防護結構需消耗CPU資源,如何在有限的軟硬件資源下實現最大化防護,盡量減小對繼電保護裝置工作效率的影響,是下一步研究內容。
參考文獻:
[1] 劉念,余星火,張建華. 網絡協同攻擊: 烏克蘭停電事件的推演與啟示[J].電力系統自動化,2016,40(6):144-147.
LIU Nian,YU Xinghuo,ZHANG Jianhua. Coordinated Cyber-attack: Inference and Thinking of Incident on Ukrainian Power Grid[J].Electric Power System Automation, 2016,40(6) :144-147.
[2]IEC 61850:Communication Networks and Systems in Substations [S].
[3]IEC 62351:Data and Communication Security [S].
[4]IETF.RFC 5246:The Transport Layer Security (TLS) Protocol [S].