文獻標(biāo)識碼: A
文章編號: 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è),是國民經(jīng)濟的重要組成部分。
據(jù)權(quán)威工業(yè)安全事件信息庫RISI(Repository of Security Incidents)統(tǒng)計[2],截止2011年10月,全球已發(fā)生200余起工業(yè)控制系統(tǒng)的嚴(yán)重安全事件。工業(yè)控制系統(tǒng)信息安全事關(guān)工業(yè)生產(chǎn)運行、國家經(jīng)濟安全和人民生命財產(chǎn)安全,一旦出現(xiàn)工業(yè)事故,將對正常生產(chǎn)運行和國家經(jīng)濟安全造成重大損害。
1984年12月3日凌晨,在印度的Bhopal,45噸甲烷異氰酸脂重毒氣從聯(lián)合炭化蟲劑制造廠泄漏并擴散到附近居民區(qū),造成至少2 500人死亡,25萬人的健康受到影響。1986年4月,前蘇聯(lián)切爾諾貝利核電發(fā)生爆炸,導(dǎo)致世界上最嚴(yán)重的核事故。
分析以上事故原因發(fā)現(xiàn),每起事故都涉及到控制系統(tǒng)的防危問題。印度毒氣泄露事件調(diào)查報告顯示[3],610號儲槽的壓力在15 min內(nèi)由2 psig上升到10 psig。由于換班原因,新操作員并未察覺到壓力突變異常,正常壓力大約在2~25 psig之間。而當(dāng)壓力突升而未察覺時,則會導(dǎo)致毒氣泄漏。1986年切爾諾貝利核電站爆炸事故調(diào)查報告顯示[4],由于核電站人員多次違規(guī)操作,導(dǎo)致反應(yīng)堆能量增加,發(fā)生爆炸。
隨著高新技術(shù)的廣泛應(yīng)用,工業(yè)控制系統(tǒng)越來越復(fù)雜,錯誤越難檢測和避免,由此帶來的安全隱患也越多,對系統(tǒng)的防危要求越來越迫切。工控系統(tǒng)對防危性的要求包含以下幾個方面[5]:
(1)整體性:工控系統(tǒng)中對關(guān)鍵設(shè)備的不同操作之間存在相互依賴關(guān)系,要將其視為一個整體考慮。
(2)通用性:為達到資源共享以及實現(xiàn)不同工控系統(tǒng)間的移植,需把系統(tǒng)功能實現(xiàn)與防危機制分離開,提高防危機制的通用性。
(3)自適應(yīng)性:系統(tǒng)內(nèi)部環(huán)境發(fā)生改變時,應(yīng)采用某種自適應(yīng)手段,適應(yīng)新的環(huán)境來滿足用戶的需求。
(4)隔離性:監(jiān)控對關(guān)鍵設(shè)備的操作,拒絕可能導(dǎo)致重大人身和財產(chǎn)損失的操作命令,實現(xiàn)應(yīng)用軟件與系統(tǒng)設(shè)備的隔離,保證工控系統(tǒng)的防危性。
面對越來越復(fù)雜的工控系統(tǒng)和愈來愈重要的防危性要求,開展針對現(xiàn)有工控系統(tǒng)的防危機制研究具有巨大的科學(xué)意義和應(yīng)用價值。
1 相關(guān)研究介紹
近年來很多重大事故的發(fā)生都可以歸結(jié)為工控系統(tǒng)在防危性方面的疏忽或缺失,事故主要來源于系統(tǒng)的設(shè)計缺陷及操作人員的誤操作,也使工控系統(tǒng)失去了可信性。
1985年,Laprie提出了dependability(為與可靠性reliability相區(qū)別,譯為可信性)概念,以此度量計算機系統(tǒng)的服務(wù)質(zhì)量[6]。如圖1所示,可信性是一個復(fù)雜的綜合性概念,具有豐富的內(nèi)涵,它所包含的特征有:可用性(Availability)、可靠性(Reliability)、防危性(Safety)、安全性(Security)和可維護性(Maintainability) 5個特征量。1995年Laprie把Security分解為Confidentiality和Integrity[7]。

