陳炎華(深圳市計量質量檢測研究院)
在新一輪信息技術革命的帶動下,物聯網、共享經濟、移動支付等全新產業形態競相涌現,全球都在積極迎接數字化時代的到來,全面擁抱“互聯網+”。然而,隨之而來的網絡攻擊也愈加復雜且更難以防范,網絡安全問題已然成為人類進入信息時代最為嚴峻的共同挑戰。
為了應對新的網絡安全形勢,UL 2900系列網絡安全標準應運而生。該系列標準能夠為聯網產品與系統提供網絡安全的測試準則,評估軟件漏洞與弱點,應對已知的惡意軟件,評估安全機制并提升安全意識。其中UL 2900-1[1]是針對常規聯網產品軟件網絡安全的通用要求,UL 2900-2則是基于不同行業的特性和用戶的實際安全需要發布的加強版本。本文選取UL 2900-2-2——《工業控制系統的特殊要求》[2],從范圍、產品文檔、風險控制、風險管理、缺陷和漏洞、軟件弱點分析等方面進行解讀,為關注網絡安全標準化建設的企業、檢測機構等相關方提供參考。
UL 2900-2-2是UL 2900-1——《可聯網產品的軟件網絡安全標準 第1部分:通用要求》針對工業控制系統(Industrial Control Systems, ICS)的補充,產品符合UL 2900-2-2的同時也應滿足UL 2900-1的要求,重復部分不再贅述,可參考文獻[3]。
UL 2900-2-2安全評估標準適用于工業控制系統組件的評估,該標準適用于但不限于以下產品:可編程邏輯控制器(PLC),監控與數據采集(SCADA)服務器,ICS系統的網絡設備,分布式控制系統(DCS),遠程終端單元(RTU),數據電臺,過程控制系統,智能電子設備(IED),智能傳感器,數據采集系統,人機界(HMI),控制器,工業數據庫、數據記錄器和數據存儲系統,IO服務器,嵌入式系統/控制器,控制服務器,現場總線……
工業控制系統,是由各種自動化控制組件和實時數據采集、監測的過程控制組件共同構成,用于監測和控制工業生產過程,確保工業設備正常運行,廣泛應用于石化、水利、電力、冶金、生產制造等行業領域。基于其應用的特殊性,與通用要求UL 2900-1相比,UL 2900-2-2主要在風險控制以及缺陷和漏洞部分加以補充。
產品應遵循UL 2900-1中關于產品文檔的要求,在文檔中提供必要的產品信息,以便于進行安全風險評估。
風險控制包括訪問控制、遠程通訊、敏感數據和產品管理4個部分。
產品首先應符合UL 2900-1中關于風險控制的要求。
訪問控制,又稱用戶驗證或用戶授權,產品除了應符合UL 2900-1中關于訪問控制的要求外,還應滿足以下要求:
(1)無論何時,遠程訪問的使用都不應危及產品的安全配置或改變產品的預期用途,使用相關功能以修改產品的預期用途的管理訪問權限應被明確規定。
(2)驗證機制的強度應使得,某種方式在沒有有效憑證的情況下能夠成功進行遠程認證的可能性被定義為風險評估的一部分。供應商應評估此風險,作為風險評估的一部分。
(3)產品應根據所有可用的上下文信息記錄每個驗證嘗試。
(4)產品應允許操作人員訪問和許可的權限被禁用、被刪除、失效或被更改。
(5)隨機提供憑證的嘗試至少應有百萬分之一的成功率。
(6)信息本身不能被用于身份驗證,而是在分割知識程序中輸入。產品文檔應證明,只有分割知識中ALL組件的訪問才有能力確定信息。
(7)傳輸路徑是可信路徑,例如,不被任何其他系統或產品共享的直接連接的物理電纜。
(8)驗證憑證在產品上的存儲不應是明文的,并應通過使用UL 2900-1“敏感數據”章節中定義的加密機制之一來防止未經授權的泄露或修改。
具有遠程通信功能的產品,除了應符合UL 2900-1中關于遠程通信的要求外(9.1條中記錄的例外情況應在風險評估中列明),還應滿足以下要求:
(1)為了防止數據損壞、信息篡改、電子欺詐或重放攻擊:
a)產品應該能夠檢測和阻止發送者和接收者之間的通信消息被改變的情況;
b)產品應能夠檢測到被重放的通信信息并且不對其執行操作;
c)供應商應描述用于處理上述a)、b)兩種情況的機制,并記錄在風險評估中。
(2)發生通信故障時,產品應能夠進入故障安全模式或故障告警操作模式。
產品應符合UL 2900-1中關于密碼的要求。
產品除了應符合UL 2900-1中關于產品管理的要求外,還應滿足以下要求:
(1)產品應能夠以可靠的和可驗證的方式,將當前安裝的軟件和固件二進制文件、可執行文件和庫的版本展示或傳達給產品的用戶,以標識產品的軟件版本。
(2)軟件部署過程應遵循:
a)新的軟件/固件二進制文件、可執行文件和庫應使用軟件完整性機制創建,以生成二進制的工廠代碼或簽名。這些機制應符合UL 2900-1附錄C的要求。
b)將軟件/固件二進制文件、可執行文件和庫部署到產品應該從軟件/固件二進制文件、可執行文件和庫的下載開始。除非風險評估中有說明,否則在下載過程中不應修改產品。
c)產品允許通過操作人員介入來清理審計日志,以允許軟件/固件二進制文件、可執行文件和庫的下載僅在最低允許限度下進行,這時產品應該使用日志清理記錄(包括時間戳、驗證方式和賬戶)啟動新日志。
(3)下載軟件/固件二進制文件、可執行文件和庫之后,在安裝之前,產品應驗證軟件/固件二進制文件、可執行文件和庫的完整性和真實性。
a)如果完整性測試失敗,產品應停止軟件升級過程,并清除新下載的軟件組件。故障應記錄在審計日志中,產品應繼續按預期運行。
b)只有當產品接收到完整的軟件/固件二進制文件、可執行文件和庫時,產品才能進行完整性檢查。
c)完整性機制應包含在軟件/固件二進制文件、可執行文件和庫中,不應需要單獨下載。
(4)在清理/卸載舊軟件和安裝新軟件的過程中,產品應具有固件安裝的指示器或顯示其當前安裝狀態。該指示器在產品上應是可視的或可聽的,或應在風險評估中定義其可用性。
(5)使用時,在加載任何應用程序或執行產品的任何功能之前,產品首先應驗證軟件/固件二進制文件、可執行文件和庫的完整性和真實性。
(6)如果產品在第(5)條的操作中出現故障,產品應進入故障模式并向用戶清楚地表明產品未能成功啟動。
(7)如果產品在第(5)條的操作中出現故障,產品的功能應最小化到供應商在風險評估中所允許的操作范圍。
產品應符合UL 2900-1中關于供應商產品風險管理流程的要求。
產品應符合UL 2900-1中關于已知漏洞測試的要求。
產品應符合UL 2900-1中關于惡意軟件測試的要求。
(1)通用要求
a)產品應符合UL 2900-1中關于畸形輸入測試的要求。
b)在滿足條件a)的情況下,產品還應符合本節第(2)條和第(3)條的要求。
(2) 畸形輸入測試一
a)本節適用于能夠控制或監控離散或模擬輸入或輸出的產品,如PLC。
b)離散輸出行為:在離散輸出模塊(制造商說明書中有規定)其中一個輸出點滿足通用要求條件a)的情況下,產品應能夠生成被監控的連續輸出信號。
c)離散輸出要求:產品應能按照制造商說明書規定的精確度維持被監控的連續輸出信號。
d)模擬輸出行為:產品應能夠根據制造商說明書在其模擬輸出模塊上生成被監控的連續輸出信號。監測到的連續輸出信號中的每個電壓電平應保持1秒或按照制造商說明書保持,并且在滿足通用要求條件a)的情況下重復該循環。
e)模擬輸出要求:在滿足通用要求條件a)的情況下,產品應能按照制造商說明書規定的精確度維持被監控的連續輸出信號。
f)離散輸入行為:在滿足通用要求條件a)的情況下,設備內未定義或未配置的任何離散輸入引腳上的任何狀態變化不應影響產品的操作。
(3) 畸形輸入測試二
a)本節適用于駐留在通用計算機上或記錄歷史事務的產品,例如HMI、IO服務器或數據記錄器。
b)在滿足通用要求條件a)的情況下,產品應能夠以預先定義好的頻率接收數據。
c)在滿足通用要求條件a)的情況下,產品應持續按預期運行。
產品應符合UL 2900-1中關于結構化滲透測試的要求。
產品應符合UL 2900-1中關于軟件弱點分析的要求。
UL 2900-2-2是UL 2900-1的加強版,主要涉及工業控制系統的特殊要求,面向聯網工業控制類產品行業。該標準描述了其涉及的產品范圍、產品文檔的要求、風險控制和管理的要求以及缺陷和漏洞的測試和分析方法,其中產品文檔、風險管理和軟件弱點分析部分主要參照UL 2900-1的通用要求,而在風險控制以及缺陷和漏洞測試部分加以補充。