1 引言
電力行業(yè)很早就采用計(jì)算機(jī)實(shí)現(xiàn)生產(chǎn)過程自動(dòng)化。現(xiàn)代電力企業(yè)網(wǎng)絡(luò)基礎(chǔ)設(shè)施日益完善,已建成生產(chǎn)、管理、營(yíng)銷等不同類型的信息系統(tǒng),企業(yè)信息化[1]水平達(dá)到新的高度,有效保證了電力系統(tǒng)安全、優(yōu)質(zhì)和經(jīng)濟(jì)運(yùn)行。各類電力信息系統(tǒng)由于信息共享和協(xié)作已經(jīng)實(shí)現(xiàn)互連,網(wǎng)絡(luò)通信協(xié)議也逐步采用開放通用的TCP/IP協(xié)議,這使得非法者可以采用各種攻擊技術(shù)在信息空間(Cyber Space)對(duì)電力信息系統(tǒng)進(jìn)行攻擊,破壞電力系統(tǒng)信息安全(Cyber Security in PowerSystem),影響電力系統(tǒng)可靠運(yùn)行,甚至導(dǎo)致系統(tǒng)振蕩或大范圍停電。2010年震驚世界的針對(duì)伊朗核電站的震網(wǎng)病毒[8],以及最近的烏克蘭電網(wǎng)遭受黑客攻擊事件[2],針對(duì)電力控制系統(tǒng)的網(wǎng)絡(luò)攻擊事件呈不斷上升的趨勢(shì)。隨著德國(guó)工業(yè)4.0[3]、美國(guó)工業(yè)互聯(lián)網(wǎng)[4]、中國(guó)《中國(guó)制造2025》[5]等規(guī)劃不斷推進(jìn),電力控制系統(tǒng)將與互聯(lián)網(wǎng)信息系統(tǒng)不斷融合,電力控制系統(tǒng)將面臨越來(lái)越多的信息安全問題的挑戰(zhàn)。因此,越來(lái)越多的國(guó)內(nèi)外學(xué)者進(jìn)行電力控制系統(tǒng)的信息安全研究。震網(wǎng)病毒就是針對(duì)伊朗核電站所使用西門子PLC的漏洞 [6]進(jìn)行的一種欺騙型攻擊,因此我們還需要在電力控制系統(tǒng)SCADA、PLC、DCS [7]之間的通信數(shù)據(jù)設(shè)置深度包過濾。我們要對(duì)電力控制系統(tǒng)信息安全進(jìn)行研究,避免不了實(shí)驗(yàn),但是在實(shí)際的電力控制系統(tǒng)中進(jìn)行實(shí)驗(yàn)是不現(xiàn)實(shí)的,為此我們?cè)O(shè)計(jì)一種電力控制系統(tǒng)信息安全實(shí)驗(yàn)平臺(tái),實(shí)驗(yàn)平臺(tái)能進(jìn)行模糊測(cè)試以及各種信息安全攻擊實(shí)驗(yàn)。
2 實(shí)驗(yàn)平臺(tái)設(shè)計(jì)
電力控制系統(tǒng)信息安全實(shí)驗(yàn)平臺(tái)主要有400V、220V電源,空氣開關(guān),交直流接觸器,控制器(西門子及歐姆龍PLC),被控對(duì)象(電機(jī)、指示燈、智能Wi-Fi網(wǎng)關(guān)),防護(hù)模塊(工業(yè)網(wǎng)關(guān))以及攻擊端(PC,U盤)等組成。PLC控制器以及被控對(duì)象通過工業(yè)網(wǎng)關(guān)與外部交換機(jī)及上位機(jī)隔離,通信數(shù)據(jù)經(jīng)過工業(yè)網(wǎng)關(guān)過濾。拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 實(shí)驗(yàn)平臺(tái)拓?fù)浣Y(jié)構(gòu)
可編程邏輯控制器(PLC)具有耐用、穩(wěn)定性強(qiáng)、高魯棒性等優(yōu)點(diǎn),非常適合工業(yè)控制系統(tǒng)環(huán)境。平臺(tái)中PLC的通信協(xié)議是基于Modbus/TCP的西門子私有協(xié)議S7,上位機(jī)通過該協(xié)議和PLC通信,控制電動(dòng)機(jī)及指示燈等負(fù)荷的正常運(yùn)行。該實(shí)驗(yàn)平臺(tái)中,實(shí)驗(yàn)對(duì)象主要包括電動(dòng)機(jī),指示燈,閥門等。
防護(hù)模塊是基于工業(yè)網(wǎng)關(guān)內(nèi)置工業(yè)通訊協(xié)議的防護(hù)模式,通過配置工業(yè)網(wǎng)關(guān)協(xié)議過濾規(guī)則,對(duì)通信數(shù)據(jù)進(jìn)行深度過濾。規(guī)則可以根據(jù)不同的通信協(xié)議,配置相關(guān)過濾規(guī)則。例如,該實(shí)驗(yàn)是基于Modbus/TCP,可以選擇該協(xié)議進(jìn)行規(guī)則配置。通常工業(yè)通訊協(xié)議基于常規(guī)TCP/IP協(xié)議在應(yīng)用層的高級(jí)開發(fā),本實(shí)驗(yàn)平臺(tái)就是基于常規(guī)TCP/IP在應(yīng)用層的高級(jí)開發(fā)的Modbus/TCP協(xié)議上的隔離防護(hù)平臺(tái)。當(dāng)數(shù)據(jù)包經(jīng)過防護(hù)模塊時(shí),會(huì)對(duì)其進(jìn)行深度包檢測(cè),檢驗(yàn)合格讓其通過,不合格直接丟棄。
攻擊端一般為PC機(jī)或者U盤等,先通過Wireshark抓包分析協(xié)議數(shù)據(jù)包,然后偽造變異數(shù)據(jù),再和PLC建立連接,發(fā)送數(shù)據(jù)包使其執(zhí)行錯(cuò)誤的指令,從而攻擊成功。U盤攻擊原理大致一樣,U盤里會(huì)存在一個(gè)會(huì)自執(zhí)行的程序,會(huì)改變PLC的輸出。或者通過拒絕服務(wù)攻擊來(lái)對(duì)PLC進(jìn)行攻擊。部分程序如圖2所示。
圖2 偽造數(shù)據(jù)包攻擊程序
該程序就是通過偽造數(shù)據(jù)來(lái)對(duì)PLC進(jìn)行攻擊的,最終使PLC該亮的點(diǎn)熄滅了。
3 防火墻模塊設(shè)計(jì)
防火墻模塊硬件主要是西門子的工業(yè)網(wǎng)關(guān),能夠針對(duì)工業(yè)控制系統(tǒng)通信協(xié)議進(jìn)行深度包檢測(cè),可以對(duì)過濾規(guī)則進(jìn)行配置。主要包括通信協(xié)議端口號(hào)檢測(cè)、協(xié)議標(biāo)識(shí)符檢測(cè)、功能碼檢測(cè)、數(shù)據(jù)長(zhǎng)度及PLC輸入輸出線圈地址檢測(cè),通過這些過濾規(guī)則的配置,大大減少控制器被攻擊成功的可能性。
Modbus/TCP協(xié)議采用客戶端/服務(wù)器模式通信,正常通信時(shí)是使用服務(wù)器的502[9]端口通信,對(duì)于外來(lái)的數(shù)據(jù)包來(lái)說(shuō),目的端口應(yīng)是502,若攻擊數(shù)據(jù)修改了目的端口,則可能會(huì)造成通信故障,使控制器無(wú)法正常工作。端口號(hào)模塊則會(huì)有效地保證通信時(shí)服務(wù)器端口選擇502,保證正常通信,避免故障發(fā)生。Modbus/TCP協(xié)議是應(yīng)用層協(xié)議,其協(xié)議頭部有確定的協(xié)議標(biāo)識(shí)符,協(xié)議表示模塊通過對(duì)應(yīng)用層協(xié)議的解析,正確識(shí)別協(xié)議標(biāo)識(shí)符,可以防止攻擊數(shù)據(jù)包偽裝成其他協(xié)議進(jìn)行通信從而造成系統(tǒng)故障。不同的功能碼對(duì)應(yīng)不同的操作,在實(shí)際工業(yè)環(huán)境中,合法的功能碼是被預(yù)先設(shè)定的,所以當(dāng)攻擊數(shù)據(jù)包企圖通過修改功能碼來(lái)修改控制器的動(dòng)作從而造成故障時(shí),功能碼模塊就可以有效的防護(hù),保證只有合法功能碼通過。對(duì)于不同的功能碼,數(shù)據(jù)包的長(zhǎng)度是不一樣的,但是對(duì)于確定的某個(gè)功能碼,數(shù)據(jù)包的長(zhǎng)度是唯一的,所以我們通過對(duì)協(xié)議應(yīng)用層數(shù)據(jù)的深度包解析,對(duì)應(yīng)的功能碼我們通過數(shù)據(jù)長(zhǎng)度模塊做防護(hù),就能防止攻擊數(shù)據(jù)通過修改數(shù)據(jù)包長(zhǎng)度造成控制器故障的問題。防火墻數(shù)據(jù)過濾規(guī)則配置如圖3所示。
PLC中線圈地址是有范圍的,即有線圈地址的上限和下限,攻擊數(shù)據(jù)通過修改線圈地址范圍造成控制器錯(cuò)誤操作,線圈地址模塊就是防護(hù)這種攻擊,保證正常的通信。首先防護(hù)模塊可以選擇開啟或者不開啟,即數(shù)據(jù)直接通過還是必須經(jīng)過預(yù)先設(shè)定好的防護(hù)模塊,檢測(cè)過后再通過。其次,流程圖中的五個(gè)防護(hù)模塊只要其中任何一個(gè)防護(hù)模塊檢測(cè)數(shù)據(jù)異常,此數(shù)據(jù)就會(huì)被丟棄,只有通過所有防護(hù)模塊后,數(shù)據(jù)才能夠被控制器接收到,實(shí)現(xiàn)通信。
圖3 數(shù)據(jù)包深度過濾流程圖
4 信息安全實(shí)驗(yàn)平臺(tái)性能測(cè)試
電力控制系統(tǒng)信息安全實(shí)驗(yàn)平臺(tái)實(shí)物圖如圖4所示,筆者在該平臺(tái)上進(jìn)行了偽造數(shù)據(jù)包攻擊實(shí)驗(yàn)和模糊測(cè)試,及拒絕服務(wù)攻擊實(shí)驗(yàn)。
圖4 實(shí)驗(yàn)平臺(tái)部分實(shí)物圖
4.1 偽造數(shù)據(jù)包攻擊實(shí)驗(yàn)
攻擊PLC控制器,先使用Wireshark抓包分析協(xié)議數(shù)據(jù)包,然后偽造變異數(shù)據(jù),再和PLC建立連接,發(fā)送數(shù)據(jù)包使其執(zhí)行錯(cuò)誤的指令,使PLC控制器出現(xiàn)故障,有可能停止運(yùn)轉(zhuǎn)或者不按正常方式運(yùn)轉(zhuǎn),對(duì)PLC及其被控對(duì)象造成不可預(yù)知的破壞。從而攻擊成功。U盤攻擊原理大致一樣,U盤里會(huì)存在一個(gè)會(huì)自執(zhí)行的程序,會(huì)改變PLC的輸出。由信息安全防護(hù)措施可知,所有的數(shù)據(jù)包必須通過防火墻才能到達(dá)PLC控制端。若防護(hù)模塊沒有開啟,則默認(rèn)通過所有數(shù)據(jù)包,當(dāng)偽造的數(shù)據(jù)包到達(dá)PLC控制器,PLC會(huì)出現(xiàn)故障,負(fù)責(zé)監(jiān)控PLC工作狀態(tài)的PLC監(jiān)控端也會(huì)出現(xiàn)相應(yīng)的提示;若防護(hù)模塊開啟,并通過配置端進(jìn)行數(shù)據(jù)包過濾規(guī)則配置。配置完成后,該防護(hù)模塊就能進(jìn)行數(shù)據(jù)包過濾,實(shí)現(xiàn)嚴(yán)格的防護(hù)功能,當(dāng)含有攻擊的數(shù)據(jù)包到達(dá)防護(hù)模塊,防護(hù)模塊會(huì)對(duì)數(shù)據(jù)包進(jìn)行深度檢測(cè),就會(huì)被它直接丟棄,拒絕非法數(shù)據(jù)包的通過。只有滿足協(xié)議規(guī)則并且合理的數(shù)據(jù)包才能讓其通過。
4.2 fuzzing實(shí)驗(yàn)
在該實(shí)驗(yàn)平臺(tái)上還可以進(jìn)行模糊測(cè)試,漏洞挖掘?qū)嶒?yàn),通過配置參數(shù),測(cè)試機(jī)或漏洞挖掘設(shè)備向被測(cè)設(shè)備(控制器)發(fā)送測(cè)試數(shù)據(jù)包,并記錄導(dǎo)致控制器異常的數(shù)據(jù)包,然后對(duì)其進(jìn)行分析,為什么會(huì)導(dǎo)致異常,是不是偶然的,最終才能確定是不是漏洞。模糊測(cè)試的部分程序如圖5所示。
圖5 fuzzing測(cè)試部分程序
4.3 拒絕服務(wù)攻擊(DoS)實(shí)驗(yàn)
該實(shí)驗(yàn)平臺(tái)可以做PLC拒絕服務(wù)攻擊實(shí)驗(yàn)。 DoS[10]主要通過對(duì)PLC控制器發(fā)送大量不合法的請(qǐng)求連接數(shù)據(jù)包占用連接資源,造成PLC控制器故障甚至于斷開網(wǎng)絡(luò),使監(jiān)控端無(wú)法收到控制器返回的信號(hào),也無(wú)法對(duì)控制器進(jìn)行控制,造成無(wú)法預(yù)知的后果。由信息安全防護(hù)措施可知,所有的數(shù)據(jù)包必須通過防護(hù)模塊才能到達(dá)PLC控制端。若防護(hù)模塊沒有開啟,則默認(rèn)通過所有數(shù)據(jù)包,當(dāng)大量的請(qǐng)求連接數(shù)據(jù)包到達(dá)PLC控制器,PLC會(huì)出現(xiàn)故障并斷網(wǎng),負(fù)責(zé)監(jiān)控PLC工作狀態(tài)的PLC監(jiān)控端無(wú)法獲取PLC控制器的運(yùn)行狀態(tài);若防護(hù)模塊開啟,并通過配置端進(jìn)行數(shù)據(jù)包過濾規(guī)則配置。配置完成后,該防護(hù)模塊就能進(jìn)行數(shù)據(jù)包過濾,實(shí)現(xiàn)嚴(yán)格的防護(hù)功能,當(dāng)不合法[11]的數(shù)據(jù)包到達(dá)防護(hù)模塊,就會(huì)被它直接丟棄,拒絕不合法的請(qǐng)求數(shù)據(jù)包,大量不合理的請(qǐng)求連接數(shù)據(jù)包是不可能通過防火墻的,只有合法的請(qǐng)求包才能通過。
5 結(jié)語(yǔ)
本文設(shè)計(jì)并實(shí)現(xiàn)了一種電力控制系統(tǒng)信息安全實(shí)驗(yàn)平臺(tái),該平臺(tái)對(duì)開展電力控制系統(tǒng)信息安全研究有很大意義。該平臺(tái)能夠向人們展示電力安全問題嚴(yán)重性和重要性,真正感受到信息安全問題研究的迫切。并且,在該實(shí)驗(yàn)平臺(tái)上,還可以進(jìn)行攻擊實(shí)驗(yàn),模糊測(cè)試,漏洞挖掘等電力信息安全實(shí)驗(yàn)。本實(shí)驗(yàn)平臺(tái)還有很多可以改進(jìn)的地方,比如系統(tǒng)太小,距離真正的電力系統(tǒng)有很大的差別,負(fù)荷種類不夠多,控制器種類也不夠多。未來(lái)我們將會(huì)建立一個(gè)10kV,十幾個(gè)節(jié)點(diǎn)的小型電力系統(tǒng),盡量模擬真正的電力系統(tǒng),為電力系統(tǒng)安全問題研究提供一個(gè)真正的實(shí)驗(yàn)環(huán)境,而不總是仿真實(shí)驗(yàn)。
★基金項(xiàng)目:國(guó)家自然科學(xué)基金(61772327),上海自然科學(xué)基金(15110500700),浙江大學(xué)工業(yè)控制技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室開發(fā)課題(ICT1800380),上海電力學(xué)院智能電網(wǎng)產(chǎn)學(xué)研中心項(xiàng)目(A-0009-17-002-05),上海科委地方能力建設(shè)項(xiàng)目(16ZR1436300)。
作者簡(jiǎn)介
王 勇 (1973-),男,河南確山人,教授,現(xiàn)就職于上海電力學(xué)院信息安全系,主要從事電力信息安全、工業(yè)控制系統(tǒng)信息安全研究。
高志遠(yuǎn)(1992-),男,河南南陽(yáng)人,碩士研究生,現(xiàn)就讀于上海電力學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,主要從事工業(yè)控制系統(tǒng)信息安全研究。
劉金永 (1991-),男,河南平頂山人,碩士研究生,現(xiàn)就讀于上海電力學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,主要從事工業(yè)控制系統(tǒng)入侵檢測(cè)研究。
王 相(1994-),男,江蘇無(wú)錫人,碩士研究生,現(xiàn)就讀于上海電力學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,主要從事電力系統(tǒng)通信協(xié)議攻擊檢測(cè)關(guān)鍵技術(shù)方面的研究。
李雙飛(1996-),男,回,河南周口人,本科,現(xiàn)就讀于上海電力學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,主要從事工業(yè)控制系統(tǒng)信息安全研究。
邵猷海(1994-),男,江西九江人,碩士研究生,現(xiàn)就讀于上海電力學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,主要從事工業(yè)控制系統(tǒng)信息安全研究。
翟 昊(1997-),男,上海人,本科,現(xiàn)就讀于上海電力學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院。
劉 蔚(1988-),女,上海人,本科,現(xiàn)就職于上海云物信息技術(shù)有限公司,主要從事數(shù)據(jù)安全分析。
參考文獻(xiàn):
[1] 劉烴, 孫鴻, 劉楊, 等. 智能電網(wǎng)安全實(shí)驗(yàn)平臺(tái): 設(shè)計(jì)、實(shí)現(xiàn)與仿真[J]. 武漢大學(xué)學(xué)報(bào) ( 理學(xué)版 ), 2014, 60 (5) : 413 - 418.
[2] 芮新花. 電力系統(tǒng)繼電保護(hù)仿真實(shí)驗(yàn)臺(tái)的研制[D]. 河海大學(xué), 2007.
[3] 湯涌. 電力系統(tǒng)安全穩(wěn)定綜合防御體系框架[J]. 電網(wǎng)技術(shù), 2012, 36 (8) : 1 - 5.
[4] 戚宇林, 劉文穎, 楊以涵, 等. 電力信息的網(wǎng)絡(luò)化傳輸是電力系統(tǒng)安全的重要保證[J]. 電網(wǎng)技術(shù), 2004, 28 (9) : 58 - 61.
[5] 山東工業(yè)大學(xué), 鄒森. 電力系統(tǒng)安全分析與控制[M]. 水利電力出版社, 1995.
[6] 劉念, 謝馳, 滕福生. 電力系統(tǒng)安全穩(wěn)定問題研究[J]. 四川電力技術(shù), 2004, 27 (1) : 1 - 6.
[7] 焦紅日. 電力系統(tǒng)安全監(jiān)控的理論及方法研究[J]. 工程技術(shù): 全文版: 00142 - 00142.
[8] 唐桃波, 夏云非, 魯文, 等. 美國(guó)近年的停電事故及對(duì)我國(guó)電力系統(tǒng)安全穩(wěn)定運(yùn)行的啟示[J]. 電力建設(shè), 2003, 24 (11) : 2 - 4.
[9] 許濤. 電力系統(tǒng)安全穩(wěn)定的智能挖掘[D]. 華北電力大學(xué), 2004.
[10] 張超. 電力系統(tǒng)安全穩(wěn)定綜合防御體系框架[J]. 硅谷, 2014 (24) : 230 - 230.
[11] 賈長(zhǎng)朱. 從美、加停電事故看我國(guó)電力系統(tǒng)安全[J]. 現(xiàn)代電力, 2004, 21 (3) : 70 - 73.
摘自《工業(yè)控制系統(tǒng)信息安全專刊(第五輯)》