?

基于SHA1的SCADA系統PLC固件完整性驗證方法

2017-07-31 17:13黃信兵劉桂雄
中國測試 2017年6期
關鍵詞:傳輸數據固件完整性

黃信兵, 劉桂雄

(1.廣東交通職業技術學院,廣東 廣州 510800;2.華南理工大學機械與汽車工程學院,廣東 廣州 510640)

基于SHA1的SCADA系統PLC固件完整性驗證方法

黃信兵1,2, 劉桂雄2

(1.廣東交通職業技術學院,廣東 廣州 510800;2.華南理工大學機械與汽車工程學院,廣東 廣州 510640)

針對SCADA系統面臨的數據竊取、篡改等信息安全問題,基于固件、可信根完整性度量,研究SCADA系統PLC固件完整的必要性;采用安全性高的SHA1算法,提出一種PLC固件完整性驗證方法。在SCADA系統外的驗證計算機上開發完整性驗證軟件,通過網絡偵聽、協議分析實現固件二進制數據提取、待下載固件SHA1值匹配驗證、下載固件SHA1值匹配驗證等功能,完成PLC固件傳輸過程中的完整性驗證。試驗結果表明:該方法可有效驗證PLC固件完整性,提高PLC運行可信度。

安全哈希算法;數據采集與監視控制系統;可編程邏輯控制器;固件;完整性

0 引 言

安全、可靠的SCADA系統為分布在各地站點的石油天然氣管道、電網、鐵路等重要基礎設施提供關鍵的控制、通信和監視功能[1]。隨著信息技術在工業控制系統中的廣泛應用,越來越多SCADA系統暴露于Internet,網絡攻擊、信息篡改、病毒木馬等問題越來越嚴重。2015年戴爾公司年度安全威脅報告指出,2014年針對SCADA系統攻擊比2013年增加約2倍[2]。PLC作為SCADA系統核心現場設備,可直接監視和控制終端物理系統,正如Stuxnet攻擊,一臺處于惡意控制下的PLC會對重要基礎設施工業控制系統產生毀滅性后果[3-4],PLC固件的完整性直接關系到SCADA系統的安全性。本文針對工業以太網環境下PLC固件傳輸,提出一種基于SHA1算法[5]的PLC固件完整性驗證方法,以提高固件源可信性。

1 PLC固件完整驗證的必要性

PLC架構主要包括應用程序、固件和硬件3部分,如圖1所示。固件是存儲在具有永久儲存功能器件中的二進制代碼,作為橋梁為硬件和應用程序提供接口[6]。固件一般加載到PLC設備后不能被修改,也不能直接被讀取[7]。因此,若是在加載前或加載過程中固件被修改,PLC處于不安全工作環境中,所有數據都可能被監聽或竊取,一旦滿足其執行條件,將導致SCADA系統癱瘓,甚至SCADA系統能被攻擊者操縱[8]。固件作為PLC的可信根,是保證PLC可信運行關鍵所在??尚庞嬎愕幕舅枷胧窃谝粋€系統中首先建立一個信任根,再建立一條信任鏈,一級測量認證一級,一級信任一級,把信任關系擴大到整個SCADA系統,從而確保SCADA系統可信[9]。

圖1 通用PLC架構

2 基于SHA1算法PLC固件完整驗證方法

通過對ANSI/ISA-99等標準分析,PLC屬于工業控制系統分層參考模型第1層(即本地或基本控制層),監控第0層(物理過程層)的執行器等現場設備[10]。若PLC由于攻擊等原因導致發出不正確指令,則第0層現場設備可能會出現異常操作。本文基于PLC硬件和邏輯程序是在可信的前提下進行研究。

