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