文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)05-0087-04
工業(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ū),造成至少2 500人死亡,25萬(wàn)人的健康受到影響。1986年4月,前蘇聯(lián)切爾諾貝利核電發(fā)生爆炸,導(dǎo)致世界上最嚴(yán)重的核事故。
分析以上事故原因發(fā)現(xiàn),每起事故都涉及到控制系統(tǒng)的防危問(wèn)題。印度毒氣泄露事件調(diào)查報(bào)告顯示[3],610號(hào)儲(chǔ)槽的壓力在15 min內(nèi)由2 psig上升到10 psig。由于換班原因,新操作員并未察覺(jué)到壓力突變異常,正常壓力大約在2~25 psig之間。而當(dāng)壓力突升而未察覺(jué)時(shí),則會(huì)導(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]:
(1)整體性:工控系統(tǒng)中對(duì)關(guān)鍵設(shè)備的不同操作之間存在相互依賴關(guān)系,要將其視為一個(gè)整體考慮。
(2)通用性:為達(dá)到資源共享以及實(shí)現(xiàn)不同工控系統(tǒng)間的移植,需把系統(tǒng)功能實(shí)現(xiàn)與防危機(jī)制分離開,提高防危機(jī)制的通用性。
(3)自適應(yīng)性:系統(tǒng)內(nèi)部環(huán)境發(fā)生改變時(shí),應(yīng)采用某種自適應(yīng)手段,適應(yīng)新的環(huán)境來(lái)滿足用戶的需求。
(4)隔離性:監(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à)值。
1 相關(guān)研究介紹
近年來(lái)很多重大事故的發(fā)生都可以歸結(jié)為工控系統(tǒng)在防危性方面的疏忽或缺失,事故主要來(lái)源于系統(tǒng)的設(shè)計(jì)缺陷及操作人員的誤操作,也使工控系統(tǒng)失去了可信性。
1985年,Laprie提出了dependability(為與可靠性reliability相區(qū)別,譯為可信性)概念,以此度量計(jì)算機(jī)系統(tǒng)的服務(wù)質(zhì)量[6]。如圖1所示,可信性是一個(gè)復(fù)雜的綜合性概念,具有豐富的內(nèi)涵,它所包含的特征有:可用性(Availability)、可靠性(Reliability)、防危性(Safety)、安全性(Security)和可維護(hù)性(Maintainability) 5個(gè)特征量。1995年Laprie把Security分解為Confidentiality和Integrity[7]。
防危性與可用性、可靠性、可維護(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)求,只有通過(guò)驗(yàn)證的操作請(qǐng)求才可到達(dá)硬件進(jìn)行操作,拒絕所有未經(jīng)過(guò)驗(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)過(guò)防危殼的驗(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)方式。
2 防危分析
無(wú)論防危核還是防危殼,都只是把關(guān)鍵設(shè)備進(jìn)行隔離防危,而實(shí)際的工控系統(tǒng)是一個(gè)復(fù)雜的網(wǎng)絡(luò),各設(shè)備之間存在著相互依賴關(guān)系,對(duì)一個(gè)設(shè)備的操作勢(shì)必會(huì)對(duì)其他設(shè)備造成影響,針對(duì)獨(dú)立設(shè)備的防危往往達(dá)不到整體防危的要求。因此,針對(duì)整體性防危的要求,本文提出利用防危保護(hù)態(tài)以及有窮狀態(tài)機(jī)實(shí)現(xiàn)防危,如圖2實(shí)線所示。系統(tǒng)從正常工作狀態(tài)發(fā)展為事故,一般經(jīng)過(guò)多個(gè)狀態(tài),從警告、臨界到危險(xiǎn),直至事故。為了實(shí)現(xiàn)防危,借鑒容錯(cuò)理論,引入防危保護(hù)狀態(tài)(E),也就是在系統(tǒng)遇到危險(xiǎn)或在臨界情況下,通過(guò)防危機(jī)制進(jìn)入保護(hù)模式,在保護(hù)模式下系統(tǒng)可以通過(guò)自我調(diào)節(jié)回歸到正常模式。
用狀態(tài)轉(zhuǎn)化圖表示如圖2所示。圖中,A:正常狀態(tài);B:警告狀態(tài);C:臨界狀態(tài);D:危險(xiǎn)狀態(tài);F:事故狀態(tài);E:防危保護(hù)態(tài)。
危險(xiǎn)包括針對(duì)工業(yè)現(xiàn)場(chǎng)的和工控系統(tǒng)自身的,為了從危險(xiǎn)狀態(tài)(D)轉(zhuǎn)化到防危保護(hù)狀態(tài)(E),針對(duì)不同類型的危險(xiǎn),需要通過(guò)專家規(guī)則實(shí)時(shí)判斷工業(yè)現(xiàn)場(chǎng)的危險(xiǎn)狀況,或者通過(guò)降級(jí)服務(wù)對(duì)工控系統(tǒng)實(shí)施保護(hù)。為了從防危保護(hù)態(tài)(E)轉(zhuǎn)化為正常態(tài)(A),需要通過(guò)工控系統(tǒng)的合理調(diào)度,實(shí)現(xiàn)自身狀態(tài)的回歸,或者利用專家知識(shí)庫(kù)推薦工業(yè)現(xiàn)場(chǎng)的補(bǔ)救方案。
為了從臨界狀態(tài)(C)轉(zhuǎn)化為防危保護(hù)態(tài)(E),一方面需要對(duì)關(guān)鍵設(shè)備的情況進(jìn)行主動(dòng)預(yù)測(cè)和危險(xiǎn)預(yù)報(bào);另一方面,通過(guò)分析設(shè)備之間的相互影響關(guān)系,預(yù)測(cè)系統(tǒng)整體的風(fēng)險(xiǎn)。
針對(duì)出現(xiàn)報(bào)警(B)的情況,利用專家規(guī)則判斷危險(xiǎn)狀況,并根據(jù)專家規(guī)則中的處理辦法進(jìn)行相應(yīng)的操作,使得系統(tǒng)轉(zhuǎn)化為正常狀態(tài)(A)。
系統(tǒng)在正常運(yùn)行(A)期間,通過(guò)對(duì)關(guān)鍵設(shè)備的情況進(jìn)行預(yù)測(cè),防患于未然,使系統(tǒng)維持在正常狀態(tài)。
通過(guò)對(duì)狀態(tài)之間的操作進(jìn)行分析整理,可以得出下面一些主要的操作:
(1)通過(guò)分析設(shè)備之間的相互關(guān)系,預(yù)測(cè)系統(tǒng)整體風(fēng)險(xiǎn),即全局防危(a);
(2)通過(guò)對(duì)關(guān)鍵設(shè)備的情況進(jìn)行預(yù)測(cè),防患于未然,即主動(dòng)防危(b);
(3)利用專家規(guī)則進(jìn)行實(shí)時(shí)判斷和推薦,即實(shí)時(shí)防危(c);
(4)對(duì)工控系統(tǒng)實(shí)施保護(hù)并且實(shí)現(xiàn)狀態(tài)回歸,即自主防危(d)。
通過(guò)提供上面這些防危措施,就可以實(shí)現(xiàn)工控系統(tǒng)的防危,將工控系統(tǒng)從非正常狀態(tài)轉(zhuǎn)移到正常狀態(tài)。同時(shí)結(jié)合防危技術(shù),實(shí)現(xiàn)防危認(rèn)證。
3 基于數(shù)據(jù)挖掘的工控防危機(jī)制
針對(duì)現(xiàn)有的工業(yè)控制系統(tǒng),為加強(qiáng)其防危能力,本文提出以建立工控系統(tǒng)的全局防危機(jī)制為主線,通過(guò)數(shù)據(jù)預(yù)測(cè)技術(shù)實(shí)現(xiàn)對(duì)單點(diǎn)的主動(dòng)防危;通過(guò)建立工控系統(tǒng)復(fù)雜網(wǎng)絡(luò)模型,研究單點(diǎn)異常對(duì)其他節(jié)點(diǎn)的影響,實(shí)現(xiàn)對(duì)整個(gè)工控系統(tǒng)的全局防危;提供防危認(rèn)證,從而實(shí)現(xiàn)工控系統(tǒng)的防危。防危的體系結(jié)構(gòu)如圖3所示。
3.1全局防危
工業(yè)控制系統(tǒng)是一個(gè)復(fù)雜網(wǎng)絡(luò),系統(tǒng)內(nèi)各設(shè)備之間相互依賴和影響。根據(jù)工控系統(tǒng)現(xiàn)場(chǎng)環(huán)境、歷史數(shù)據(jù)和經(jīng)驗(yàn),建立工控系統(tǒng)復(fù)雜網(wǎng)絡(luò)模型,網(wǎng)絡(luò)中的節(jié)點(diǎn)表示系統(tǒng)中的設(shè)備或者關(guān)鍵采集點(diǎn),邊表示設(shè)備之間的關(guān)聯(lián)關(guān)系或風(fēng)險(xiǎn)傳遞關(guān)系。通過(guò)風(fēng)險(xiǎn)傳遞算法,此網(wǎng)絡(luò)可以很快收斂,達(dá)到穩(wěn)定狀態(tài),從而可以預(yù)測(cè)出某一個(gè)(或多個(gè))設(shè)備出現(xiàn)風(fēng)險(xiǎn)后系統(tǒng)中所有相關(guān)設(shè)備受影響的情況。通過(guò)此網(wǎng)絡(luò)模型可以做到對(duì)工控系統(tǒng)的整體風(fēng)險(xiǎn)預(yù)測(cè)和防危。
3.2 主動(dòng)防危
為了提高系統(tǒng)的安全性,應(yīng)該開展針對(duì)工控系統(tǒng)的趨勢(shì)預(yù)測(cè)。針對(duì)工業(yè)控制系統(tǒng)中設(shè)備的差異性,實(shí)現(xiàn)數(shù)據(jù)預(yù)測(cè)的通用性,構(gòu)造適合大部分實(shí)際應(yīng)用環(huán)境輸入向量的方法,使用迭代法最大限度地保留實(shí)時(shí)數(shù)據(jù)中的歷史信息,并結(jié)合系統(tǒng)的閉環(huán)反饋實(shí)現(xiàn)精確的多步預(yù)測(cè),實(shí)現(xiàn)滿足工控系統(tǒng)的高效率、高準(zhǔn)確率的預(yù)測(cè)算法。
3.3實(shí)時(shí)防危
工業(yè)控制系統(tǒng)對(duì)實(shí)時(shí)性要求很高,通過(guò)預(yù)設(shè)的規(guī)則和經(jīng)驗(yàn)的學(xué)習(xí)建立專家規(guī)則庫(kù)。由于專家規(guī)則的推理算法時(shí)間復(fù)雜度較高,為滿足工控系統(tǒng)的實(shí)時(shí)性要求,可以采用GPU并行處理技術(shù)。使用GPU并行處理技術(shù)有兩大好處:(1)降低計(jì)算時(shí)間,滿足工控系統(tǒng)的實(shí)時(shí)性要求;(2)解放CPU,使實(shí)時(shí)防危子系統(tǒng)基本不占用CPU資源。通過(guò)專家規(guī)則可以及時(shí)發(fā)現(xiàn)系統(tǒng)的異常節(jié)點(diǎn),通過(guò)預(yù)設(shè)的規(guī)則可以給出后續(xù)的補(bǔ)救方案,避免更大的損失,做到對(duì)系統(tǒng)的實(shí)時(shí)防危。
3.4自主防危
在系統(tǒng)處于超負(fù)荷情況下,采取合理的措施,在確保系統(tǒng)穩(wěn)定的前提下,通過(guò)優(yōu)化配置,實(shí)現(xiàn)系統(tǒng)的優(yōu)化運(yùn)行,確保系統(tǒng)自身的穩(wěn)定安全。自主防危從大的方面分為兩部分內(nèi)容:(1)系統(tǒng)監(jiān)控,監(jiān)視系統(tǒng)的運(yùn)行狀態(tài)以及各關(guān)鍵模塊的狀態(tài),包括進(jìn)程的狀態(tài)、優(yōu)先級(jí)、對(duì)于CPU和內(nèi)存的使用情況(包括數(shù)據(jù)采集模塊中的數(shù)據(jù),各個(gè)模塊的內(nèi)存,以及GPU的信息); (2)系統(tǒng)的自我管控,當(dāng)系統(tǒng)發(fā)現(xiàn)監(jiān)控的某些狀態(tài)達(dá)到峰值,采取措施進(jìn)行降級(jí)處理,避免系統(tǒng)在高負(fù)荷下運(yùn)行發(fā)生故障或崩潰。
3.5 防危驗(yàn)證
防危驗(yàn)證不僅要考慮失效的頻率,還要兼顧失效的代價(jià),把重要性采樣理論應(yīng)用于防危驗(yàn)證,提出基于加速險(xiǎn)剖面的防危驗(yàn)證測(cè)試方案。通過(guò)分析開發(fā)軟件的運(yùn)行剖面,得到軟件運(yùn)行的相對(duì)發(fā)生頻率。然后,對(duì)可能導(dǎo)致災(zāi)難性事故的危險(xiǎn)進(jìn)行分析識(shí)別,得到危險(xiǎn)剖面。再利用故障樹分析得到安全關(guān)鍵運(yùn)行。最后,生成軟件的安全運(yùn)行剖面。
測(cè)試過(guò)程中,如果系統(tǒng)進(jìn)入危險(xiǎn)狀態(tài),就認(rèn)為軟件存在風(fēng)險(xiǎn),沒(méi)有通過(guò)防危驗(yàn)證,測(cè)試不達(dá)標(biāo)。如果所有的測(cè)試用例都沒(méi)有進(jìn)入危險(xiǎn)狀態(tài),則證明通過(guò)了軟件防危驗(yàn)證,測(cè)試達(dá)標(biāo)。
在符合工程實(shí)踐的條件下,本文以加強(qiáng)現(xiàn)有工業(yè)控制系統(tǒng)的防危能力為目標(biāo),針對(duì)傳統(tǒng)工控系統(tǒng)防危技術(shù)的不足,提出了基于數(shù)據(jù)挖掘的工控防危機(jī)制。設(shè)計(jì)和綜合出一套能夠進(jìn)行風(fēng)險(xiǎn)主動(dòng)預(yù)測(cè)、故障實(shí)時(shí)檢測(cè)、系統(tǒng)自適應(yīng)調(diào)節(jié)的工控系統(tǒng)防危機(jī)制及其實(shí)現(xiàn)算法,并通過(guò)仿真實(shí)驗(yàn)和理論分析的手段,評(píng)估防危機(jī)制與算法的性能,最終實(shí)現(xiàn)對(duì)現(xiàn)有工業(yè)控制系統(tǒng)的防危保護(hù)。
參考文獻(xiàn)
[1] STOUFFER K, FALCO J, SCARFONE K. Guide to industrial control systems (ICS) security[M]. National Institute of Standards and Technology, 2011:55-62.
[2] Client Company. Quarterly report on cyber security incidents and trends affecting industrial control systems[J]. Security Incidents Organization, 2009:35-77.
[3] Horng Jaojia, Lin Yishu, Shu Chimin. Using consequence analysis on some chlorine operation hazards and their possible effects on neighborhoods in central taiwan[C]. International Conference on the 20th Anniversary of Bhopal Gas Tragedy, The Indian Institute of Technology, 2004:3-12.
[4] KONSTANTIN I M, 夏光.切爾諾貝利事故:問(wèn)題的實(shí)質(zhì)[J]. 科學(xué)對(duì)社會(huì)的影響, 1992(03):2-6.
[5] FALCO J, STOUFFER K, WAVERING A, et al. IT security for industrial control systems[M]. National Institute of Standards and Technology, 2001:201-235.
[6] LAPRIE J C. On the dependability evaluation of high safety systems[C].Proceeding of the 15th International Sym posium on Fault Tolerant Computing, 1985:5-16.
[7] LAPRIE J C. Dependable computing: concepts, limits, challenges[J]. In Special Issue FTCS-25. Pasadera. CA.1995:42-54.
[8] LAPRIE J C. Dependability of computer systems: concepts, limits,improvements[C]. Proceedings 6th International Symposium on Fault Tolerant Computing, 1995:12-32.
[9] LEVESON N G. Murphy: expecting the worst and preparing for it[M]. The small computer evolution, Arlington,VA,1984:294-300.
[10] ZALEWSKI J, SAGLIETTIC F, et al. Safety of computer control systems: challenges and results in software development, Annual Reviews in control,2003,27(1):23-37.