防危性與可用性、可靠性、可維護性、安全性的區(qū)別[8]如表1所示。防危強調(diào)的是防止危險發(fā)生,即防止系統(tǒng)給生命財產(chǎn)及生態(tài)環(huán)境造成災(zāi)難性破壞。防危技術(shù)主要是對系統(tǒng)內(nèi)部錯誤的偵測、異常處理以及誤操作的避免,不同于可信性的其他特性。

目前實現(xiàn)防危的主要技術(shù)手段有防危核與防危殼兩種。
防危核(Safety Kernel)最早由安全學(xué)家 Leveson[9]提出,其原理是根據(jù)實際系統(tǒng)的工作特點定制的一套防危策略,驗證所有對關(guān)鍵設(shè)備的操作請求,只有通過驗證的操作請求才可到達硬件進行操作,拒絕所有未經(jīng)過驗證的操作。防危核成功隔離了應(yīng)用請求與關(guān)鍵設(shè)備,避免用戶誤操作引起的系統(tǒng)錯誤,達到對系統(tǒng)的防危保護。
防危殼(Safety Shell)是由Katwijk 和 Zalewski[10]提出的防危技術(shù),其技術(shù)原理與防危核類似,是防危核技術(shù)的一種功能更為強大的擴展。防危殼的防危原理是在系統(tǒng)控制器與關(guān)鍵設(shè)備之間安插一個隔離層,所有操作請求都必須經(jīng)過防危殼的驗證。防危殼主要由狀態(tài)監(jiān)視器、時間監(jiān)視器、異常處理子模塊組成。狀態(tài)監(jiān)視器是保證系統(tǒng)防危性最重要的關(guān)鍵子模塊,其作用是負(fù)責(zé)與底層I/O接口交互,驗證所有操作請求,并負(fù)責(zé)實時監(jiān)測設(shè)備的工作狀態(tài),一旦發(fā)現(xiàn)異常,則發(fā)送相應(yīng)的操作命令來調(diào)整系統(tǒng)狀態(tài),同時報告錯誤。時間監(jiān)視器用于檢驗設(shè)備命令是否在規(guī)定的時間內(nèi)完成,保證了設(shè)備操作的實時性。異常處理器監(jiān)視對設(shè)備的操作命令,拒絕錯誤的操作命令,并調(diào)用相應(yīng)的錯誤處理程序。
防危核和防危殼是防危系統(tǒng)里最常用的兩種技術(shù)手段,將防危核與防危殼技術(shù)進行比較,可以發(fā)現(xiàn)兩種方式的基本原理都是相同的,即提供了設(shè)備操作與關(guān)鍵設(shè)備的隔離。不同點在于,防危核只提出了操作驗證的基本功能,而防危殼將防危策略細(xì)分為三個子模塊,子模塊擁有了單獨檢查設(shè)備狀態(tài)和保證命令時間限制等功能,降低了驗證整個防危策略的開銷。某種程度上,防危殼可以看作是防危核技術(shù)的一種擴展變型和另一種實現(xiàn)方式。
2 防危分析
無論防危核還是防危殼,都只是把關(guān)鍵設(shè)備進行隔離防危,而實際的工控系統(tǒng)是一個復(fù)雜的網(wǎng)絡(luò),各設(shè)備之間存在著相互依賴關(guān)系,對一個設(shè)備的操作勢必會對其他設(shè)備造成影響,針對獨立設(shè)備的防危往往達不到整體防危的要求。因此,針對整體性防危的要求,本文提出利用防危保護態(tài)以及有窮狀態(tài)機實現(xiàn)防危,如圖2實線所示。系統(tǒng)從正常工作狀態(tài)發(fā)展為事故,一般經(jīng)過多個狀態(tài),從警告、臨界到危險,直至事故。為了實現(xiàn)防危,借鑒容錯理論,引入防危保護狀態(tài)(E),也就是在系統(tǒng)遇到危險或在臨界情況下,通過防危機制進入保護模式,在保護模式下系統(tǒng)可以通過自我調(diào)節(jié)回歸到正常模式。


