文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.179018
中文引用格式: 豐大軍,,張曉莉,杜文玉,,等. 安全可信工業(yè)控制系統(tǒng)構(gòu)建方案[J].電子技術(shù)應(yīng)用,,2017,43(10):74-77.
英文引用格式: Feng Dajun,,Zhang Xiaoli,,Du Wenyu,et al. A method of construct a secure and trustable industrial control system[J].Application of Electronic Technique,,2017,,43(10):74-77.
0 引言
由于工業(yè)控制系統(tǒng)(Industrial Control System,,ICS)的使用環(huán)境較為封閉,,因此使用中往往更注重功能的實(shí)現(xiàn),而對(duì)安全的關(guān)注相對(duì)缺乏,。但是,,伊朗的震網(wǎng)(Stuxnet)事件給了全世界一個(gè)警示,病毒可以感染看似物理隔離的工控系統(tǒng),,而且可以對(duì)控制對(duì)象進(jìn)行物理破壞[1-5],。隨著互聯(lián)網(wǎng)和信息技術(shù)的發(fā)展,尤其是“工業(yè)4.0”的推進(jìn),,工控系統(tǒng)固有的封閉性也被逐漸打破,,隨之的安全問(wèn)題也日益暴露[6-9]。
可信計(jì)算作為一個(gè)信息系統(tǒng)新技術(shù),,這些年在國(guó)內(nèi)有了很大的發(fā)展和應(yīng)用[10-13],。本文從實(shí)際應(yīng)用對(duì)象和實(shí)際運(yùn)行過(guò)程的角度分析工控系統(tǒng)中的威脅,探討可信計(jì)算與工控系統(tǒng)結(jié)合的可行性,,最后給出一個(gè)整體的設(shè)計(jì)方案,。
1 可行性分析
工業(yè)控制系統(tǒng)是由計(jì)算機(jī)軟硬件與工業(yè)過(guò)程控制部件組成的自動(dòng)控制系統(tǒng),主要通過(guò)工業(yè)過(guò)程控制部件對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行采集,、監(jiān)測(cè),,在計(jì)算機(jī)的調(diào)配下,實(shí)施自動(dòng)化和業(yè)務(wù)流程的管理與監(jiān)控,。
針對(duì)工控系統(tǒng)的典型攻擊方式有:修改系統(tǒng)軟件,、繞過(guò)操作權(quán)限、篡改組態(tài)文件,、偽裝控制指令,、偽造現(xiàn)場(chǎng)數(shù)據(jù),、拒絕服務(wù)、信息外泄等,。
工業(yè)控制系統(tǒng)與普通計(jì)算機(jī)系統(tǒng)相比,,具有一定的特殊性:
(1)可用性要求高,需要持續(xù)運(yùn)行不能間斷,;
(2)實(shí)時(shí)性要求高,,添加安全措施也必須滿足實(shí)時(shí)性要求;
(3)一次啟動(dòng)長(zhǎng)期運(yùn)行,,很少對(duì)系統(tǒng)進(jìn)行重啟,;
(4)網(wǎng)絡(luò)結(jié)構(gòu)與行為穩(wěn)定性高,投運(yùn)之后基本不會(huì)發(fā)生改變,;
(5)升級(jí)不方便,,更新代價(jià)高,補(bǔ)丁難完善,。
在這種特點(diǎn)下,,傳統(tǒng)的“封堵查殺”無(wú)法有效地保護(hù)工控系統(tǒng)與網(wǎng)絡(luò)的安全,可信計(jì)算技術(shù)是解決工業(yè)控制系統(tǒng)安全問(wèn)題的新思路,。
按照ISO/IEC 15408給出的定義,,可信是指參與計(jì)算的組件、操作或過(guò)程在任意條件下是可預(yù)測(cè)的,,并能抵御病毒和一定程度的物理干擾。
可信計(jì)算通過(guò)為計(jì)算平臺(tái)增加一個(gè)具有安全保護(hù)的密碼芯片,,并通過(guò)軟硬件結(jié)合的方式構(gòu)建出一個(gè)可信計(jì)算環(huán)境,。利用可信計(jì)算環(huán)境進(jìn)行逐級(jí)認(rèn)證,建立可信鏈,,確保運(yùn)行程序和依賴數(shù)據(jù)的真實(shí)性,、機(jī)密性和可控性等[10-13]。
計(jì)算機(jī)系統(tǒng)要面臨各種系統(tǒng)補(bǔ)丁升級(jí),、應(yīng)用軟件安裝等要求,,所以在計(jì)算機(jī)中添加過(guò)多的認(rèn)證和授權(quán),會(huì)使計(jì)算機(jī)的可用性下降,,從而可信計(jì)算機(jī)向日常使用方向推廣會(huì)遇到一定的阻力,。
工業(yè)控制的應(yīng)用需求與這些嚴(yán)格的限制非常契合。工控系統(tǒng)具有穩(wěn)定的使用環(huán)境,、行為,、功能。從項(xiàng)目建成投運(yùn)之后,,系統(tǒng)中的軟硬件都基本保持不變,,設(shè)備的使用流程和控制目的都符合原先的工藝設(shè)計(jì),。系統(tǒng)軟件版本升級(jí)也只會(huì)由工控系統(tǒng)提供商來(lái)進(jìn)行,所以系統(tǒng)內(nèi)所有的程序版本的對(duì)應(yīng)關(guān)系都是可知且固定的,。從而所有相關(guān)程序進(jìn)行認(rèn)證和授權(quán)是具有可行性的,,因此工控環(huán)境非常適合可信計(jì)算技術(shù)的實(shí)現(xiàn)。
2 系統(tǒng)模型
分析工控系統(tǒng),,可將關(guān)鍵數(shù)據(jù)和行為在軟硬件之間找到對(duì)應(yīng)關(guān)系,。工控系統(tǒng)模型如圖1所示。
工控系統(tǒng)有上位機(jī)和下位機(jī)兩種運(yùn)行環(huán)境:上位機(jī)運(yùn)行環(huán)境是普通計(jì)算機(jī)和通用操作系統(tǒng),,在其中運(yùn)行著組態(tài)軟件,;下位機(jī)運(yùn)行環(huán)境是控制器和嵌入式軟件,在其中運(yùn)行著從上位機(jī)下裝的組態(tài)邏輯,。
可采用已較為成熟的可信計(jì)算機(jī)產(chǎn)品來(lái)保證上位機(jī)運(yùn)行環(huán)境的可信,;下位機(jī)嵌入式運(yùn)行環(huán)境的可信則需要更改控制器的硬件結(jié)構(gòu)和啟動(dòng)機(jī)制來(lái)保證。
整個(gè)控制過(guò)程圍繞著兩類數(shù)據(jù)進(jìn)行,。(1)組態(tài)邏輯:用戶在上位機(jī)完成組態(tài),,編譯后將可執(zhí)行文件下裝至控制器運(yùn)行。(2)計(jì)算數(shù)據(jù):數(shù)據(jù)從現(xiàn)場(chǎng)設(shè)備采集或從上位機(jī)接收,,傳輸至控制器,,根據(jù)組態(tài)邏輯計(jì)算出結(jié)果,再輸出至設(shè)備進(jìn)行動(dòng)作,。
以往典型的攻擊方式都是針對(duì)組態(tài)邏輯文件,,因?yàn)閷?shí)時(shí)數(shù)據(jù)的突變很容易被歷史趨勢(shì)記錄或觸發(fā)保護(hù)邏輯,引起操作者的察覺(jué),,所以目前的工控病毒大都把目標(biāo)集中在直接修改組態(tài)邏輯上,。本文設(shè)計(jì)的安全機(jī)制著重在組態(tài)邏輯的生成、分發(fā),、執(zhí)行過(guò)程,。
本文將工控系統(tǒng)的工程生命周期分為啟動(dòng)、組態(tài),、運(yùn)行3個(gè)階段,,分別利用可信計(jì)算的思想,以密碼機(jī)制為手段,,實(shí)現(xiàn)了安全加固,。
3 功能設(shè)計(jì)
3.1 可信啟動(dòng)
工控系統(tǒng)中,工程的運(yùn)行環(huán)境是指由嵌入式操作系統(tǒng)和實(shí)時(shí)控制系統(tǒng)軟件組成的環(huán)境,,保證控制器在初始啟動(dòng)時(shí)加載的是正確的系統(tǒng)文件,,是工程安全運(yùn)行的前提。常用的安全策略都是基于計(jì)算機(jī)網(wǎng)絡(luò)的病毒查殺技術(shù),不能對(duì)文件是否被篡改進(jìn)行鑒別,,也不能防止設(shè)備在物流傳輸過(guò)程中設(shè)備或系統(tǒng)文件被人為替換,。
可信計(jì)算的應(yīng)用,可增加對(duì)正確文件的鑒別能力以及對(duì)異常文件的抵御能力,。電子六所開(kāi)發(fā)的全國(guó)產(chǎn)化PLC系統(tǒng),,在國(guó)產(chǎn)CPU的基礎(chǔ)上實(shí)現(xiàn)了可信啟動(dòng)技術(shù)。在國(guó)產(chǎn)化硬件芯片和不可改寫的存儲(chǔ)芯片結(jié)合的前提下,,對(duì)將要運(yùn)行的系統(tǒng)軟件進(jìn)行完整性度量,,確保當(dāng)前運(yùn)行的版本未經(jīng)篡改,與出廠版本保持一致,。圖2是經(jīng)過(guò)可信改造的控制器內(nèi)部結(jié)構(gòu)圖,。
圖2所示的控制器,控制器上有可讀寫的Flash,,其中存放著嵌入式操作系統(tǒng),、實(shí)時(shí)控制軟件等。由于Flash可讀寫的特性,,有可能在未授權(quán)的情況下被人為替換,,也有可能在運(yùn)行過(guò)程中被病毒感染。所以需要對(duì)這部分系統(tǒng)代碼進(jìn)行完整性度量,,保證其與出廠指定版本保持一致,。
控制器啟動(dòng)時(shí),先執(zhí)行ROM中驗(yàn)證相關(guān)的邏輯,,履行可信度量功能:CPU讀Flash區(qū)存放系統(tǒng)文件的指定位置,,傳輸給可信模塊計(jì)算其摘要值,與預(yù)先存儲(chǔ)的基準(zhǔn)值相比較,。驗(yàn)證結(jié)果回復(fù)給CPU,,若驗(yàn)證通過(guò),則跳轉(zhuǎn)至正常執(zhí)行啟動(dòng)嵌入式操作系統(tǒng),;若驗(yàn)證不通過(guò)則控制器拒絕啟動(dòng),并產(chǎn)生報(bào)警,。流程如圖3所示,。
上述設(shè)計(jì),在CPU硬件芯片國(guó)產(chǎn)化的基礎(chǔ)上杜絕了芯片后門,,實(shí)現(xiàn)本體可信,。利用ROM不可被改寫的特性,實(shí)現(xiàn)啟動(dòng)時(shí)對(duì)整體運(yùn)行環(huán)境的完整性度量,,保證其與出廠時(shí)的版本保持一致,,防止病毒感染系統(tǒng)文件、未經(jīng)授權(quán)地修改系統(tǒng)文件,、運(yùn)輸過(guò)程中的分發(fā)攻擊等,,為工業(yè)自動(dòng)化構(gòu)建了堅(jiān)實(shí)可信的基礎(chǔ)平臺(tái),。
3.2 可信組態(tài)
工控系統(tǒng)運(yùn)行過(guò)程中,可能受到以下方式的攻擊:
(1)感染工程師站,,通過(guò)病毒直接修改本地保存的工程組態(tài)文件,,讓使用者通過(guò)自己的合法途徑正常下裝至控制器運(yùn)行。
(2)感染同一網(wǎng)絡(luò)內(nèi)的其他計(jì)算機(jī),,偽裝成工程師站給控制器下裝,,或修改工程師站下裝的數(shù)據(jù)包。
在傳統(tǒng)的工控系統(tǒng)中,,這種攻擊是容易實(shí)現(xiàn)的,,因?yàn)橛脩暨壿嫃慕M態(tài)到運(yùn)行整個(gè)過(guò)程均是明文存儲(chǔ)和傳輸,控制器對(duì)數(shù)據(jù)的發(fā)送方也不進(jìn)行權(quán)限的鑒別和身份的認(rèn)證,。
可在傳統(tǒng)組態(tài)邏輯分發(fā)過(guò)程中增加一定的安全機(jī)制,,增強(qiáng)控制器中執(zhí)行邏輯的可信程度??尚沤M態(tài)分發(fā)過(guò)程如圖4所示,。
在可信的工控系統(tǒng)中,有一套完整的PKI(Public Key Infrastructure)體系,。每個(gè)物理節(jié)點(diǎn)都增加了密碼模塊硬件,,均被分配屬于自己的公鑰和私鑰;每個(gè)操作人員都持有預(yù)先配置了不同操作權(quán)限的物理介質(zhì),,從而可將自然人身份轉(zhuǎn)化為確定的數(shù)字信息,。
(1)工程文件簽名
邏輯組態(tài)軟件在每次編譯生成可執(zhí)行文件時(shí),需對(duì)文件進(jìn)行簽名,,從而防止第三方偽裝邏輯,,或者在網(wǎng)絡(luò)傳輸過(guò)程中被篡改。
(2)通信前權(quán)限鑒別
在可信工控系統(tǒng)中,,根據(jù)操作權(quán)限,,使用者被分類成系統(tǒng)管理員、工程師,、操作員,,對(duì)應(yīng)權(quán)限燒寫在UKEY等物理介質(zhì)中。例如:更改密鑰需系統(tǒng)管理員權(quán)限,,下裝工程需工程師權(quán)限等,。
(3)接收前身份認(rèn)證
在上下位機(jī)建立傳輸鏈接前,先使用“挑戰(zhàn)-響應(yīng)”機(jī)制對(duì)雙方的身份進(jìn)行驗(yàn)證,,相互認(rèn)證通過(guò)后,,控制器才會(huì)接收傳輸過(guò)來(lái)的數(shù)據(jù)包。
(4)工程文件驗(yàn)簽
控制器對(duì)接收到的數(shù)據(jù)包進(jìn)行驗(yàn)簽,驗(yàn)證通過(guò)后才執(zhí)行,。
3.3 可信運(yùn)行
目前國(guó)內(nèi)基于可信計(jì)算理論設(shè)計(jì)的工業(yè)控制系統(tǒng),,大多只實(shí)現(xiàn)了啟動(dòng)時(shí)對(duì)嵌入式運(yùn)行軟件的靜態(tài)度量。然而不同于普通計(jì)算機(jī)系統(tǒng),,在實(shí)際使用中,,工控系統(tǒng)并不會(huì)經(jīng)常重啟,具有一次啟動(dòng)長(zhǎng)期運(yùn)行的特點(diǎn),。另外在現(xiàn)場(chǎng)調(diào)試完成之后,,也不會(huì)再頻繁修改下裝邏輯。
可信啟動(dòng)和可信組態(tài)保證了嵌入式運(yùn)行環(huán)境以及用戶邏輯可執(zhí)行文件的安全性,,但是對(duì)于運(yùn)行結(jié)果正確與否并無(wú)法保證,,這就意味著動(dòng)態(tài)度量必不可少。
可信計(jì)算中強(qiáng)調(diào)行為結(jié)果的可預(yù)期,,在實(shí)踐中一般通過(guò)兩種理念:對(duì)內(nèi)存等嵌入式運(yùn)行環(huán)境的動(dòng)態(tài)度量和對(duì)運(yùn)行結(jié)果的動(dòng)態(tài)度量,。兩個(gè)方向有著不同的出發(fā)點(diǎn),前者是為了保證環(huán)境不在運(yùn)行中被改變,,定時(shí)檢查內(nèi)存正文區(qū),、函數(shù)堆棧、中斷向量表等關(guān)鍵數(shù)據(jù)結(jié)構(gòu),;后者是通過(guò)審計(jì)系統(tǒng),,對(duì)所有行為與后果進(jìn)行數(shù)據(jù)分析,判斷系統(tǒng)狀態(tài)與行為路徑是否匹配,。
本文提出的可信運(yùn)行方案是對(duì)工程實(shí)現(xiàn)時(shí)增加了一種安全組態(tài)規(guī)范,,使用類似于形式化的描述工程的安全屬性,然后運(yùn)行過(guò)程中對(duì)安全屬性進(jìn)行驗(yàn)證,??稍诮M態(tài)軟件中開(kāi)發(fā)相關(guān)功能,支 持形式化語(yǔ)言描述,,與IEC61131-3中的其他幾種語(yǔ)言結(jié)合使用,。
某些控制過(guò)程可以確定地描述為某幾個(gè)狀態(tài)之間的轉(zhuǎn)換,每個(gè)狀態(tài)執(zhí)行具體的動(dòng)作,。以電梯的運(yùn)行控制為例,,將電梯的運(yùn)行過(guò)程抽象成圖5所示的7種狀態(tài),并且在正常運(yùn)行時(shí),,狀態(tài)之間的轉(zhuǎn)移應(yīng)滿足圖5所示路徑。
在運(yùn)行過(guò)程中,,判斷當(dāng)前所處狀態(tài)由一段確定的預(yù)設(shè)邏輯,,通過(guò)對(duì)操作結(jié)果的計(jì)算得到。例如對(duì)電梯設(shè)備的控制結(jié)果是電梯所處的位置,可根據(jù)最近幾個(gè)時(shí)刻的位置判斷出當(dāng)前所處的是加速還是減速,,是上升還是下降,。當(dāng)狀態(tài)轉(zhuǎn)移路徑與預(yù)設(shè)不符時(shí),系統(tǒng)可按設(shè)置進(jìn)行緊急處理,,同時(shí)產(chǎn)生報(bào)警,。
如果是典型的過(guò)程控制,例如火電機(jī)組,,可根據(jù)不同負(fù)荷的工況提取出安全特征,,例如在此負(fù)荷下,過(guò)熱蒸汽的安全范圍,,甚至于汽輪機(jī)的分貝或震動(dòng)強(qiáng)度等,。
提取出系統(tǒng)的狀態(tài)、狀態(tài)的判定規(guī)則,、狀態(tài)之間的轉(zhuǎn)換規(guī)則,、狀態(tài)的安全判定規(guī)則等,都要求工程設(shè)計(jì)者對(duì)控制對(duì)象有更深入的研究,,抽象出科學(xué)的模型,,精確計(jì)算出數(shù)字范圍。
出于加強(qiáng)信息安全的考慮,,安全驗(yàn)證邏輯應(yīng)該獨(dú)立于主運(yùn)算任務(wù),,以另一個(gè)任務(wù)的形式運(yùn)行,或者下裝至另一個(gè)CPU核中獨(dú)立運(yùn)行,,以實(shí)現(xiàn)運(yùn)行與監(jiān)控相隔離的設(shè)計(jì)準(zhǔn)則,。
4 結(jié)語(yǔ)
電力、交通,、石油化工等關(guān)乎國(guó)家民生的重大基礎(chǔ)設(shè)施中,,工控系統(tǒng)的安全防護(hù)是非常必要的。在系統(tǒng)周邊進(jìn)行安全加固是很有效的措施,,但是工控系統(tǒng)本身也需要具備一定的威脅識(shí)別與防護(hù)能力,,從而實(shí)現(xiàn)縱深防御的安全體系。
工業(yè)控制中,,實(shí)時(shí)性是需要嚴(yán)格保證的,。以往的工控系統(tǒng)中很少采用密碼體制,因?yàn)閾?dān)心控制過(guò)程中數(shù)據(jù)量的增加,,以及加解密帶來(lái)的時(shí)間延遲,。本文的方案著重在于工程生成、下裝和通信建立時(shí)使用了密碼機(jī)制,,因?yàn)檫@些情況下,,對(duì)響應(yīng)時(shí)間沒(méi)有太嚴(yán)格的要求,。
關(guān)于過(guò)程數(shù)據(jù)的可信,常用的密碼體制長(zhǎng)秘鑰的方式對(duì)實(shí)時(shí)性影響太大,,在工控場(chǎng)合適用性不強(qiáng),。由于工控并不支持大量用戶的并發(fā)操作,所以碰撞破解密碼的可能性較低,。密鑰長(zhǎng)度較短的對(duì)稱加密體制配合定期同步更換密鑰,,也許更適合工控的實(shí)際應(yīng)用?;谝淮涡悦荑€(OTP)理念的流密碼可能是一種不錯(cuò)的選擇,。
參考文獻(xiàn)
[1] KARNOUSKOS S.Stuxnet worm impact on industrial cyberphysical system security[C].Annual Conference on IEEE Industrial Electronics Society,2011:4490-4494.
[2] 趙炤,,朱啟超.從震網(wǎng)病毒分析“網(wǎng)絡(luò)物理戰(zhàn)”作用機(jī)理[J].國(guó)防科技,,2014(2):11-13.
[3] 蒲石,陳周國(guó),,祝世雄.震網(wǎng)病毒分析與防范[J].技術(shù)研究,,2012(2):40-43.
[4] 李戰(zhàn)寶,潘卓.透視“震網(wǎng)”病毒[C].第26次全國(guó)計(jì)算機(jī)安全學(xué)術(shù)交流會(huì),,2011:230-232.
[5] 仇新梁,,董守吉.“震網(wǎng)”病毒攻擊事件跟蹤分析和思考[J].保密科學(xué)技術(shù),2011(5):35-37.
[6] 褚健.工業(yè)控制系統(tǒng)安全的盛世危言[J].中國(guó)信息安全,,2012(3):32-36.
[7] 李鴻培.2014工業(yè)控制系統(tǒng)的安全研究與實(shí)踐[J].計(jì)算機(jī)安全,,2014(5):36-59.
[8] 沈昌祥,張煥國(guó),,馮登國(guó),,等.信息安全綜述[J].中國(guó)科學(xué):信息科學(xué),2007(2):129-150.
[9] 張煥國(guó),,韓文報(bào),,來(lái)學(xué)嘉,等.網(wǎng)絡(luò)空間安全綜述[J].中國(guó)科學(xué):信息科學(xué),,2016,,46(2):125-164.
[10] 沈昌祥,張煥國(guó),,王懷民,,等.可信計(jì)算的研究與發(fā)展[J].中國(guó)科學(xué):信息科學(xué),2010,,40(2):139-166.
[11] 沈昌祥,,陳興蜀.基于可信計(jì)算構(gòu)建縱深防御的信息安全保障體系[J].四川大學(xué)學(xué)報(bào):工程科學(xué),2014(1):1-7.
[12] 馮登國(guó).可信計(jì)算理論與實(shí)踐[M].北京:清華大學(xué)出版社,,2013.
[13] 吳歡.工業(yè)控制環(huán)境計(jì)算節(jié)點(diǎn)安全防護(hù)技術(shù)研究[D].北京:北京工業(yè)大學(xué),,2016.
[14] David Kleidermacher,,Mike Kleidermacher.嵌入式系統(tǒng)安全[M].北京:機(jī)械工業(yè)出版社,2015.
[15] 喬全勝,,刑雙云,尚文利,,等.可信PLC的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化儀表,,2016(12):76-78.
作者信息:
豐大軍1,張曉莉1,,杜文玉2,,徐一鳳1,馬保全1
(1.華北計(jì)算機(jī)系統(tǒng)工程研究所,,北京100083,;2.最高人民檢察院,北京100726)