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