固件完整性是指在傳輸、儲存固件過程中,確保固件不被未授權篡改或篡改后能被及時發現[11]。SHA1作為一種驗證數據完整性方法,對接收消息會產生一個具有唯一性的消息摘要,但該消息摘要不能復原信息。工業控制系統中采用現場總線傳輸數據,其中使用以太網進行數據傳輸最為廣泛。隨著自動化水平提高,通過以太網可實現PLC固件版本更新等高級操作。以太網環境下基于SHA1算法的PLC固件驗證包括待下載固件SHA1值驗證、下載固件SHA1值驗證、固件完整性驗證等。圖2為實現該方法PLC固件完整性驗證系統模型,在控制計算機傳輸PLC設備固件外部增加驗證工具,進行待下載固件傳輸(標號①)驗證和下載固件傳輸(標號②)驗證,完成固件完整性驗證。

圖2 PLC設備固件完整性驗證系統模型

2.1 待下載固件驗證

PLC廠家在向用戶提供固件時還需要提供該固件的SHA1值(即安全固件SHA1值),用戶從廠家獲得固件(本文稱為待下載固件)過程中可能會受到攻擊,因此用戶需要在下載固件或更新固件之前,對該固件進行完整性驗證。

待下載固件不能直接載入PLC,而需要基于通信協議分析建立一個模擬PLC設備的通信軟件,與控制計算機通信。圖3為待下載固件SHA1值驗證流程圖??刂朴嬎銠C通過網絡等接口將待下載固件傳輸到驗證工具中,得到傳輸過程的二進制數據,去掉數據中通信協議部分,對待下載固件二進制數據進行SHA1值計算。將待下載固件SHA1值與安全固件SHA1值進行匹配,若兩者一致則通過驗證,可下載到PLC中;否則說明在獲取固件過程中受到非授權篡改,需要從廠家重新獲得固件。

2.2 下載固件完整性驗證

圖3 待下載固件驗證流程圖

將驗證后的PLC固件通過工業以太網方式下載到現場PLC中,為監控下載過程中PLC固件完整性,對網絡偵聽截獲的下載固件建立SHA1值,并與安全固件SHA1值匹配對比,具體如圖4所示。若兩者一致則通過驗證,下載到PLC中固件完整;否則說明下載過程中固件完整性受到破壞,需重新下載。

圖4 下載固件驗證流程圖

3 實例分析

利用Microsoft Visual Studio語言開發一款基于SHA1算法的PLC固件驗證軟件。采用羅克韋爾FlexLogix 5434 PLC及該公司提供的15.06.01版本安全固件,在控制計算機上需要安裝RSLinx軟件和固件更新軟件Control Flash 9.00.015。

3.1 數據傳輸分析

利用網絡偵聽截獲傳輸數據,通過對截獲傳輸數據進行相關性、規律性分析,找出協議數據段、固件數據段,剖析其數據鏈路層傳輸協議,如圖5所示。

圖5 傳輸數據的分析

3.2 未知安全固件驗證實驗設計

本文將待下載固件和下載固件統稱為未知安全固件。圖6為未知固件驗證實驗軟件界面圖。點擊“未知安全固件傳輸數據”按鈕,固件傳輸數據將會得到顯示;單擊“提取固件”按鈕,得到從獲得數據中分離的固件數據;單擊“計算固件SHA1”按鈕,根據固件數據計算得到40位SHA1值;單擊“安全固件SHA1”按鈕,再單擊“固件SHA1值驗證”按鈕,將截獲固件SHA1值和安全固件SHA1值進行匹配對比,若匹配一致,則在對話框中顯示“完整”,如圖6(a)所示;否則顯示“不完整”,如圖 6(b)~圖 6(d)所示。通過對比試驗可看出,該方法能夠驗證PLC固件完整性,從而提高PLC數據的安全性、可信性。

4 結束語

1)在重要基礎設施系統中建立針對SCADA系統的安全工具,對保持和建立信任非常有必要,基于SHA1的PLC固件完整性驗證方法,對于增強SCADA系統PLC固件可信性是可行選擇。

2)該方法是在現有SCADA系統外增加一套驗證工具,其優勢在于保證下載到PLC中的固件完整性,同時不會對原有SCADA系統進行更改,且與生產系統相隔離。

3)用Microsoft Visual Studio開發基于SHA1算法驗證工具,在羅克韋爾FlexLogix 5434 PLC上實現固件驗證,實驗結果表明,該驗證方法可有效驗證固件完整性。

