工業(yè)控制系統(tǒng)的信息安全問題及解決方案分析
2、工業(yè)控制系統(tǒng)的信息安全解決思路
為了防止工業(yè)控制系統(tǒng)在通信過程中遭受上述各種威脅與攻擊,需要使用多層安全措施完成對系統(tǒng)的保護。本文將以現(xiàn)有的研究成果為基礎,從網(wǎng)絡邊界防護、安全協(xié)議和安全控制器方面,介紹控制系統(tǒng)信息安全解決思路。
2.1網(wǎng)絡邊界防護
上文所述工業(yè)控制系統(tǒng)的系統(tǒng)威脅,一方面是由于系統(tǒng)采用傳統(tǒng)IT技術,如操作系統(tǒng)、Web服務器、郵箱的漏洞等造成,另一方面控制系統(tǒng)與企業(yè)網(wǎng)實現(xiàn)互連,暴露于公共網(wǎng)絡之中,面臨更多的攻擊。因此,為了保證工業(yè)控制系統(tǒng)的安全性,首先需要增強網(wǎng)絡邊界的防護,以降低由企業(yè)網(wǎng)引入的威脅風險。標準SP800-82《工業(yè)控制系統(tǒng)(ICS)安全指南》指出,在處理工業(yè)控制系統(tǒng)網(wǎng)絡與其他應用網(wǎng)絡的連接問題時,需要按照最小訪問原則設計,具體分為兩點建議:
1)工業(yè)控制系統(tǒng)部署網(wǎng)絡時,建議隔離工業(yè)控制系統(tǒng)與其他企業(yè)網(wǎng)絡。通常這兩類網(wǎng)絡的流量不同,且企業(yè)網(wǎng)對網(wǎng)絡設備變更沒有指定嚴格的控制規(guī)程;如果工業(yè)控制系統(tǒng)網(wǎng)絡流量存在于企業(yè)網(wǎng)上,可能會遭受拒絕服務式攻擊。網(wǎng)絡隔離可以通過采用防火墻等技術實現(xiàn)。
2)如果工業(yè)控制系統(tǒng)網(wǎng)絡與企業(yè)網(wǎng)之間必須建立連接,盡可能地只允許建立一個連接,且連接通過防火墻或非軍事區(qū)實現(xiàn)。在具體的技術措施上,SP800-82從身份認證、訪問控制、審計與核查、系統(tǒng)與通信保護等方面詳細介紹了可用的技術措施。
(1)身份認證
通過PIN碼或密碼驗證申請訪問的設備或人員。在網(wǎng)絡上傳輸密碼時需要對密碼進行加密,通過選取合適的加密哈希函數(shù),可以阻止重播攻擊。密碼認證還可以輔以其他認證措施,如詢問/應答或使用生物令牌或物理令牌。緊急情況下,工業(yè)控制系統(tǒng)使用密碼和生物認證都存在一定危險。因此在不適合使用密碼的情況下,可以采用嚴密的物理安全控制作為替代。
(2)訪問控制
基于角色的訪問控制(RBAC)可以用于限制用戶的權限,使其能以最小的權限完成任務。系統(tǒng)管理員的通訊需要加以認證,并對其保密性和完整性加以保護,如使用SSHv2和HTTPS協(xié)議。這兩個協(xié)議都使用公鑰/私鑰對進行用戶認證。通信雙方產(chǎn)生并使用對稱密鑰加密數(shù)據(jù)交互過程。
RADJUS遠程認證撥號用戶服務式目前使用最多的認證和授權服務。它使用IEEE802.1×和EAP協(xié)議,可以在網(wǎng)絡的各個層實現(xiàn)用戶認證。例如,防火墻和接入路由可以作為認證代理。
當無線設備或中斷用戶設備需要與其連接時,認證代理向設備發(fā)出詢問,設備通過認證服務器返回認證信息,從而獲得授權和接入許可。
調(diào)制解調(diào)器經(jīng)常用于提供備份連接。回叫系統(tǒng)通過存儲于數(shù)據(jù)庫中的回叫號碼,確認撥號者是否為合法用戶。遠程控制軟件需要使用唯一的用戶名和密碼,加密和審計日志。鏈路層的鄰居認證需要使用CHAP協(xié)議等實現(xiàn)。
無線用戶接入和網(wǎng)絡設備間的鏈接可以使用多種方式實現(xiàn),如IEEE 802.11b/g的網(wǎng)絡接入點方式。所有的無線通信需要使用強加密,如IEEE802.11i中的AEP加密。無線接入需要使用IEEE802.1x認證客戶。
(3)審計與核查
工業(yè)控制系統(tǒng)需要進行周期性的審計,驗證內(nèi)容包括:測試階段的安全控制措施在生產(chǎn)系統(tǒng)中仍安裝使用;生產(chǎn)系統(tǒng)不受安全破壞,如果受到安全破壞則提供攻擊的信息;改動項目需要為所有的變動建立審查和批準的記錄。
周期性的審計結果用一定的度量表示,用于顯示安全性能和安全趨勢。審計需要使用特定工具進行記錄維護,需要工業(yè)控制系統(tǒng)中的組件支持。審計有利于維護工業(yè)控制系統(tǒng)在系統(tǒng)生命周期內(nèi)的完整性。工業(yè)控制系統(tǒng)需要為審計工具提供可靠的同步時間戳。工業(yè)控制系統(tǒng)應用中維護的日志可以存儲于多個地點,加密或不加密都是可以的。
(4)系統(tǒng)與通信保護
系統(tǒng)與通信的保護可以通過網(wǎng)絡防護措施,如防火墻和入侵檢測系統(tǒng)等,以及數(shù)據(jù)加密,如VPN等實現(xiàn)。網(wǎng)絡防火墻控制不同安全等級的網(wǎng)絡區(qū)域間的數(shù)據(jù)流量。NIST SP 800-41為防火墻的選擇和防火墻策略提供了指導。在工業(yè)控制系統(tǒng)環(huán)境下,需要在控制網(wǎng)和企業(yè)網(wǎng)之間部署防火墻。防火墻包含的特征功能包括:事件記錄,入侵檢測系統(tǒng),基于非軍事區(qū)的路由,訪問列表等。
當系統(tǒng)被嗅探或攻擊時,入侵檢測系統(tǒng)發(fā)出警報。入侵檢測系統(tǒng)通過在網(wǎng)絡的各個關鍵點收集信息,分析數(shù)據(jù)包內(nèi)容發(fā)現(xiàn)惡意流量,并發(fā)出警報、廢棄無效數(shù)據(jù)、記錄事件和活動并觸發(fā)其他安全響應。對于多種工業(yè)控制系統(tǒng)中的應用協(xié)議所受到的攻擊,如DNP和lCCP,入侵檢測系統(tǒng)也會增加相應的攻擊特征。
基于IPSec的VPN可以為網(wǎng)絡邊界的通信提供安全隧道,通常在相應的防火墻上執(zhí)行。IPsec可以保證完整性、認證和數(shù)據(jù)保密性。在隧道入口處,IP包外增加額外的數(shù)據(jù)包頭,路由器使用新的包頭信息轉(zhuǎn)發(fā)數(shù)據(jù),到達隧道出口時,將原始IP包提取出來。在用戶認證過程中,IPSec通常使用私鑰和RSA簽名。在消息認證和完整性保護時,使用MD5或SHA哈希函數(shù)。在數(shù)據(jù)加密時,使用AES或3DES.IPSec還使用Diffie-Hellman作為對稱密鑰推導。IPSec設備使用IKE協(xié)議認證其他設備、協(xié)商和分配對稱加密密鑰以及建立IPSec安全連接。
控制系統(tǒng)的安全管理包括檢測、分析、提供安全和事件響應。具體內(nèi)容包括動態(tài)調(diào)整安全要求,安全漏洞的優(yōu)先級排序,以及安全要求到安全管理的映射:認證和授權服務器,安全密鑰,流量過濾,IDS,登錄等。SNMP用于管理IP網(wǎng)絡資源,如路由,防火墻和服務器等。SNMP也可用于提供控制系統(tǒng)網(wǎng)絡的集中管理。SNMPv3包括的安全特性有消息完整性,認證和加密。SNMPv3使用MD5和SHA哈希算法和DES以及AES加密算法。
(5)其他措施
為了保證網(wǎng)絡操作的可靠性,工業(yè)控制系統(tǒng)需要設置冗余拓撲和功能。工業(yè)控制系統(tǒng)中大多使用以太網(wǎng)和IP網(wǎng)絡作為通信協(xié)議。以太網(wǎng)層的冗余可以通過在局域網(wǎng)內(nèi)使用RSTP協(xié)議中的網(wǎng)格拓撲而實現(xiàn)。IP層的冗余通過路由間的備份鏈接,如OSPF動態(tài)路由協(xié)議,和IP網(wǎng)絡冗余接人,如VRRP協(xié)議等。MPLS可以為IP網(wǎng)絡中的虛擬任意協(xié)議數(shù)據(jù)提供可靠的數(shù)據(jù)傳輸。隧道如L2TP協(xié)議等也可以為IP網(wǎng)絡中的數(shù)據(jù)提供可靠傳輸。
在控制系統(tǒng)中的時鐘和網(wǎng)絡設備需要精確同步,事件日志記錄時也需要記錄下準確的時間。NTP協(xié)議和IEEEl588協(xié)議可以用于時間同步。NTP協(xié)議在因特網(wǎng)中廣泛使用,IEEEl588協(xié)議則主要滿足控制系統(tǒng)對于時鐘同步的要求。這兩種協(xié)議均可由獨立設備提供服務,或者有其他網(wǎng)絡設備的組件提供服務。
2.2協(xié)議安全性
工業(yè)通訊協(xié)議,如MODBUS協(xié)議等,協(xié)議設計時未采取安全措施。然而隨著控制系統(tǒng)與外部網(wǎng)絡的連接增多,需要增加通信雙方的認證過程。協(xié)議的安全性可以通過兩種方式提高,一是直接修改協(xié)議,增加認證功能;二是在不修改現(xiàn)有協(xié)議的基礎上,增加信息安全層。
文獻設計了一種認證型Modbus協(xié)議,該協(xié)議通過對消息使用加密函數(shù)和哈希鏈,增強Modbus協(xié)議的認證功能,從而使攻擊者無法偽裝成主機。同時利用一個壓縮函數(shù),減少數(shù)據(jù)存儲大小。這種方式可以增加協(xié)議對于通信雙方的認證過程,但同時也會增加通訊負擔,即每次通話傳輸?shù)南⒍夹枰?jīng)過加密認證,不一定能滿足控制系統(tǒng)對于實時性的要求。因此在設計時需要同時考慮計算效率與計算消耗。
文獻借鑒功能安全的概念,提出了一種在通信系統(tǒng)之上增加信息安全模塊的方法??刂葡到y(tǒng)的功能安全在傳輸系統(tǒng)的基礎上增加功能安全層,無需改變底層傳輸系統(tǒng),即可實現(xiàn)系統(tǒng)的故障安全。類似地,文獻設計一種信息安全模塊,用于保護端到端通信的認證、完整性和保密性。所謂的安全模塊不是指簡單的物理模塊,而是與PROFINET IO中的設備模型相對應,是一個軟件實現(xiàn)。如圖2所示,安全模塊從應用層中獲取過程數(shù)據(jù),通過加密算法加密過程數(shù)據(jù),利用MD5算法計算消息完整性編碼,狀態(tài)字節(jié)用于表示消息完整性和超時。安全模塊通過參數(shù)化,可以適應不同的安全需求和不同的計算能力。消息完整性編碼可以防止中間人攻擊,例如,攻擊者截取發(fā)送的消息并篡改過程數(shù)據(jù),由于沒有密鑰,無法計算出準確的消息完整性編碼,接受者在接收到消息后對MAC進行驗證,如果無法驗證其正確性,則會修改狀態(tài)字節(jié),用以匯報受攻擊狀態(tài)。
安全模塊是置于PROFINET IO之上的軟件層,只能用于防御基于網(wǎng)絡的攻擊,而不能保證設備安全。如果攻擊者獲取了設備的控制權,那么數(shù)據(jù)會被操控,而安全模塊將無法產(chǎn)生作用。因此,可以將安全模塊可以與設備安全措施相結合,解決設備和網(wǎng)絡安全。
協(xié)議安全性主要是體現(xiàn)在對傳輸數(shù)據(jù)進行加密處理,保證消息的完整性和保密性,并實現(xiàn)對設備的安全認證。在實際應用中,需要考慮兩個影響因素,一方面,由于加密措施的計算量大,對通信實時性和系統(tǒng)的可用資源都會產(chǎn)生影響,二是需要設計合理有效的密鑰管理方法。
評論