喬全勝 邢雙云 尚文利 趙劍明 趙雪峰
(沈陽建筑大學信息與控制工程學院1,遼寧 沈陽 110168;中國科學院沈陽自動化研究所2,遼寧 沈陽 110016;中科院網絡化控制系統重點試驗室3,遼寧 沈陽 110016)
可信PLC的設計與實現
喬全勝1,2,3邢雙云1尚文利2,3趙劍明2,3趙雪峰2,3
(沈陽建筑大學信息與控制工程學院1,遼寧 沈陽 110168;中國科學院沈陽自動化研究所2,遼寧 沈陽 110016;中科院網絡化控制系統重點試驗室3,遼寧 沈陽 110016)
針對目前工控終端設備易受遠程代碼攻擊、系統固件缺乏安全校驗的問題,以PLC為例,通過軟硬件結合的方式構建可信的安全防護體系。采用Xilinx Zynq-7000工業級芯片搭建硬件環境,并通過嵌入式系統移植,在可信計算技術基礎上,以協同處理的方式實現了快速加解密驗證。用哈希(Hash)算法對PLC系統啟動文件進行了完整性驗證,保證了PLC系統的可信啟動。 試驗結果驗證了利用該方法保證終端設備安全的正確性及可行性,其能夠為工業嵌入式設備構建安全可信的運行環境。
智能制造 工業4.0 工業控制系統 信息安全 網絡安全 安全防護體系 Hash算法 嵌入式 PLC
在智能制造與工業4.0戰略的背景下,對工業控制系統信息安全的關注正達到前所未有的高度和廣度[1-3]。通過Woo-yun平臺、ICS-CERT以及國家信息安全漏洞共享平臺,可以看到包括ABB、Schneider Electric、Siemens、Rockwell Automation等知名廠商產品的各種安全漏洞[4-5]。
工業控制系統外部網絡安全威脅主要表現在外部攻擊者通過非授權方式進入控制系統,篡改控制命令、偽造狀態信息、傳播病毒、關鍵時刻阻塞控制信道并導致系統不能正常運轉等[6-7]。而產生內部威脅的原因主要是由于現有平臺架構是開放式的,惡意程序很容易植入軟件系統中[8-9]。其表現形式為隱藏在終端設備固件芯片中的惡意代碼被攻擊者遠程控制,對工業控制系統進行諸如信息竊取、刪除數據、破壞系統等攻擊行為[10-12]。
針對工業控制系統終端安全的研究方面,國內外研究人員已提出了一些解決方案來加強現場嵌入式設備的主動防御能力。如Audun Jsang等人針對移動的現場嵌入式設備,提出了基于傳統PIN碼的身份認證、基于生物特征的身份認證[13];A.K.Das利用智能卡技術,實現了基于口令和指紋的雙因素認證[14];李建、何永忠、沈昌祥提出了基于移動可信模塊(mobile trusted module,MTM)的可信移動平臺體系結構[15]。
本文在研究了可信計算技術的基礎上,設計并實現了嵌入式PLC的可信啟動。在系統啟動階段,采用可信芯片作為信任度量根,并結合哈希(Hash)算法,通過信任鏈的傳遞實現了系統的可信啟動,最終為工業嵌入式設備構建了可信、安全的運行環境,保障了工業控制系統的安全穩定運行。
本文以PLC作為工業控制系統終端設備為例,選擇工業級芯片Zynq-7000作為可信芯片搭建硬件環境,并通過嵌入式系統移植,采用Hash算法對系統啟動文件進行完整性校驗,實現了PLC系統啟動的可信。
鑒于本研究內容基于國家863課題“可編程嵌入式電子設備的安全技術”,要求在可信操作系統的基礎上研發具有啟動時安全檢測和硬件快速安全計算功能的安全處理單元(secure processing unit,SPU),并將一些由C語言編寫的復雜加解密算法轉化成硬件語言Verilog運行于FPGA上。這就需要FPGA去實現一些控制,以配合操作系統使用。因此,從軟、硬件協同設計方面考慮,選用第一款將ARM Cortex A9雙核與FPGA緊密集成在一起的Xilinx Zynq-7000全可編程片上系統(All Programmable SoC),作為可信芯片。
2.1 Zynq-7000 架構
Xilinx Zynq具有同構多核的處理器,且包含了用于專用硬件加速的FPGA,使得Xilinx Zynq在通用性方面和能量效率方面功能強大。其處理系統(processing system,PS)為ARM Cortex A9雙核,可編程邏輯(programmable logic,PL)為FPGA部分。該部分的資源隨SoC芯片級別高低不同而變化,最低的是Artix-7(Zynq-7010和Zynq-7020),最高的是Kintex-7(Zynq-7030和Zynq-7045)。
在Zynq-7000中,集成了FPGA和ARM,使用硬核處理器;在處理器要求較高的工業環境中,其處理能力相較軟核有大幅度提升。FPGA與ARM之間通過AXI_ACP、AXI_GP、AXI_HP這3種接口通信,帶寬達到1 Gbit/s,可實現高速通信。總線共有4種9條:2條32位Master總線接口,2條32位的Slave總線接口,4條32位/64位可配置的高性能Slave接口,1條64位的Slave ACP接口。
2.2 資源分配
研究中選用Zynq-7030芯片作為片上系統SoC,并在其基礎上提供嵌入式操作系統啟動時的安全檢測和算法加速器等硬件模塊,以及驅動接口等功能,其結構框架如圖1所示。
由圖1可知,系統啟動的可信驗證主要通過一些加解密算法實現,為了實現算法的硬件加速,需要將算法以硬件語言運行于RAM IP核和Flash IP核。另一部分身份認證、數字簽名等運行于ARM cortex A9,以軟件的形式給PLC提供安全保護。