圖6 未知安全固件驗證實驗軟件界面

[1] 蘭昆,饒志宏,唐林,等.工業SCADA系統網絡的安全服務框架研究[J].信息安全與通信保密,2010(3):47-49.

[2]戴爾年度威脅報告揭示新興的安全風險[EB/OL].(2015-04-14)[2016-08-12].http://server.51cto.com/News-472123.htm.

[3]MATROSOV A, RODIONOV E, HARLEY D, et al.Stuxnet under the microscope[R].ESET Technical Report,2011.

[4]ALBRIGHT D, BRANNAN P, WALROND C.Did stuxnet take out 1000 centrifuges at the natanz enrichm ent plant?[R].Institute for Science and Internat-ional Security,2010.

[5] 劉桂雄,張龍,徐欽桂.基于改進SHA-1物聯網監測節點完整性驗證與增強方法[J].中國測試,2013,39(1):80-83.

[6]SCHUETT C, BUTTS J, DUNLAP S.An evaluation of modification attacks on programmable logic controllers[J].International Journal of Critical Infrastructure Protection,2014,7(1):61-68.

[7]STRADLEY J,KARRAKER D.The electronic part supply chain and risks of counterfeit parts in defense applications[J].Components and Packaging Technologies,IEEE Transactions,2006,29(3):703-705.

[8]SRIDHAR S,MANIMARAN G.Data integrity attacks and their impacts on SCADA control system[C]//Power and Energy Society General Meeting,2010,2007(2009):1-6.

[9]沈昌祥,張煥國,王懷民,等.可信計算的研究與發展[J].中國科學,2010,40(2):139-166.

[10]彭勇,江常青,謝豐,等.工業控制系統信息安全研究進展[J].清華大學學報(自然科學版),2012(10):1396-1408.

[11]劉桂雄,鐘森鳴,余中潑.一種PLC固件完整性驗證裝置及驗證方法:103645672A[P].2014-03-19.

(編輯:商丹丹)

PLC firmware integrity verification method of SCADA system based on SHA1

HUANG Xinbing1,2, LIU Guixiong2
(1.Guangdong Communication Polytechnic,Guangzhou 510800,China;2.School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou 510640,China)

For data theft,data tampering and other information security issues of SCADA system and based on integrity measurement of the firmware and the trusted root,this paper aimed to research the necessity of integrity of PLC firmware for SCADA system,and proposed a PLC firmware integrity verification method by using SHA1 algorithm with high security.It developed an integrity authentication software on an authentication computer which was independent from SCADA system.Through the network listening and protocol analysis,the functions of the extraction of the firmware binary data, matched verification of SHA1 value of un-download firmware, and matched verification of SHA1 value of download firmware were realized,and completed the integrity test during PLC firmware transmission.The test results show that the method can effectively verify the integrity of PLC firmware,and improve the operation credibility of the PLC.

SHA1; SCADA system; PLC; firmware; integrity

A

1674-5124(2017)06-0114-04

10.11857/j.issn.1674-5124.2017.06.024

2016-09-20;

2016-11-15

2016年度省科技發展專項資金(2016B010113001)

黃信兵(1982-),男,河南濮陽市人,高級工程師,華南理工大學訪問學者,研究方向為自動化與檢測系統研發。

猜你喜歡
傳輸數據固件完整性
基于單片機的物聯網傳輸數據高并發讀寫系統設計
基于SSL VPN實現安全共享疾控單位之間的數據
基于深度強化學習的物聯網傳輸數據實時調度方法
石油化工企業設備完整性管理
ELM及IS/OS完整性對年齡相關性黃斑變性預后視力的影響
蘋果專利可采用光纖輸出燈光并傳輸數據將光纖隱藏于車輛部件內
基于固件的遠程身份認證
谷歌公司推出計算機固件分析工具幫助用戶阻止惡意軟件入侵
英特爾發布免費固件引擎
提取ROM固件中的APP
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合