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