Cybersec Wednesday|工業控制系統與我們的未來生活質素

工業控制系統(Industrial control system)簡稱ICS,是用在工業運作過程上的多種控制系統以及相關儀器設備的總稱。系統的主要目的是自動化和簡化工業運營、提高效率並確保關鍵基礎設施安全可靠地運行。較為常見的應用例子包括:

製造控制系統:系統可用於控制和監控裝配線,包括機械人、傳送帶和其他機械的操作,可以規範生產流程、跟踪庫存並確保質量控制。

發電廠控制系統:系統被廣泛應用於發電廠,以監視和控制各種操作,例如渦輪機控制、發電機控制和配電,有助於優化發電、管理負載平衡並確保電網穩定性。

水和廢水處理系統:系統在水和廢水處理廠中發揮著至關重要的作用。它們監視和控制泵送、過濾、化學劑量和消毒等過程,有助於維持水質、管理配水並確保高效的處理操作。

交通控制系統:系統亦被應用於交通基礎設施,包括交通管理系統、鐵路控制系統和機場運營,能調節交通流量、監控信號、管理火車時刻表並控制行李處理和安全系統等機場設施。

那麼,ICS一旦遭到黑客攻擊,對我們的生活有什麼影響呢?

曾經在外國有一個地方的水和廢水處理系統遭到黑客攻擊和入侵,結果導致當地飲用水中的氫氧化鈉濃度處理廠的濃度飆升至危險水平。而如果工業控制系統受到黑客攻擊,則可能會導致生產中斷和停工、公用服務中斷和故障、大量數據損失和洩露,造成嚴重的經濟損失。

可是,幾乎每個 ICS 都暴露在互聯網上,因為開源框架是 ICS 產品的標準。近年針對關鍵基礎設施的勒索軟件攻擊數量顯著增加,即使是氣隙 ICS 也很容易受到攻擊,而新的 ICS 硬件包含漏洞甚至惡意軟件亦屢見不鮮。因此,我們必須建立適當的代碼環境、定義規則集並進行驗證以確保 ICS 的安全性。

建立代碼環境

防禦性編程遵循安全軟件開發生命週期的要求和設計開發階段。首先為 ICS 應用程序建立特定的代碼環境。而搭建代碼環境需要四個步驟:

1. 比較功能需求中的弱點和易受攻擊的漏洞,以消除對軟件弱點或已知漏洞的利用。常見弱點枚舉 (CWE) 和 ATT&CK ICS 矩陣可用於完成此步驟。

2. 修改要求以消除任何弱點或漏洞。請注意針對無法消除的任何弱點的建議緩解措施。

3. 檢查設計是否存在已知的產品或系統漏洞。常見漏洞枚舉 (CVE) 和 CISA ICS-CERT Advisories 亦可用於完成此步驟。

4. 為ICS應用建立最安全的代碼環境。選擇漏洞最少的產品、固件和軟件,並與供應和開發鏈中的每個人進行標準化。

定義規則集

防禦性編程的核心是規則集的定義。不僅應該記錄技術,還應該開發和驗證可重用代碼單元,以保護控制邏輯免受利用:

1. 確保開發人員知道什麼是允許的,什麼是不允許的。這包括在 CWE/CVE 研究中發現薄弱或可利用的特定方法、例程和產品功能。應發布禁止列表和允許緩解列表,包括推薦的緩解技術。

2. 確定與功能需求和設計中的濫用案例相匹配的防禦技術,可以採用可編程邏輯控制器 (PLC) 前 20 種編碼實踐中的適當元素。其中包括防止大多數 ICS 漏洞的各種驗證(輸入、計時器、計數器、間接引用)。

3. 將防禦技術標準化為可重用代碼單元。大多數主要 PLC 製造商都能夠將復雜的重複代碼封裝在單個單元中,以便在整個程序中進行實例化。其中最常見的是西門子 PLC 中的功能塊 (FB) 和羅克韋爾自動化 PLC 中的附加指令 (AOI)。在整個代碼中創建並強制執行標準安全 FB 或 AOI 的實例化,以進行輸入驗證、訪問控制和完整性驗證。

4. 嚴格測試可重用代碼單元。在大規模實例化之前校對 FB/AOI 代碼將提供一個可用於多個項目的彈性代碼庫。不要忘記測試和確認代碼單元的安全元素,包括使用密碼或數字簽名鎖定以防止修改。

驗證初始代碼

根據規則集並在已建立的代碼環境中開發 ICS 控制邏輯後,是時候對已完成的初始代碼進行驗證了。當然,這很大程度上是功能需求的驗證,但安全控制也需要驗證:

1、確認搭建的代碼環境的穩定性。ICS 產品中幾乎每天都會發現新的漏洞。在部署代碼之前,可能需要提升固件或軟件版本或修改規則集。

2. 確認遵守所有定義的規則集。如果不應用標準的安全技術,那麼它也沒有任何好處。檢查代碼並確保所有適當的 FB/AOI 均已實例化,並且針對功能需求所需的任何薄弱或易受攻擊元素的實例都採取了緩解措施。

3. 模擬突破周邊防禦。儘管可能已採用深度防禦,但這工作是假設入侵檢測系統的外部防禦(網絡入侵檢測、工作站訪問控制、消息身份驗證)全部失敗,必須測試並確認安全 FB/AOI 的每個實例都在防止控制邏輯被利用。

4. 啟用並筆測試子系統邊界。儘管它不是 PLC 代碼的直接一部分,但子系統的外圍防禦(實時 I/O [RIO] 網絡、操作員工作站、企業網絡接口)需要進行測試,以確保深度彈性防禦。請特別注意這些失敗時對 PLC 環境的影響(例如,在以太網端口上遭受拒絕服務攻擊時將處理器從運行模式更改為程序模式)。

無疑,ICS是自動化和簡化工業運營、提高生活效率的未來。然而,隨著ICS的連接性和數字化增加,相應的安全挑戰也需要應對。確保ICS的安全性和防範潛在的攻擊至關重要,這需要采取適當的安全措施,包括強大的網絡安全措施、安全審計和培訓等。

網絡安全在很多方面還需要注意,如有任何疑問歡迎加入我們的 Cybersec Infohub 計劃,讓行業裏的網絡安全專家為您解決,如果您懷疑自己或公司的電腦被駭或有可疑的行為,亦請盡快聯絡網絡安全專家求助。

關於 Cybersec Wednesday

每逢星期三,HKIRC網絡安全團隊都會挑選一個網絡安全主題,以文章、貼士或最佳實踐的形式與大家分享。 請留意每週三的更新,定時掌握最新鮮的網絡安全資訊。

更多文章