鮑金鵬 梁光明 劉偉

摘 要: 面對日趨嚴峻的工業控制系統安全威脅,通常采取主動隔離和被動檢測的安全解決方案,然而這些方案僅能作為解決工業控制系統邊界安全的一種手段,對于解決系統內部網絡以及有效通信等問題作用不是太大,侵入者依舊可以利用各種手段侵入到內部網絡進行鏈路數據破壞。該文從應用層數據安全需求出發,提出一種基于加密網關的工業控制系統通信數據加密防護方法,采用RC4加密算法有效保護上位機與PLC的通信數據安全。實踐表明,該方案可靠、穩定、安全,能滿足以太網環境下數據加密傳輸的需要。
關鍵詞: 工業控制系統; 鏈路數據; 安全防護; 加密
中圖分類號: TN915?34 文獻標識碼: A 文章編號: 1004?373X(2016)08?0014?04
Safety protection method of data in application layer for industrial control system
BAO Jinpeng, LIANG Guangming, LIU Wei
(College of Electronic Sciences and Engineering, National University of Defense Technology, Changsha 410073, China)
Abstract: Faced with increasingly severe security threats to industrial control system, the security solutions of the active isolation and passive detection are usually taken. However, these solutions can be only used as a means to deal with the border security of industrial control systems, but cannot solve the issues in internal networks of the system and effective communication entirely, and the intruders can still take advantage of a variety of means to intrude into the internal network to conduct link data destruction. Considering the security requirement of data in the application layer, a communication data encryption protection method based on encryption gateway is proposed for the industrial control systems, in which RC4 encryption algorithm is adopted to effectively protect the communication data between upper computer and PLC.
Keywords: industrial control system; link data; safety protection; encryption
0 引 言
工業控制系統(Industrial Control System,ICS)它已廣泛用于國防軍工、交通運輸、科學研究、石油煉化、核能電力、污水處理等領域,用于控制生產設備的運行,系統在工業以太網技術大量應用下引發的病毒和木馬攻擊事件頻發,直接影響公共基礎設施的安全[1]。2010 年,網絡超級武器“Stuxnet ”病毒通過針對性的入侵工業控制系統,使伊朗布什爾核電站核反應堆幾近癱瘓;2011年,黑客通過侵入美國伊利諾伊州斯普林菲爾德市(Springfield)的公共供水SCADA系統網絡,通過連續開關水泵閥門,導致水泵損壞,影響整個區域正常供水。
隨著ICS安全形勢的日趨嚴峻,國內外安全機構和公司對工業控制系統提出了一系列安全解決方案,廣泛采用包括工業防火墻、IDS(入侵檢測系統)、IPS(入侵保護系統)、VPN(虛擬專用網絡)和網閘等防護設備。文獻[2]從工控平臺、網絡、安全策略、管理流程等方面對ICS的安全性進行了分析,并針對ICS的不同層次提出了相應的解決方案。文獻[3]提出運用“深度防御”思想,以ICS資產功能及重要性為安全域劃分依據,從技術與管理兩個維度設計適用于ICS的網絡安全防護體系。文獻[4]基于數據安全和管理安全兩個維度來討論了ICS安全防護技術的設計原則,從區域劃分、終端防護、通信管控、安全設備選擇方法、安全操作策略和流程,給出了典型工業控制系統的安全部署圖。這些方案僅能作為解決工業控制系統邊界安全的一種手段,對于解決系統內部網絡以及有效通信等問題作用不是太大,侵入者依舊可以利用邊界防護設備自身配置中的漏洞,進入內部網絡,對通信數據進行截獲分析,獲取通信數據格式和通信時序,實現偽上位機設計,偽造時序數據對可編程邏輯控制器(PLC)進行攻擊,達到欺騙通信、欺騙控制的攻擊目的,進而對整個系統進行控制和破壞。
本文提出了一種基于加密網關的工業控制系統通信數據加密防護方法;該方法采用RC4加密算法,實現了上位機與PLC的通信數據保密。
1 工業控制系統網絡安全隱患分析
1.1 工業控制系統結構模型
以典型的ICS應用為例,其基于工業以太網絡,整個控制處理單元主要用于生產過程控制與調度自動化系統,同時可以對現場的運行設備進行監視和控制,以實現實時數據采集和處理、設備控制、參數調節以及各類信號監測等各項功能。以西門子工控系統為例,其簡化結構模型如圖1所示。
該模型包括現場編程計算機(Step7)、可編程邏輯控制器(PLC)、智能電子設備(IED)和確保各組件通信的接口技術。其中,作為西門子PLC的專用編程軟件,Step7可以通過多種通信模式完成硬件配置、參數設置、通信組態、編程、診斷等功能,實現工程文件的上裝、下載等各種命令信息。PLC主要執行邏輯運算、順序控制、定時、計數等操作命令,控制各種類型的IED設備[5]。
1.2 工業控制系統通信數據結構
基于上述簡化模型,本文對現場編程計算機與PLC實時通信數據進行分析,得出以太網通信模式下工業控制系統的上位機與PLC的通信協議層次模型,如圖2所示。其中,在數據鏈路層、網絡層、傳輸層使用國際通行Ethernet+TCP/IP標準,而在應用層則使用基于工業以太網的現場總線協議PROFINET(PROcess FIeld NET)技術[6]。為進一步分析實時通信數據,本文利用wireshark抓包軟件抓取鏈路上通信數據,對數據內容進行分析,獲取了各層協議實際內容,如圖3所示。
1.3 工業控制系統網絡數據安全隱患
ICS網絡像其他信息網絡一樣通常面臨四大威脅:一是利用工業控制系統軟硬件存在的漏洞,截獲物理通道上傳輸的所有信息,并進行數據比對分析,甄別信息內容,獲取重要資源;二是中斷系統網絡或者使服務器拒絕服務,數據無法送達接收方,無法繼續執行相應的命令;三是非法用戶冒充合法用戶,并使用合法用戶的口令以合法的用戶身份加入到通信雙方之間,實時監控雙方通信內容,實施攻擊時參與數據流的篡改替換,破壞應用系統的正常運行;四是攻擊者偽裝成另一臺合法上位機來哄騙網絡中的下位機誤將其作為合法機器加以接收,誘使下位機向他發送據或接收他偽造的失真甚至完全破壞系統數據,促使系統癱瘓等。如圖4所示
在ICS底層網絡中,實時傳送的信息主要來自于PLC、現場的變送器、過程量轉換器、開關、控制閥、執行器等之間交互的數據,信息包括諸如設備型號、監測量、系統組態,報警標識等。這些數據報文的數據量一般不是很大,其所攜帶信息量也就少,經過工業以太網協議封裝后的報文往往也不超過幾百字節。另外,系統的生產控制過程一經設定,往往不能隨意變動,所以涉及生產控制信息的總體數據量和信息量不大,對于攻擊者來說,只需要截獲一個生產運行周期的數據就可以掌握這條生產線的全部信息[7]。
攻擊者可以利用高級隱遁技術(AET)手段,如字符串混淆、加密和隧道技術、碎片技術等騙過IPS的檢查,穿透IPS成功進入ICS內部[8],識別PLC型號、硬件組態信息、外設屬性等信息,如果上位機與PLC的通信內容不加任何保護措施,那么很容易偵測出包括通信數據格式和通信時序,攻擊者可以建立偽上位機通過修改數據包頭、凈負荷等攻擊PLC,致使PLC工作癱瘓,無法正常工作。要確保ICS控制網絡數據安全,就必須確保上位機與下位機之間敏感數據的采集、傳輸、存儲、執行過程中的信息安全問題。基于此目的,本文通過采用數據加密技術,將用戶數據經加密算法加密成密文,然后再將密文發送到網絡上進行傳輸,這樣,即使發生數據被截獲,也能夠確保數據內容無法識別和執行,從而可以提高上位機與PLC數據傳輸的安全性、可用性和完整性,保證ICS的正常工作。
2 應用層數據傳輸安全方案
2.1 工業控制系統應用層數據加密模型
基于上述安全隱患和實際需求,本文提出一種應用層數據安全防護方法,其簡化模型如圖5所示。
在該模型中,編程上位機編寫STL/LAD高級程序,由Step7編譯成可執行代碼,再將可執行二進制代碼通過PROFINET協議對數據封包,使用加密網關對此數據包進行加密處理,通過以太網發送數據包,經由中間交換機對數據進行分發,在每一個PLC前由加密網關完成對交換機分發數據解密處理,然后由PLC解析并執行這些代碼,這樣就完成了上位主機對PLC的現場編程。
數據加密按加密途徑分有鏈路加密與端?端加密兩種。鏈路加密側重在鏈路上而不考慮信源與信宿,是對保密信息通過各鏈路采用不同的加密密鑰提供安全保護。端?端加密指信息由發送端自動加密,并且由通信協議進行數據包封裝,然后作為不可閱讀和不可識別的數據穿過局域網,當這些信息到達目的地,將被自動重組、解密,而成為可讀的數據。考慮到非對稱密鑰密碼體制相對于對稱密鑰密碼體制運行速度慢,而ICS需要在很短的時間內處理大量的數據,對數據的傳輸要求精確、安全且快速,如果采用非對稱密鑰密碼體制會引入較大的消息傳輸延遲,所以該模型把加、解密速度作為首選條件,綜合考慮加密算法的安全性,本文采用RC4算法,其算法簡單、速度快,不管是軟件還是硬件,實現起來都十分容易。
2.2 RC4加密算法[9]
RC4算法包含2個部分:密鑰調度算法(Key Scheduling Algorithm,KSA)以及偽隨機數生成算法(Pseudo Random Generation Algorithm,PRGA)。 KSA算法用來設置數組S的初始排序,PRGA算法用來隨機選取元素作為密鑰K,與新的S序列字節間進行隨機置換,產生最后的隨機序列輸出,即為加密密鑰,用來與明文進行異或運算實現加密。RC4算法加密流程見圖6。
2.2.1 KSA算法
從1~256 B(8~2 048 b)的可變長度密鑰初始化一個256 B的狀態矢量S,S的元素記為S[0],S[1],S[2],…,S[255],從始至終置換后的S包含從0~255的所有8 b的數。對于加密和解密,字節K由S中256個元素按一定方式選出一個元素而生成,每生成一個K的值,S中的元素就被重新置換一次。
2.2.2 PRGA算法
在KSA將數組S進行初始隨機化排序的基礎上,PRGA從數組S中隨機選取元素作為密鑰流字節,同時修改數組S的排序,以便下次密鑰流的選取。選取過程取決于兩個索引i和j,這兩個索引都從0開始,選取時重復執行算法,直到產生與明文的長度相等的密鑰流。矢量S一旦完成初始化,輸入密鑰就不再被使用,密鑰流的生成為S[0]~S[255],對每個S[i],根據當前S的值,將S[i]與S中的另一個字節置換,當S[255]完成置換后,操作繼續重復,從S[0]開始。其算法流程[10]如圖7所示。
3 實驗驗證
基于圖7數據加密傳輸模型,本文搭建了一個簡單驗證平臺,平臺以編程計算機、加密網關、可編程控制器(PLC)、交換機等組成局域網絡。一個正常的數據包由用戶包頭和用戶數據構成,如果加密網關對整個數據包不進行剝離就直接加密處理,交換機收到的數據包都是經過加密處理的,它沒有密鑰,不能解密加密包,也就不能正常讀取報頭內容,無法完成數據的路由,網絡也就不能正常工作。在此模型中,本文只對包的用戶數據進行加密,而留下明文的包頭,使得數據可以被工業以太網閱讀,完成數據交互功能。通過wireshark,本文對抓取的數據進一步分析,可以獲取上位機與PLC傳送的實時有效數據包全部內容,如圖8、圖9所示。
通過比對抓取的數據包可看出,除了數據內容Data不同外,其他報頭的信息一樣,這也驗證了對于Ethernet+TCP/IP協議包頭本文不需要進行加密,只需要對用戶數據進行加密,然后對明文的包頭和密文的數據進行封裝傳送。基于上文提出的數據加密傳輸模型,本文在對數據通信協議結構分析的基礎上,編程實現用戶數據提取,而后利用加密算法對用戶數據進行加密處理。從圖10可以看出,其中一個數據包,其用戶數據是22 B,經過加密處理后變成了一個沒有實際意義的44 B的字符串,然后本文對密文進行解密操作,又還原成相同的22 B用戶數據。在整個加密處理過程中,本文的報頭始終是明文,這樣工業以太網就可以進行識別。
基于上文提出的模型,在節點A通過抓包軟件,截獲A發送給B的數據包和在C處截獲B發送給C的數據包,發現其數據包內容是一樣的,見圖11。而在節點B通過抓包軟件,截獲由A發送B的數據包,見圖12。通過比對發現,數據包內容已經完全失去了原來的意義。
上述實驗中可以看出Step7編譯之后的數據經過加密處理后,變成了不識別的亂碼,只有經過正確的密鑰解密后,才能還原成原始數據,執行相應的操作。所以,在該條數據鏈路上經加密后的數據傳輸是有安全保障的,即使在B處被非法截獲也毫無實際意義,可以在實際應用中很好的起到保護關鍵數據傳輸的作用。
4 結 語
本文主要針對當前工業控制系統網絡中存在的傳輸數據信息被截獲、篡改、偽造等問題,提出了一個可以增強上位機與PLC傳輸過程中安全可靠性的方案,即設計一個對傳輸的數據進行加密和解密的模型,并搭建實驗平臺進行驗證,實驗表明該數據傳輸方案可靠、穩定、安全,能夠滿足工業以太網環境下數據加密傳輸的需要。
參考文獻
[1] 魏欽志.工業控制系統安全現狀及安全策略分析[J].信息安全與技術,2013,4(2):23?26.
[2] 向登宇,馬增良.工業控制系統安全分析及解決方案[J].信息安全與技術,2013,4(11):28?30.
[3] 陳亞亮,楊海軍,姚欽鋒,等.工業控制系統網絡安全防護體系研究[J].信息網絡安全,2013(10):57?59.
[4] 王斯梁,尹一樺.工業控制系統安全防護技術研究[J].通信技術,2014,47(2):205?209.
[5] 張還,王至秋,趙麗清,等.圖解西門子S7?300/400PLC控制系統設計快速入門[M].北京:機械工業出版社,2011.
[6] 李程.基于PROFINET協議的現場總線設備研究[D].青島:青島科技大學,2010.
[7] WANG Y. SCADA: Securing SCADA infrastructure communications [J]. International journal of communication networks and distributed systems, 2011, 6(1): 59?79.
[8] 李世元,徐金偉.高級隱遁技術對網絡安全的威脅[C]//中國信息安全技術大會暨工業控制系統安全發展高峰論壇論文集.北京:中國電子信息產業發展研究院,2013:142?148.
[9] 楊梅,張耀文.RC4流密碼原理與硬件實現[J].信息通信,2009(6):40?43.
[10] 黃道林,楊軍.RC4加密算法的FPGA設計與實現[J].云南大學學報(自然科學版),2009,31(z1):80?83.
[11] 余勇,林為民.工業控制SCADA系統的信息安全防護體系研究[J].信息網絡安全,2012(5):74?77.