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