用狀態(tài)轉(zhuǎn)化圖表示如圖2所示。圖中,A:正常狀態(tài);B:警告狀態(tài);C:臨界狀態(tài);D:危險狀態(tài);F:事故狀態(tài);E:防危保護態(tài)。
危險包括針對工業(yè)現(xiàn)場的和工控系統(tǒng)自身的,為了從危險狀態(tài)(D)轉(zhuǎn)化到防危保護狀態(tài)(E),針對不同類型的危險,需要通過專家規(guī)則實時判斷工業(yè)現(xiàn)場的危險狀況,或者通過降級服務(wù)對工控系統(tǒng)實施保護。為了從防危保護態(tài)(E)轉(zhuǎn)化為正常態(tài)(A),需要通過工控系統(tǒng)的合理調(diào)度,實現(xiàn)自身狀態(tài)的回歸,或者利用專家知識庫推薦工業(yè)現(xiàn)場的補救方案。
為了從臨界狀態(tài)(C)轉(zhuǎn)化為防危保護態(tài)(E),一方面需要對關(guān)鍵設(shè)備的情況進行主動預(yù)測和危險預(yù)報;另一方面,通過分析設(shè)備之間的相互影響關(guān)系,預(yù)測系統(tǒng)整體的風(fēng)險。
針對出現(xiàn)報警(B)的情況,利用專家規(guī)則判斷危險狀況,并根據(jù)專家規(guī)則中的處理辦法進行相應(yīng)的操作,使得系統(tǒng)轉(zhuǎn)化為正常狀態(tài)(A)。
系統(tǒng)在正常運行(A)期間,通過對關(guān)鍵設(shè)備的情況進行預(yù)測,防患于未然,使系統(tǒng)維持在正常狀態(tài)。
通過對狀態(tài)之間的操作進行分析整理,可以得出下面一些主要的操作:
(1)通過分析設(shè)備之間的相互關(guān)系,預(yù)測系統(tǒng)整體風(fēng)險,即全局防危(a);
(2)通過對關(guān)鍵設(shè)備的情況進行預(yù)測,防患于未然,即主動防危(b);
(3)利用專家規(guī)則進行實時判斷和推薦,即實時防危(c);
(4)對工控系統(tǒng)實施保護并且實現(xiàn)狀態(tài)回歸,即自主防危(d)。
通過提供上面這些防危措施,就可以實現(xiàn)工控系統(tǒng)的防危,將工控系統(tǒng)從非正常狀態(tài)轉(zhuǎn)移到正常狀態(tài)。同時結(jié)合防危技術(shù),實現(xiàn)防危認(rèn)證。
3 基于數(shù)據(jù)挖掘的工控防危機制
針對現(xiàn)有的工業(yè)控制系統(tǒng),為加強其防危能力,本文提出以建立工控系統(tǒng)的全局防危機制為主線,通過數(shù)據(jù)預(yù)測技術(shù)實現(xiàn)對單點的主動防危;通過建立工控系統(tǒng)復(fù)雜網(wǎng)絡(luò)模型,研究單點異常對其他節(jié)點的影響,實現(xiàn)對整個工控系統(tǒng)的全局防危;提供防危認(rèn)證,從而實現(xiàn)工控系統(tǒng)的防危。防危的體系結(jié)構(gòu)如圖3所示。

