蘇 暢,熊申鐸,羅安琴,張 帥,龔鋼軍,劉 韌,劉文彬,吳秋新
(1.華北電力大學 北京市能源電力信息安全工程研究中心,北京 102206;2.北京信息科技大學,北京 100192;3.北京卓識網安技術股份有限公司,北京 102206)
工業(yè)控制系統(tǒng)(Industrial Control System,ICS)一般由SCADA、DCS、PLC、RTU等組成,廣泛應用于電力、石油化工、軌道交通等涉及國計民生的重要領域[1]。隨著信息化與工業(yè)化的深入融合,以及“互聯(lián)網+”與“智慧能源”、“智慧城市”、“智能制造2025”等的快速推進,最初完全封閉的ICS越來越不能滿足管理控制一體化的生產需求,ICS原有相對封閉的使用環(huán)境逐漸被打破,開放性和互聯(lián)性越來越強,信息安全問題已經從傳統(tǒng)的互聯(lián)網范圍延伸到了工業(yè)控制領域[2-3],物理隔離不再絕對安全,近幾年連續(xù)出現(xiàn)了專門針對ICS攻擊的“震網”、“duqu”和“火焰”等病毒,給伊朗等一些國家的關鍵基礎設施造成了巨大破壞,也為各國工控領域信息安全敲響了警鐘[4]。目前,我國已經形成了以電力系統(tǒng)為代表的世界上系統(tǒng)規(guī)模最大、結構層次最多、復雜程度最高的ICS[5-6]。我國的能源電力行業(yè)安全防護水平差異很大,其中,電網企業(yè)的信息安全防護水平高于發(fā)電企業(yè)。發(fā)電企業(yè)的ICS普遍存在工控協(xié)議安全性差、系統(tǒng)主動防御水平低、純物理隔離防護致使系統(tǒng)互聯(lián)互通性不足等問題。而且,由于發(fā)電企業(yè)歷來更重視工業(yè)生產的穩(wěn)定性與連續(xù)性,致使生產控制系統(tǒng)的升級改造頻次少、系統(tǒng)設備老化嚴重、生產控制系統(tǒng)與信息安全防護設備匹配性差,形成了“安全問題多、極易出問題、但無人敢動”的局面,因此,亟需在現(xiàn)有安全防護體系、安全監(jiān)測體系、安全響應體系的基礎上,構建電廠典型仿真驗證模型,開發(fā)基于“可信、可管、可控”環(huán)境下的仿真演練平臺。
電廠ICS具有很強的復雜性和專用性,傳統(tǒng)IT系統(tǒng)風險評估中采用的漏洞掃描、滲透測試等入侵方法會對ICS系統(tǒng)運行產生影響[7-8]。仿真方法以其安全性、經濟性和可重復性等優(yōu)點成為ICS安全研究的一種重要手段。目前業(yè)內多以軟件仿真進行測試,但要想分析各種計算機病毒和惡意軟件對ICS信息物理系統(tǒng)所造成的真實的影響有著相當大的難度,而且軟件無法完全仿真與硬件相關的部分,不能完全代替硬件仿真,軟件仿真多針對網絡攻擊,無法及時發(fā)現(xiàn)隱蔽性和滯后性較強的其他類型攻擊,缺乏與真實網絡設備組件的交互,不能真實反映惡意攻擊對ICS中的信息物理系統(tǒng)進行破壞的情況。因此,本文依照計算機網絡、工控安全、虛擬化與半實物仿真等技術,提出了基于LabVIEW和MATLAB的ICS半實物仿真模型。
仿真中將實際控制對象引入到仿真控制系統(tǒng)的方法叫做半實物仿真,它具有開發(fā)周期短、可靠性強、置信度高及研發(fā)經費少等優(yōu)點,而且實物部分放入仿真中以系統(tǒng)整體性指標進行檢驗,更具有真實性,也更符合工業(yè)現(xiàn)場生產業(yè)務的連續(xù)性和穩(wěn)定性的保障需求。文獻[9]采取半實物建模的虛實結合的動態(tài)仿真方法,構造可以用來測試主機攻防技術的SCADA主機仿真靶場,通過軟件實現(xiàn)了機組啟停、模擬量信號、正常運行以及故障等功能,并利用真實攻擊以及防御實驗驗證了靶場用于測試的可行性,其系統(tǒng)模型的響應與ICS中的實際物理過程一致,而且系統(tǒng)子模塊能自由取舍、易于修改。相對于純軟件仿真,半實物仿真可以更加清晰、真實地再現(xiàn)ICS工作過程、發(fā)現(xiàn)存在的信息安全問題,以達到靈活、主動安全防御的實際效果。
本文參照IEC62264標準的層次結構模型[10],同時將SCADA系統(tǒng)、DCS系統(tǒng)和PLC系統(tǒng)的模型的共性進行抽象,將通用ICS按功能劃分為5個層次。具體如圖1所示。
圖1 ICS層次架構
圖1中,ICS具體分為企業(yè)資源層、生產管理層、過程監(jiān)控層、現(xiàn)場控制層和現(xiàn)場設備層。企業(yè)資源層和生產管理層主要與工業(yè)運行管理有關,稱之為管理區(qū);過程監(jiān)控層、現(xiàn)場控制層和現(xiàn)場設備層主要與現(xiàn)場控制相關,稱為控制區(qū)。本文針對ICS參考模型控制區(qū)所對應的三層架構開展半實物仿真測試,在模型中利用MATLAB來模擬電廠現(xiàn)場實際物理過程,用LabVIEW軟件構造監(jiān)控系統(tǒng)操作界面,通過OPC協(xié)議及共享變量引擎SVE實現(xiàn)LabVIEW與MATLAB之間的實時數(shù)據(jù)交換,同時通過控制PLC來對現(xiàn)場數(shù)據(jù)進行采集,構建了ICS半實物仿真模型,實現(xiàn)發(fā)電廠ICS關鍵設備運行狀態(tài)模擬、數(shù)據(jù)采集、遠程與現(xiàn)場控制等功能,可有效驗證ICS工業(yè)控制過程及其存在的安全漏洞。
在圖1控制區(qū)中,上層是過程監(jiān)控層,有數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)SCADA和人機交互界面HMI,利用圖形化界面實現(xiàn)系統(tǒng)和用戶之間信息的動態(tài)交互,操作員可以看到仿真機運行的實時信息并進行及時操作。中間層為過程控制層,使用德國西門子公司S7系列PLC,負責現(xiàn)場信號接入接出,與工控機、HMI等通信,并完成信號采集、處理標準的控制算法。底層是現(xiàn)場設備層,現(xiàn)場設備是基于MATLAB/SIMULINK的現(xiàn)場全物理過程仿真模型,通過OPC協(xié)議及共享變量引擎SVE實現(xiàn)MATLAB與LabVIEW之間的通信。本文所設計的半實物仿真系統(tǒng)架構如圖2所示。
圖2 工控系統(tǒng)半實物仿真系統(tǒng)架構
本系統(tǒng)可以分成仿真和監(jiān)控兩個部分:底層仿真部分,MATLAB對現(xiàn)場設備進行仿真與LabVIEW進行數(shù)據(jù)交互,并把信號通過PLC傳至上位機HMI等設備;上層監(jiān)控部分,上位機可以通過指令對PLC進行操作,實現(xiàn)對控制對象運行的在線監(jiān)控。
在LabVIEW中調用MATLAB/SIMULINK的方法有利用動態(tài)數(shù)據(jù)交換DDE技術、動態(tài)鏈接庫DLL技術、ActiveX技術[11]。本文用過程控制對象連接與嵌入協(xié)議(Object Linking and Embedding for Process Control,OPC)及其共享變量引擎SVE來解決兩者之間的通信問題。SVE為創(chuàng)建一個與SIMULINK模型連接的用戶界面提供了一種方法。使用SVE,可以在同一個程序框圖的不同循環(huán)之間或者網絡上的不同VI之間共享數(shù)據(jù),當要添加共享變量到一個LabVIEW項目后,可以將其拖至VI程序框圖中進行讀寫操作,然后進行共享變量網絡發(fā)布,網絡發(fā)布的共享變量通過SVE在不同的VI之間通信,具體的SVE利用NI-PSP數(shù)據(jù)傳輸協(xié)議來允許用戶讀寫數(shù)據(jù)[12-13]。圖3具體描述了MATLAB與LabVIEW之間的信息交互。共享變量部署到SVE上,網絡上的任何節(jié)點都可以讀寫SVE發(fā)布的共享變量。當寫入到一個共享變量節(jié)點,LabVIEW將這個新值發(fā)送給部署和托管這個變量的SVE,SVE處理環(huán)路發(fā)布這個值,從而MATLAB可以得到更新后的變量值。
圖4 三相同步電機MATLAB程序框圖
本文以發(fā)電廠典型的三相同步電機的仿真為例設計了一個由三相同步發(fā)電機、三相電壓電流測量裝置、三相RLC負載以及三個斷路器組成的Simulink仿真模型,如圖4所示。斷路器的作用是電流、電壓速斷保護,當流過的電流大于整定值時斷路器跳。斷路器與三相并聯(lián)負載相連,可以進行邏輯判斷,產生控制脈沖,能夠在規(guī)定的時間內承載和開斷異常回路條件下的電流,對過載、短路、欠壓有著速斷保護的作用。啟動仿真之后,可以在LabVIEW中看到仿真實時數(shù)據(jù),如轉速、電流、電壓、功率等。
圖3 共享變量在MATLAB與LabVIEW之間的交互流程圖
由于ICS存在漏洞且缺乏防護措施,當外來攻擊源攻破工業(yè)網絡時,對SCADA主站系統(tǒng)或PLC設備完全接管,從而下發(fā)錯誤指令或偽造上傳的數(shù)據(jù);對系統(tǒng)感染病毒和植入木馬程序,使其工作異常;隱秘竊取其核心數(shù)據(jù),而不被發(fā)現(xiàn)[15]。2010年爆發(fā)的“震網”病毒就是典型的通過病毒感染PLC設備,實現(xiàn)異常控制現(xiàn)場物理運行裝置,并同時偽造現(xiàn)場上傳數(shù)據(jù)為正常狀態(tài),從而欺騙上位機SCADA系統(tǒng)。因此,為了更好地模擬測試電廠ICS系統(tǒng)的信息安全問題,可根據(jù)以上方法搭建一個虛實結合的ICS信息安全半實物仿真模型驗證平臺,從而可以具體再現(xiàn)工控網絡攻防情景,如圖5所示。
圖5示例結合半實物仿真平臺,復現(xiàn)發(fā)電廠工控網絡典型拓撲結構,突出發(fā)電廠PLC的核心控制功能。驗證測試系統(tǒng)中部署了兩套不同的PLC,一套為低版本未加固PLC-a,存在一些公開漏洞和后門賬戶,開啟Telnet服務,通過交換機直接與上位機SCADA操作員站相連,另一套為高版本升級加固后PLC-b,已禁止Telnet、FTP、HTTP等服務,通過防火墻、交換機與上位機SCADA操作員站相連。攻擊分為以下兩個層次:
(1)通過對SCADA軟件植入木馬來實現(xiàn)對SCADA軟件的接管,同時利用PLC-a的漏洞,向其下發(fā)停止信號使其通信模塊暫停(如:構建Modbus的playload代碼:04 8b 00 00 00 06 ff 08 00 04 00 00,利用UDP的17185端口讓PLC-a重啟),如圖6(a)所示。
(2)采用DDoS攻擊,不斷地向PLC-a發(fā)送垃圾指令,造成PLC-a設備拒絕服務,上位機與PLC-a設備通信中斷,但攻擊結束后,通信自動恢復正常,如圖6(b)所示。
同理對PLC-b進行上述攻擊,未發(fā)現(xiàn)監(jiān)控系統(tǒng)的異常情況,如圖6(c)所示,測試中發(fā)現(xiàn),由于系統(tǒng)設備自身版本、設備配置和策略配置的差異性,PLC-a的防攻擊能力要低于經加固升級后的PLC-b,因此具體對二者的攻擊行為和攻擊難度均有較大差異。通過攻擊測試和仿真系統(tǒng)的現(xiàn)象展示,切實反映出工業(yè)控制系統(tǒng)的漏洞與風險是能防范的、可控制的。
圖6 同攻擊下三相同步電機電流運行圖
本文研究了ICS半實物仿真平臺的架構,驗證了通過OPC技術、共享變量等技術建立MATLAB與LabVIEW之間通信的可行性,在實驗室條件下,采用MATLAB模擬三相同步電機發(fā)電系統(tǒng),并在LabVIEW中對其運行情況進行有效的監(jiān)控,直觀顯示在三相同步負載下實時的電流、電壓、功率以及轉速的情況,驗證了仿真模型的聯(lián)通性。最后,本文將半實物仿真模型與現(xiàn)有工控安全漏洞相結合,針對平臺模型難以重現(xiàn)的工控安全問題采用虛擬化手段,建立半實物仿真模型,切實模擬發(fā)電廠實際問題,再現(xiàn)了真實現(xiàn)場異常情況,這也對ICS信息安全防護提供了一種新的思路。