肖曼茜,王劍亮
(工業(yè)和信息化部電子第五研究所,廣東 廣州 511370)
工業(yè)自動化和控制系統(tǒng)(IACS:Industrial Automation and Control Systems)是指能夠影響或改變工業(yè)過程的安全、信息安全和可靠操作的人員、硬件和軟件的集合[1]。IACS 的設(shè)備通常是和工藝過程相連的,信息安全被破壞不僅會導(dǎo)致信息傳輸?shù)闹袛?,還會導(dǎo)致潛在的人員或生產(chǎn)的損失,甚至可能會對所在地區(qū)或國家的基礎(chǔ)設(shè)施造成破壞。
傳統(tǒng)的信息安全關(guān)注3 個目標,即:保密性、完整性和可用性[2]。一般用途的信息技術(shù)(IT)系統(tǒng)最關(guān)注的是機密信息泄露問題,所以保密性排在最前面。然而在IACS 中,這些目標的優(yōu)先級恰恰相反,IACS 最關(guān)注的是所有部件的可用性,在生產(chǎn)正常運行的情況下,需要保證生產(chǎn)數(shù)據(jù)完整且不泄露。例如:在核電站的環(huán)境中,數(shù)據(jù)的可用性(如核心的溫度)比其機密性更重要。IACS 和一般IT 系統(tǒng)的比較如圖1 所示。
圖1 IACS 和一般IT 系統(tǒng)的比較
IEC 62443 是一套國際公認的用于IACS 安全開發(fā)的標準,它提供了一套全面且系統(tǒng)的網(wǎng)絡(luò)安全建議,用于解決IACS 中目前和將來的安全漏洞,保護工業(yè)網(wǎng)絡(luò)免受網(wǎng)絡(luò)安全威脅。
IEC 62443系列標準由通用、策略和規(guī)程、系統(tǒng)和組件4 個部分組成。
IEC/TS 62443-1-1:描述了用于IACS 信息安全的術(shù)語、概念和模型。其中,TS 表示技術(shù)規(guī)格書(Technical Specification)[2]。
a)IEC 62443-2-1:描述了在IACS 中建立網(wǎng)絡(luò)安全管理系統(tǒng)(CSMS)所需的元素,并且提供了如何開發(fā)這些元素的指南[3]。
b)IEC/TR 62443-2-3:描述了如何在IACS中進行補丁管理,目標受眾包括任何負責設(shè)計和實現(xiàn)補丁管理程序的人。其中,TR 表示技術(shù)報告(Technical Report)[4]。
c)IEC 62443-2-4:規(guī)定了IACS 服務(wù)提供商在自動化解決方案的集成或維護期間向資產(chǎn)所有者提供的一整套安全能力要求,并且IACS 服務(wù)提供商可以使用IEC 62443-2-4 來構(gòu)建和改進其安全程序[5]。
a)IEC/TR 62443-3-1:描述了各種網(wǎng)絡(luò)安全技術(shù)在IACS 環(huán)境中的應(yīng)用[6]。
b)IEC 62443-3-2:描述了系統(tǒng)設(shè)計的安全風險評估,將IACS 考慮中的系統(tǒng)(SUC)劃分為區(qū)域和管道,評估每個區(qū)域和管道的風險,并建立其各自的目標安全等級,記錄安全要求[7]。
c)IEC 62443-3-3:規(guī)定了詳細技術(shù)類控制系統(tǒng)要求(SR)和控制系統(tǒng)安全能力等級(SL-C)要求[8]。
a)IEC 62443-4-1:描述了IACS 所用產(chǎn)品的安全開發(fā)生命周期要求[9]。
b)IEC 62443-4-2:規(guī)定了詳細技術(shù)類控制系統(tǒng)組件要求(CR)和安全能力等級(SL-C)要求[10]。
目前部分IEC 62443 標準已經(jīng)轉(zhuǎn)化為國標并實施,如圖2 所示。
圖2 IEC63443 系列標準與對應(yīng)國標
IEC 62243 系列標準規(guī)定了工業(yè)自動化信息安全的7 個基本要求(FR:Foundational Requirement)。
a)FR1 標識和鑒別控制(IAC:Identification and Authentication Control),在允許訪問系統(tǒng)或資產(chǎn)之前,標識和鑒別所有使用者(人員,軟件進程和設(shè)備)。
b)FR2 使用控制(UC:Use Control),對已授權(quán)的使用者(人員、軟件進程或設(shè)備),強制指定權(quán)限以在IACS 中執(zhí)行所需動作,并監(jiān)視這些權(quán)限的使用。在允許使用者執(zhí)行操作之前驗證準予其必要的權(quán)限,保護控制系統(tǒng)資源免受未經(jīng)授權(quán)的操作。
c)FR3 系統(tǒng)完整性(SI:System Integrity),確保IACS 的完整性,防止非授權(quán)操控。一旦IACS運行,資產(chǎn)所有者有責任保持IACS 的完整性。在運行和非運行狀態(tài)下都宜保持物理資產(chǎn)的完整性。
d)FR4 數(shù)據(jù)保密性(DC:Data Confidentiality),確保通信信道和數(shù)據(jù)存儲庫的信息保密性,防止竊聽和未經(jīng)授權(quán)的訪問。
e)FR5 受限數(shù)據(jù) 流(RDF:Restricted Data Flow),通過區(qū)域與管道劃分,對控制系統(tǒng)進行分段來限制非必需的數(shù)據(jù)流。資產(chǎn)所有者需要使用風險評估的方法來確定必要的信息流量限制,進而確定傳遞信息的管道配置。
f)FR6 對事件的及時響應(yīng)(TRE:Timely Response to Events),在事故被發(fā)現(xiàn)時,對安全違規(guī)的響應(yīng)包括通知權(quán)利部門,匯報所需的安全違規(guī)證據(jù),并及時采取糾正措施。
g)FR7 資源可用性(RA:Resource Availability),確保控制系統(tǒng)的可用性,以應(yīng)對基本服務(wù)降級或被拒絕。
其中,IEC62443-3-3 標準基于IEC 62443-1-1 標準提出的7 個基本要求(FR),提出了相對應(yīng) 的系統(tǒng)要求(SR);IEC62443-4-2 標準基于IEC 62443-1-1 標準提出的7 個基本要求(FR),提出了相對應(yīng)的組件要求(CR)。系統(tǒng)要求和組件要求大體上是一致的,只是IEC 62443-4-2 標準比IEC 62443-3-3 標準多了一些特有的組件安全技術(shù)要求。
IEC62443 系列標準中將信息安全等級分為3種不同類型。
a)目標安全等級(SL-T),是特定系統(tǒng)中所需的信息安全等級,它們是根據(jù)系統(tǒng)風險評估(IEC 62243-3-2)的結(jié)果確定的,并且并記錄在網(wǎng)絡(luò)安全要求規(guī)范中。在IACS 安全生命周期的集成階段會使用SL-T 來選擇產(chǎn)品和設(shè)計額外的安全措施。
b)已實現(xiàn)的安全等級(SL-A),是特定自動化解決方案的實際安全級別,它們都是在自動化解決方案的調(diào)試和運行后進行測量的。
c)能力安全等級(SL-C),是系統(tǒng)(IEC 62243-3-3)或組件(IEC 62243-4-2)在合適配置的條件下可以提供的信息安全等級。這些等級表明,一個特定的系統(tǒng)或組件能夠在合適的配置條件下滿足SL-T,而無需額外的補償對抗措施。
對于一個工業(yè)控制系統(tǒng)來說,在系統(tǒng)設(shè)計階段需要確定SL-T,在系統(tǒng)開發(fā)階段,組織會根據(jù)SL-T 確定所選的系統(tǒng)和組件,再根據(jù)系統(tǒng)和組件的SL-C 進行評估和驗證,來確定所選系統(tǒng)和組件是否滿足對應(yīng)的SL-T 要求(當這樣的系統(tǒng)和組件不可用時,可以補充使用具有補償對抗措施的系統(tǒng)或組件);在系統(tǒng)運行階段,通過評估和驗證來確定SL-A,并與SL-T 相比,確保在任何時候SL-A大于或等于SL-T。
同時IEC 62443 系列標準還定義了5 種不同級別(0,1,2,3 和4)的SL,每個安全級別的安全要求逐步遞增。通常,SL0表示不需要進行特定的安全保護,SL1表示防止因為員工的錯誤而意外泄漏,SL2表示防止一些低級黑客的簡單攻擊,SL3表示防止精英黑客或恐怖分子的復(fù)雜攻擊,而SL4將防止來自國家層面上的具有最高水平的資源和動機的最復(fù)雜的攻擊。
IEC 62443-4-2 標準定義的IACS 的組件要求包括4 大類,即:軟件應(yīng)用程序要求(SAR:Software Application Require ments)、主機設(shè)備要求(HDR:Host Device Requirements)、嵌入式設(shè)備要求(EDR:Embedded Device Requirements)和網(wǎng)絡(luò)設(shè)備要求(NDR:Network Device Requirements)[10]。大部分組件要求和增強要求適用于所有4 種類型的組件,只是某些組件要求和增強要求是特定類型的組件所獨有的。本文舉例說明標準中部分要求的檢測方法。
輸入驗證的要求包括驗證輸入數(shù)據(jù)的語法、長度和內(nèi)容,檢測方法如下所述。
a)檢查是否存在輸入數(shù)據(jù)的有效語法的檢查規(guī)則,例如:設(shè)置檢查點,在輸入不合規(guī)數(shù)據(jù)時驗證該信息是否能被解析。不合規(guī)數(shù)據(jù)包括但不限于預(yù)定義字段值超出范圍、數(shù)據(jù)字段的無效字符、缺失或不完整的數(shù)據(jù)、緩沖區(qū)溢出或畸形數(shù)據(jù)包(通常由協(xié)議模糊器生成)。
b)使用專業(yè)的漏洞掃描工具(如:綠盟工控漏洞掃描系統(tǒng))進行掃描,驗證組件是否對協(xié)議不合規(guī)數(shù)據(jù)包不響應(yīng)。如圖3 所示,主機169.254.15.100 接收到協(xié)議不合規(guī)的數(shù)據(jù)包,由于所接收的數(shù)據(jù)與協(xié)議格式不符,所以其并沒有返回數(shù)據(jù)。
圖3 綠盟漏洞掃描結(jié)果示意圖
圖4 Wireshark 抓包結(jié)果示意圖
信息保密性包括存儲的保密性和傳輸?shù)谋C苄浴?/p>
a)存儲保密性的檢測方法
1)識別支持明文讀取授權(quán)的所有存儲信息。
2)審查設(shè)計文檔,并驗證所有此類信息都包括保護機密性的方法,例如:加密數(shù)據(jù)或限制用戶訪問數(shù)據(jù)存儲位置。如果用戶可以通過某種方式配置或設(shè)置組件來保護機密性,需要驗證用戶手冊中是否清楚記錄了這一點。
3)嘗試訪問機密信息的樣本,以驗證未經(jīng)授權(quán)的用戶無法訪問該信息。
b)傳輸保密性的檢測方法
1)識別傳輸中支持明文讀取授權(quán)的所有信息。
2)審查設(shè)計文檔,并驗證所有此類信息包括保護機密性的方法,例如加密數(shù)據(jù)或限制用戶對用于傳輸?shù)奈锢斫橘|(zhì)數(shù)據(jù)的訪問。
3)如果用戶可以訪問用于傳輸?shù)奈锢斫橘|(zhì),則在系統(tǒng)執(zhí)行正常操作時,使用網(wǎng)絡(luò)抓包分析工具(如Wireshark)查看通信采樣,通過分析抓包數(shù)據(jù)來確認網(wǎng)絡(luò)上看不到機密信息。
近年來IACS 正在經(jīng)歷呈指數(shù)級增長的網(wǎng)絡(luò)攻擊,為了應(yīng)對各種網(wǎng)絡(luò)安全的威脅,相關(guān)行業(yè)制定了不少標準來保護IACS,其中IEC 62443 系列標準作為一套國際公認的標準,在工控系統(tǒng)中的重要性越來越明顯,因此對于IEC 62443 標準的研究和應(yīng)用也是迫在眉睫。