圖1 Zynq-7030功能結構圖
Fig.1 Functional structure of Zynq-7030
3.1 可信PLC認證機制
可信PLC主要體現在PLC控制系統啟動所需文件的完整性校驗。PLC嵌入式操作系統啟動需要的文件有啟動引導文件BOOT.BIN、設備樹devicetree.dtb、內核文件uImage和文件系統uramdisk.image。
信任鏈傳遞機制主要被用來進行可信啟動的完整性度量。信任鏈默認是在以固件代碼BL0為信任基礎的條件下,由該啟動環節去評估下一個啟動環節的安全性。只有下一個啟動環節的可信度達到標準,上一個啟動環節才會將控制權轉交給下一個環節,然后依次向后推進;否則即度量失敗,通過日志警告報告管理員。為了保證過程中的每一個環節都是安全可信的,就必須在每一步控制權移交之前完成對下一個環節進行量化的判斷,判斷下一個環節的客體是否受到篡改。由當前階段的代碼度量下一階段即將要執行的代碼段,然后將度量值擴展到PCR中。這樣逐級傳遞信任,就構成了信任鏈。
系統上電后,首先系統啟動硬件環境會被初始化,系統啟動環境中配置了各文件的加載地址;然后按照預定的執行順序調用各文件中的Hash代碼段,進行完整性校驗。待所有文件均被校驗成功后,系統才啟動;如果校驗失敗,則該文件會被刪除,同時也就導致了系統因丟失啟動所必需的文件而不能正常啟動。
3.2 完整性校驗
Hash函數被廣泛應用于密碼學中,如消息完整性檢測、數字簽名、消息認證等[16]。事實上,Hash函數主要用來檢測篡改和證明消息真實性。因此,如果受到攻擊時得到的摘要值與已存儲的摘要值不完全匹配,則說明文件不可信,系統存在被攻擊的可能性。
當文件讀取成功后,系統調用相應文件中的Hash函數,通過計算摘要值查看與之前存儲的標準值是否相同。如果相同,說明文件是完整的,給予文件授權可執行;如果不相同,說明文件被修改過,可能存在潛在的攻擊。這時相應的處理機制是直接刪除該文件,然后繼續驗證下一個文件的完整性。待所有文件完成完整性驗證之后,如果有文件被修改,系統會因為缺少啟動所必需文件而無法啟動,需要等待管理員重新加載文件,進行新一輪校驗,直至校驗成功,方可啟動。
在PLC掃描用戶程序之前,首先應保證自身系統的完好性。基于Zynq的可信PLC的設計宗旨是從控制網的源端來保證PLC的安全啟動,構建從硬件到軟件的、完全可信的系統環境。
本文以PLC作為工業控制系統終端設備,選擇工業級芯片Zynq-7030搭建硬件環境,并進行嵌入式系統移植。具體操作方式為設置Picozed 7030啟動方式為SD啟動,復制BOOT.BIN、devicetree.dtb、uImage、uramdisk.image這4個文件到SD卡中。打開終端Tera Term并設置端口為COM4(不同機器端口可能不同),波特率為115 200 bit/s,data為8位,打開開關啟動。
系統啟動過程中,輸出使用Hash驗證內核文件和設備樹文件的完整性的內容,使用的Hash算法為crc32,驗證成功后會輸出crc32+ OK。試驗表明,以基于工業級芯片Zynq-7030作為硬件平臺,結合Hash算法,能夠準確地驗證系統啟動文件的完整性,從而實現PLC啟動的安全、可信。
本文針對工業控制系統信息安全威脅的來源,以可編程邏輯控制器(PLC)為例,重點研究了工業控制系統的終端安全。采用行業內首款將ARM與FPGA集成在一起的工業級芯片Zynq-7000為核心,通過搭建硬件環境并利用Hash算法驗證嵌入式PLC系統啟動所必需文件的完整性,確保了PLC可信啟動,為動態、復雜的工業控制系統終端安全提供了一種新的解決方案,具有較好的應用價值。
[1] 石菲.工業 4.0 下的安全藍圖[J].中國信息化,2015 (3):72-75.
[2] 羅文.德國工業 4.0 戰略對我國推進工業轉型升級的啟示[J].工業經濟論壇,2014,1(4):52-59.
[3] 王小山,楊安,石志強.工業控制系統信息安全新趨勢[J].信息網絡安全,2015 (1):6-11.
[4] 彭勇,江長青,謝豐.工業控制系統信息安全研究進展[J].清華大學學報(自然科學版),2012,52(10):1396-1405.
[5] GOLDENBERG N,WOOL A.Accurate modeling of Modbus/TCP for intrusion detection in SCADA systems[J].International Journal of Critical Infrastructure Protection,2013,6(2):63-75.
[6] MORRIS T,VAUGHN R,DANDASS Y.A retrofit network intrusion detection system for MODBUS RTU and ASCII industrial control systems[C]//2013 46th Hawaii International Conference on System Sciences,2013:2338 -2345.
[7] YASAKETHU S,JIANG J.Intrusion detection via machine learning for SCADA system protection[C]//The 1st International Symposium for ICS& SCADA Cyber Security Research,2013:101-105.
[8] 李彬.基于 MD5 算法的 PLC 固件完整性增強方法研究[D].廣州:華南理工大學,2013.
[9] 邱公偉.可編程控制器網絡通信及應用[M].北京:清華大學出版社有限公司,2000.
[10]沈昌祥,張煥國,王懷民.可信計算的研究與發展[J].中國科學 信息科學 (中文版),2010,40(2):139-166.
[11]CHEN L,MITCHELL C J,MARTIN A.Trusted compating [J].Trusted Couputing Number in Lee Professional Applications of Computing,2005(6):13-15.
[12]尚文利,萬明,趙劍明,等.面向工業嵌入式設備的漏洞分析方法研究[J].自動化儀表,2015,36(10):63-67.
[13]JOSANG A,ROSENBERGER C,MIRALABE L,et al.Local user-centric identity management[J].Journal of Trust Management,2015,2(1):1-28.
[14]DAS A K.Analysis and improvement on an efficient biometric-based remote user authentication scheme using smart cards[J].Iet Information Security,2011,5(3):145-151.
[15]李建,何永忠,沈昌祥.基于可信移動平臺的跨身份標志域訪問模型倡[J].計算機應用研究,2009,26(1):321-324.
[16]蘭昆,唐林,張曉.密碼技術在工業控制系統中的應用研究[J].自動化儀表,2015,36(10):72-76.
Design and Implementation of the Trusted PLC
Aiming at the problems of current industrial control terminal equipment,such as vulnerable to remote code attacks and the system firmware lacks a security check,etc.,taking PLC as an example;the trusted security protection architecture is built through combining the hardware and software. By using Xilinx Zynq-7000 industrial-grade chip,the hardware environment is established; and through transplanting the embedded system,with the co-processing mode,the fast encryption and decryption verification are achieved on the basis of the trusted computing technology.Hash algorithm is used for checking the boot file integrity of PLC system,to ensure credible startup of PLC system.The test results verify the correctness and feasibility of using this method to ensure the safety of terminal equipment and to build a safe and reliable operating environment for industrial embedded devices.
Intelligent manufacturing Industry 4.0 Industrial control system Information security Network security Safety protection system Hash algorithm Embedded PLC
國家高新技術研究發展計劃(“863”計劃)基金資助項目(編號:2015AA043901-01);
國家住房和城鄉建設部科學技術計劃基金資助項目(編號:2016-K8-062)。
喬全勝(1989—),男,現為中國科學院沈陽自動化研究所與沈陽建筑大學在讀聯合培養碩士研究生;主要從事嵌入式系統、工業控制系統信息安全方向的研究。
TH86;TP29
A
10.16086/j.cnki.issn 1000-0380.201612019
修改稿收到日期:2016-07-04。