徐新國1 朱廷劭2 康衛1 孫保輝1 房志奇1 王焱1
(1. 中國電子信息產業集團有限公司第六研究所,北京 100083;2. 中國科學院研究生院 信息科學與工程學院,北京 100190)
1.引言
工業控制系統包括數據采集與監控系統(SCADA)、分布式控制系統(DCS)、可編程邏輯控制器(PLC)、遠程終端(RTU)、智能電子設備(IED)等,以及確保各組件通信的接口技術[1]。目前廣泛應用于電力、水利、污水處理、石油化工、交通運輸、制藥以及大型制造行業,是國民經濟的重要組成部分。
據權威工業安全事件信息庫RISI(Repository of Security Incidents)統計[2],截止2011年10月,全球已發生200余起工業控制系統的嚴重安全事件。工業控制系統信息安全事關工業生產運行、國家經濟安全和人民生命財產安全,一旦出現工業事故,將對正常生產運行和國家經濟安全造成重大損害。
1984年12月3日凌晨,在印度的Bhopal,45噸甲烷異氰酸脂重毒氣從聯合炭化蟲劑制造廠泄漏并擴散到附近居民區,造成至少2500人死亡,25萬人的健康受到影響。1986年4月,前蘇聯切爾諾貝利核電發生爆炸,導致世界上最嚴重的核事故。
分析以上事故原因,都涉及到控制系統的防危問題。印度毒氣泄露事件調查報告顯示[3],610號儲槽的壓力在15分鐘內由2psig上升到10 psig,由于換班原因,新操作員并未察覺到壓力突變異常,正常壓力大約在2~25 psig之間,由于壓力突升而未察覺,導致毒氣泄漏。1986年切爾諾貝利核電站爆炸事故調查報告顯示[4],由于核電站人員多次違規操作,導致反應堆能量增加,發生爆炸。
隨著高新技術的廣泛應用,工業控制系統越來越復雜,錯誤越難檢測和避免,由此帶來的安全隱患也越多,對系統的防危要求越來越迫切。工控系統對防危性的要求包含以下幾個方面[5]:
整體性:工控系統中對關鍵設備的不同操作之間存在相互依賴關系,要將其視為一個整體考慮。
通用性:為達到資源共享以及實現不同工控系統間的移植,需把系統功能實現與防危機制分離開,提高防危機制的通用性。
自適應性:系統內部環境發生改變時,應采用某種自適應手段,適應新的環境來滿足用戶的需求。
隔離性:監控對關鍵設備的操作,拒絕可能導致重大人身和財產損失的操作命令,實現應用軟件與系統設備的隔離,保證工控系統的防危性。
面對越來越復雜的工控系統和愈來愈重要的防危性要求,開展針對現有工控系統的防危機制研究具有巨大的科學意義和應用價值。
2.相關工作介紹
近年來很多重大事故的發生都可以歸結為工控系統在防危性方面的疏忽或缺失,事故主要來源于系統的設計缺陷及操作人員的誤操作,也使工控系統失去了可信性。
1985年,Laprie提出了dependability(為與可靠性reliability相區別,譯為可信性)概念,用它來度量計算機系統的服務質量[6]。如圖1所示可信性是一個復雜的綜合性概念,具有豐富的內涵,它所包含的特征有:可用性(availability)、可靠性(reliability)、防危性(safety)、安全性(security)和可維護性(maintainability)五個特征量。1995年Laprie把security分解為confidentiality和integrity[7]。
圖1 可信性的特征
防危性與可用性、可靠性、可維護性、安全性的區別[8]如表1所示。防危強調的是防止危險發生,即防止系統給生命財產及生態環境造成災難性破壞。防危技術主要是對系統內部錯誤的偵測、異常處理以及誤操作的避免,不同于可信性的其它特性。
目前實現防危的主要技術手段有防危核與防危殼兩種。
防危核(Safety Kernel)最早由安全學家 Leveson[9]提出,其原理是根據實際系統的工作特點定制的一套防危策略,驗證所有對關鍵設備的操作請求,只有通過驗證的操作請求才可到達硬件進行操作,拒絕所有未經過驗證的操作。防危核成功隔離了應用請求與關鍵設備,避免用戶誤操作引起的系統錯誤,達到對系統的防危保護。
防危殼(Safety Shell)是由Katwijk 和 Zalewski[10]提出的防危技術,其技術原理與防危核類似,是防危核技術的一種功能更為強大的擴展。防危殼的防危原理是在系統控制器與關鍵設備之間安插一個隔離層,所有操作請求都必須經過防危殼的驗證。防危殼主要由狀態監視器、時間監視器、異常處理子模塊組成。狀態監視器是保證系統防危性最重要的關鍵子模塊,其作用是負責和底層I/O接口交互,驗證所有操作請求,并負責實時監測設備的工作狀態,一旦發現異常,則發送相應的操作命令來調整系統狀態,同時報告錯誤。時間監視器用于檢驗設備命令是否在規定的時間內完成,保證了設備操作的實時性。異常處理器監視對設備的操作命令,拒絕錯誤的操作命令,并調用相應的錯誤處理程序。
防危核和防危殼是防危系統里最常用的兩種技術手段,將防危核與防危殼技術進行比較,可以發現兩種方式的基本原理都是相同的,即提供了設備操作與關鍵設備的隔離。不同點在于,防危核只提出了操作驗證的基本功能,而防危殼將防危策略細分為三個子模塊,子模塊擁有了單獨檢查設備狀態和保證命令時間限制等功能,降低了驗證整個防危策略的開銷。某種程度上,防危殼可以看作是防危核技術的一種擴展變型和另一種實現方式。
表1 可信特征的區別