專欄文章

工業控制安全的現況與分析

作者:陳興忠 (亞洲大學資訊工程系副教授)、劉泰瑋 (亞洲大學資訊工程系博士生)

 

摘要

工業控制系統(Industrial control systems,簡稱ICS)是一種基於工業控制域(Industrial Control Domain)中特殊協定且不同於基於TCP / IP通用協定下傳統的商業域(Commerce Domain)所使用的資訊系統。ICS的主要用途是管理重要的基礎設施,例如石油和瓦斯設施、核能電廠、智慧電網、自來水和廢物水處理以及機場或捷運中央監控系統等資訊設備。ICS有許多獨特的功能特性,包括提供即時監控和非常高需求的可用性、可預測性、可靠性,以及分散式智慧計算。其中,許多先進的計算,通信和網際網路科技被結合到ICS,使得能涵蓋並滿足更多的用戶要求,例如結合到外部世界開放系統的ICS,使得工業控制系統支援具有移動性、資料分析以及可擴展性的裝置進行遠端監控。但是,對ICS而言,這些支援開放性系統的功能卻暴露了關鍵基礎設施的幾個ICS的重大安全問題。如今,網路安全應運而生成為最關鍵的問題之一,因為直接影響和網路攻擊的高成本。在本文中,我們介紹了一個ICS的網路安全問題的整合分析。具體來說,我們專注於討論和審查不同的ICS的類型和結構、安全性要求、不同的威脅攻擊,以檢視工業控制系統的安全。透過本次研究,我們希望提供一個清楚地瞭解ICS的安全問題,並澄清不同的研究課題今後要解决的問題。

關鍵字:ICS,DCS,SCADA,網路安全。

前言

