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