3.1全局防危
工業(yè)控制系統(tǒng)是一個復(fù)雜網(wǎng)絡(luò),系統(tǒng)內(nèi)各設(shè)備之間相互依賴和影響。根據(jù)工控系統(tǒng)現(xiàn)場環(huán)境、歷史數(shù)據(jù)和經(jīng)驗,建立工控系統(tǒng)復(fù)雜網(wǎng)絡(luò)模型,網(wǎng)絡(luò)中的節(jié)點表示系統(tǒng)中的設(shè)備或者關(guān)鍵采集點,邊表示設(shè)備之間的關(guān)聯(lián)關(guān)系或風(fēng)險傳遞關(guān)系。通過風(fēng)險傳遞算法,此網(wǎng)絡(luò)可以很快收斂,達到穩(wěn)定狀態(tài),從而可以預(yù)測出某一個(或多個)設(shè)備出現(xiàn)風(fēng)險后系統(tǒng)中所有相關(guān)設(shè)備受影響的情況。通過此網(wǎng)絡(luò)模型可以做到對工控系統(tǒng)的整體風(fēng)險預(yù)測和防危。
3.2 主動防危
為了提高系統(tǒng)的安全性,應(yīng)該開展針對工控系統(tǒng)的趨勢預(yù)測。針對工業(yè)控制系統(tǒng)中設(shè)備的差異性,實現(xiàn)數(shù)據(jù)預(yù)測的通用性,構(gòu)造適合大部分實際應(yīng)用環(huán)境輸入向量的方法,使用迭代法最大限度地保留實時數(shù)據(jù)中的歷史信息,并結(jié)合系統(tǒng)的閉環(huán)反饋實現(xiàn)精確的多步預(yù)測,實現(xiàn)滿足工控系統(tǒng)的高效率、高準(zhǔn)確率的預(yù)測算法。
3.3實時防危
工業(yè)控制系統(tǒng)對實時性要求很高,通過預(yù)設(shè)的規(guī)則和經(jīng)驗的學(xué)習(xí)建立專家規(guī)則庫。由于專家規(guī)則的推理算法時間復(fù)雜度較高,為滿足工控系統(tǒng)的實時性要求,可以采用GPU并行處理技術(shù)。使用GPU并行處理技術(shù)有兩大好處:(1)降低計算時間,滿足工控系統(tǒng)的實時性要求;(2)解放CPU,使實時防危子系統(tǒng)基本不占用CPU資源。通過專家規(guī)則可以及時發(fā)現(xiàn)系統(tǒng)的異常節(jié)點,通過預(yù)設(shè)的規(guī)則可以給出后續(xù)的補救方案,避免更大的損失,做到對系統(tǒng)的實時防危。
3.4自主防危
在系統(tǒng)處于超負(fù)荷情況下,采取合理的措施,在確保系統(tǒng)穩(wěn)定的前提下,通過優(yōu)化配置,實現(xiàn)系統(tǒng)的優(yōu)化運行,確保系統(tǒng)自身的穩(wěn)定安全。自主防危從大的方面分為兩部分內(nèi)容:(1)系統(tǒng)監(jiān)控,監(jiān)視系統(tǒng)的運行狀態(tài)以及各關(guān)鍵模塊的狀態(tài),包括進程的狀態(tài)、優(yōu)先級、對于CPU和內(nèi)存的使用情況(包括數(shù)據(jù)采集模塊中的數(shù)據(jù),各個模塊的內(nèi)存,以及GPU的信息); (2)系統(tǒng)的自我管控,當(dāng)系統(tǒng)發(fā)現(xiàn)監(jiān)控的某些狀態(tài)達到峰值,采取措施進行降級處理,避免系統(tǒng)在高負(fù)荷下運行發(fā)生故障或崩潰。
3.5 防危驗證
防危驗證不僅要考慮失效的頻率,還要兼顧失效的代價,把重要性采樣理論應(yīng)用于防危驗證,提出基于加速險剖面的防危驗證測試方案。通過分析開發(fā)軟件的運行剖面,得到軟件運行的相對發(fā)生頻率。然后,對可能導(dǎo)致災(zāi)難性事故的危險進行分析識別,得到危險剖面。再利用故障樹分析得到安全關(guān)鍵運行。最后,生成軟件的安全運行剖面。
測試過程中,如果系統(tǒng)進入危險狀態(tài),就認(rèn)為軟件存在風(fēng)險,沒有通過防危驗證,測試不達標(biāo)。如果所有的測試用例都沒有進入危險狀態(tài),則證明通過了軟件防危驗證,測試達標(biāo)。
在符合工程實踐的條件下,本文以加強現(xiàn)有工業(yè)控制系統(tǒng)的防危能力為目標(biāo),針對傳統(tǒng)工控系統(tǒng)防危技術(shù)的不足,提出了基于數(shù)據(jù)挖掘的工控防危機制。設(shè)計和綜合出一套能夠進行風(fēng)險主動預(yù)測、故障實時檢測、系統(tǒng)自適應(yīng)調(diào)節(jié)的工控系統(tǒng)防危機制及其實現(xiàn)算法,并通過仿真實驗和理論分析的手段,評估防危機制與算法的性能,最終實現(xiàn)對現(xiàn)有工業(yè)控制系統(tǒng)的防危保護。
參考文獻
[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, 夏光.切爾諾貝利事故:問題的實質(zhì)[J]. 科學(xué)對社會的影響, 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.