工業控制系統(Industrial control systems,簡稱ICS)是一個大術語,用於描述幾種類型的系統[1,2,3,4,5],例如,分散控制系統(Distributed Control systems,簡稱 DCS)、監控和資料擷取(Supervisor Control And Data Acquisition,簡稱SCADA)、工業自動化系統(Industrial Automation system,簡稱IAS)、工業自動化和控制系統((Industrial Automation and Control Systems,簡稱IACS),甚至可程式設計邏輯控制器(Programmable Logic Controller,簡稱PLC)。通常使用的ICS在工業,例如發電廠、自來水和廢水設施、石油和瓦斯的煉油廠,以及與這些控制系統高度的關聯的基礎設施或相互依賴之相關系統。DCS通常集中於一個封閉式系統(例如:煉油廠)中處理程序的自動化控制。凡具有系統監控和資料擷取功能的軟體,都可以稱之為 SCADA軟體,SCADA系統是一組常用的軟體和硬體地理上分散管理的控制與監測。上述這些系統的設計,皆以滿足效能、可用性、安全性和靈活性的要求以及特殊的或專用的通信協議為主。在大多數情况下,他們是進行物理上實體隔離,但由於資訊系統的演化,ICS新增了控制系統相互運作性的要求,並希望進一步制定共通標準以增進系統間的開放性與互聯性,因此系統供應商整合越來越多的網際網路科技與其協定,在相同的系統約束下討論以上滿足開放性的要求。ICS的開放於網際網路的世界後,卻使其成為新的攻擊目標,而暴露於巨大的威脅之中,尤其是當這些惡意攻擊者直接攻擊國家型工業控制設備時,將造成重大的損失和損害。

簡介ICS

一個工業控制系統是一組相互關聯的資產和子系統,以執行三個主要工作:資料蒐集(Data Acquisition)、控制(Control)與監控(Supervision)。通常情况下,ICS從感測器蒐集量測值和相關資料,然後進行處理、分析與顯示於系統營運商和在本地或遠端控制設備中。在下面的段落中,我們討論了兩種主要類型的控制系統:DCS和SCADA。DCS通常被使用於在一個內部的過程中設備與設備之間的相互作用所需要一個分散式控制邏輯系統。SCADA系統的應用通常為地理上分散的設施。例如,一個瓦斯公司可以使用DCS控制煉油程序的煉油廠,以及SCADA用於瓦斯輸氣管道的監測。在這一節中,首先我們討論了用於ICS的架構和實現的關鍵元件。其次,我們討論典型ICS的實現架構。

ICS的關鍵元件

  1. ICS的控制(Control server):ICS的控制元件主要由一個控制伺服器負責這項工作。控制伺服器是一組可程式設計控制器(PLC)負責軟體與程序的控制,它承載所有的控制邏輯應用和設備網路的控制。此外,控制伺服器透過控制網路直接連接到控制裝置,並且提供了即時監控服務。
  2. SCADA伺服器(SCADA Server):在學術文獻中被稱為MTU(主終端);這是在監控中心設備架構,以主機所有的監督,控制功能和資料過程資產的物件模型。
  3. 遠端終端單元(Remote Terminal Unit,簡稱 RTU):通常用於現場設備在SCADA系統遙測的實現。透過遙測,可以實現是在遠端不可人為存取的區域中進行高度自動化的量測和資料獲取。RTU是SCADA介面對象的工業控制設施或透過遙測的蒐集資料之執行基本控制的邏輯實體。
  4. 可程式設計邏輯控制器(PLC):可定義可程式設計控制器作為最初由組合邏輯等電子零件執行可程式化邏輯功能的小型工業計算機。控制伺服器能提供特定的PLC以解决一個複雜的邏輯控制程序的功能與通信。在大多數實際的實現,控制伺服器藉由PLCs連接到較接近實體層的設備,例如感測器(Sensor)和啟動器(Actuator)。
  5. 智慧電子設備(Intelligent Electronic Devices,簡稱 IED):感測器(Sensor)或啟動器(Actuator)的工業監控元件需要有足够的人工智慧功能來獲取資料並將它們傳輸到PLCs、RTU以及所需的監控服務。
  6. 輸入/輸出(I / O)伺服器:該伺服器是一個負責提供於存取控制設備和SCADA伺服器間輸入/輸出服務的軟體。
  7. 控制網路:對個個伺服器、控制器和RTU控制,提供網路連接,用以完成各種控制或監控服務。

典型ICS的實現架構

在ICS的實現中,不同的功能關鍵元件相互作用下實現了不同功能的ICS情境。通常分為DCS與SCADA架構[2,3]兩大類型。

  1. DCS架構:分散控制系統架構為使用集中式監控迴路作為共享控製程序的邏輯中一組分散式控制器中的中繼層(Intermediate Layer)。使用DCS的動機是將系統程序模組化,以減少功能單元內的單點故障。在如圖1所示為典型的DCS 架構。

    圖一:典型的DCS 架構[2, 3]

  2. SCADA架構:SCADA系統是指地理上分散的系統遙測控制與資料獲取。其中通常設有控制室,是SCADA系統的中心點,它主要工作是將SCADA伺服器連接到SCADA用戶端,並顯示從它遠端遙測的個個節點獲得的資料和程序事件。圖2顯示典型SCADA的系統架構。

    圖2: 典型SCADA的系統架構[3]

典型ICS的協定

要了解ICS的工作需要對底層通信協議有一個基本的認識。在工業自動化和控制部門,使用了許多特殊的或專用的協定。這些特殊或專用協定的設計是為了達成確保被監控系統效率、所量測的資料的可靠性和精確的即時監控功能。在下面的文章,我們專注於兩個最常用的工業控制網路協定:Modbus與DNP3。

  1. DNP3:分散式網路通訊協定(Distributed Network Protocol,簡稱DNP3)起始於作為一系列用於主控制站(Master Control Station)和客戶設備(client/slave devices)之間或RTUs以及 IEDs之間所設計的特殊協定。像大多數控制系統,DNP3協定將該監控工作的內容封裝在基於IP協議的TCP或UDP資料封包內,以使遠端RTU通信更容易被存取。它還利用了幾個標準化的資料格式和提供時間戳記服務,提高了及時監控服務中傳輸的效率與可靠度。
  2. Modbus:Modbus是工業通信的最常用的協定。它最初是在1970年代中期由Modicon所設計作為一種使用一個簡單的主/從架構中連結智慧型裝置與PLCs的方式。它很容易實現和易於使用簡單是Modbus最大的優勢。Modbus的協定堆疊(Protocol Stack)如圖3。

    圖3: Modbus的協定堆疊(Protocol Stack)[3]

但是,無論DNP3Modbus如何廣泛的使用於工業控制領域,這兩種協定在設計上並沒有任何考量到任何安全性機制。因此,所有在該協定下所有的訊息是容易遭受到攔截、篡改或重制等安全威脅,這對工業控制具有非常巨大的影響。因此許多的ICS提供商、安全研究人員和相關部門組織正在共同努力透過改良設計以期提供具有安全考量的工業控制領域協議。

ICS的主要目標與網路安全要件

由於ICS常用於國家社會關鍵的基礎工業控制設施,而且ICS採用了通用的網際網路技術,因此其安全性正成為ICS所有者和供應商面臨的真正問題。為了確保工業控制設施的各種運作具有足夠的可靠性和安全性,了解ICS安全目標至關重要。因而,美國國家標準技術研究所(National Institute of Standards and Technology,NIST)網路安全工作組[1]發布了一份工業控制系統指南,從本指南我們得出三個工業控制系統的主要目標:工業控制系統必須具有高可用性、工業控制系統必須具有高完整性以及工業控制系統必須具有高保密。工業控制系統中的保密意味著保持敏感資料的過程資產與無法由未被授權用戶或惡意者存取。工業控制系統中的高可靠性,雖然可用性和完整性是非常重要的安全目標,但是保密性卻比兩個其他目標扮演更為關鍵的角色。從一般的系統安全功能要求中,我們歸納了以下ICS的安全要件:

  1. 網路保護:相比於網際網路,在大規模的網路中,通常ICS被分割成不同的等級的網路,幾乎不可能確保每個網路節點不受網路駭客攻擊;換言之,避免攻擊是完全不可能的。 因此,工業網路應該執行網路訊務分析與網路流量監控以及攻擊事件與特徵的檢測。工業網路基礎設施必須能夠確保在處於遭受到安全攻擊威脅下,各種的工業控制服務皆能正常運作。
  2. 認證和授權:如前所述,工業控制基礎設施可能控制成千上萬的設備、軟體以及用戶。每個系統元件必須進行雙向鑑識和驗證。雙向認證是鑑識工業控制系統的關鍵技術,保證工業控制基礎設施只允許被合法授權者存取。
  3. 安全通信和協議:與傳統網路不同,工業網路中被交換訊息需要同時重視安全性和延遲性。特別是在SCADA系統的情況下,基礎設施建設幾乎在分佈在大規模的地理位置上,所以其被交換訊息具有延遲性。一般傳統實體層的通信層安全協定是不無法足夠保障該類型的實體通信安全。
    任何協議組態中失誤或設計將危害工業控制的安全。因此,在三個ICS的階層中量測現場、工廠和控制室之間的任何通信,應透過在通信協議,例如Modbus和DNP3中增加安全設計,來確保ICS的安全性。由於在初始ICS設計中的不足,工業控制系統需要比網際網路更多的安全要求。隨著ICS與物聯網的結合,這些安全要求,將使得ICS與IoT架構的整合變得容易。

工業控制系統的安全威脅與攻擊實例

在本小節中,我們討論不同類型的ICS安全威脅,我們將它們分為不同的威脅類別,然後我們分析每次攻擊對ICS運作的影響。我們分類的攻擊分為三大類攻擊:針對可用性的攻擊、針對目標完整性的攻擊以及針對保密性的攻擊

  1. 針對可用性的攻擊:針對目標可用性的攻擊旨在阻止合法授權者對系統資產的控制以及存取功能。
  2. 對完整性的攻擊:透過非法修改訊息的內容或系統資產的內容。例如在ICS中,原本所獲取的訊息、透過三個系統級別傳遞控制命令、資料庫或控制的內容以及PLC或RTU中的程序被非法者修改。
  3. 針對保密性的攻擊:其目的是獲取在工業控制網路中未經授權的資料或資源。其中所獲取的資料,例如密碼、PLC組態中可能無意中重新使用一些ICS運作資訊。

工業控制的安全威脅

有許多的威脅可以利用ICS網路和通信協議的設計和實施中的漏洞,以產生在IT世界中已知的若干攻擊,但是對ICS管理的程式具有更高的影響。我們在下面列舉與上述分類相關的最相關的攻擊。

工業控制的攻擊實例

攻擊的目標是工業控制系統一些設施,例如伊朗的核設施、美國電力公司和沙特阿美工廠。以下是安全研究人員和專家確定的最複雜的攻擊

  1. 伊朗核設施的攻擊事件
    Stuxnet是2010年7月發現的一個Microsoft Windows電腦蠕蟲,專門針對伊朗核設施的工業控制軟體和設備進行攻擊。該蠕蟲最初被不加區別地進行傳播,其中包括高度專用於特定SCADA系統的惡意軟體。Stuxnet利用了在特定SCADA系統執行協議的環境中的幾個漏洞。換言之,其被設計為僅針對特定SCADA系統,進行控制和監視其中的工業程序。
  2. 美國俄亥俄州核電廠的攻擊事件
    2003年1月,美國核管理委員會證實,稱為Slammer的Microsoft SQL Server蠕蟲在美國俄亥俄州的核電廠感染了一個私人計算機網路,讓所有合法授權者近5個小時內被禁止用了其安全監控系統。此外,該工廠的電腦也因此出現故障,經過大約6小時後才能恢復正常工作。Slammer據說也影響了至少五個其他公用事業的工業控制網絡上的通信。
  3. 沙特阿美煉油廠的攻擊事件
    Shamoon惡意軟體是有針對性的沙特阿美煉油廠惡意軟體,它攻擊了世界第八大煉油廠。該惡意軟體目標為攻擊系統的主啟動記錄(MBR)、分區表和其它隨機資料文件。這個攻擊事件導致該系統再也無法運作。

結論和建議

本文介紹了工業控制系統架構、元件和主協議的深入概述,以其ICS中的安全問題。我們討論了工業控制系統的主要安全目標和要求,以及ICS與IT安全和安全性之間的差異。在ICS的標準中,並沒有針對ICS特別制定的相關的安全措施,並且今天IT中的現有安全解決方案也沒有被設計成為具有符合ICS中安全需求的有效安全解決方案。因此ICS仍然存在極大的安全威脅,本文中同時介紹了已經在ICS中發現的網路攻擊案例。因此,在未來的工作中,ICS網路安全領域的所有研究人員的挑戰應該是為ICS提出量身定制的安全解決方案,其中必須考慮到ICS的所有功能與限制。這個挑戰將使大家重新審查工業控制系統元件和通信協議間所有設計,然後再重新為其設計新一代的ICS安全機制

參考文獻