進一步了解班尼·查尼(Benny Czarny)的著作《顛覆性的網路安全》

瞭解更多資訊
我們利用人工智慧進行網站翻譯,雖然我們力求準確性,但它們可能並不總是 100% 精確。感謝您的理解。

防範對羅克韋爾自動化 PLC 的 OT 攻擊

作者: OPSWAT 發布

我們很高興推出一系列技術分析部落格,重點探討各項可透過我們的先進威脅偵測技術來識別並修復的 CVE(通用漏洞與暴露)。 所有研究均由曾參與「OPSWAT 網路安全研究員計畫」的研究生完成,該計畫於 2023 年 12 月正式啟動。

防範對羅克韋爾自動化 PLC 的 OT 攻擊
學生參加了 OPSWAT 獎學金計劃。

在這篇文章中,我們將解釋 Rockwell Micrologix CVE-2017-14469 以及組織如何防禦 CVE-2017-14469 漏洞利用攻擊。

羅克韋爾自動化 MicroLogix 1400 控制器

PLC(可程式邏輯控制器)是一種專為控制工業製造流程而設計的電腦。它廣泛應用於關鍵基礎設施領域,例如組裝線、機器監控、製程控制等。羅克韋爾自動化(Rockwell Automation)的 MicroLogix 1400 控制器是一款模組化且可擴充的 PLC,具備高 I/O 數量、高速計數器以及增強的網路支援功能,使其適用於廣泛的應用場景。

防範對羅克韋爾自動化 PLC 的 OT 攻擊
羅克韋爾自動化 MicroLogix 1400 控制器

14469

說明

Rockwell Automation MicroLogix 1400 Series B FRN 21.2 及更早版本中存在一個漏洞,使得攻擊者能夠讀取和寫入/覆蓋設備上的敏感資料。包含命令的未經身份驗證的特製資料包將導致修改使用者定義的故障例程編號,從而導致設備執行意外停止。

防範對羅克韋爾自動化 PLC 的 OT 攻擊

影響

國家漏洞資料庫(NVD)已將此漏洞歸類為「嚴重」,並給予最高 CVSS(通用漏洞評分系統)分數。此漏洞的影響可能在無需任何額外驗證的情況下,對裝置的機密性、完整性及可用性造成重大影響。 系統的可用性至關重要,特別是在關鍵基礎設施系統中,任何中斷或停機都可能導致巨額財務損失,甚至造成實體損害。此 CVE 可能透過在控制器內觸發「系統故障」,導致可程式邏輯控制器(PLC)功能停止運作,從而造成中斷關鍵基礎設施系統的風險。

防範對羅克韋爾自動化 PLC 的 OT 攻擊
NIST NVD 上的 CVE-2017-14469 資訊

漏洞分析

什麼是故障和故障例程?

故障的概念與程式設計中的異常非常相似。當發生故障時,指令的執行將停止,導致設備進入故障狀態。故障可分為兩種類型:使用者故障和非使用者故障。

有兩種清除故障的機制:透過向控制器循環電源來自動清除故障,或者使用使用者故障例程手動清除故障,這是一種可以設置為自動執行以回應使用者故障的過程。CVE-2017-14469 與第二種機制有關。為了防止系統因使用者故障而意外關閉或停止執行,定義了使用者故障例程,以根據故障號處理分配的故障,並在發生相應故障時執行。如果沒有例程處理故障,設備將停止執行並顯示故障號。當設備正常工作時,使用者故障例程的值設置為0x00,並且只能配置在故障處理的0x03到0xFF範圍內。

防範對羅克韋爾自動化 PLC 的 OT 攻擊
使用使用者故障例程清除使用者故障的機制。

羅克韋爾自動化 MicroLogix 1400 操作模式

羅克韋爾自動化 MicroLogix 1400 中有三個模式開關位置:PROGRAM、REMOTE 和 RUN。PROGRAM 和 REMOTE 模式都允許將程式下載到設備,同時還允許接受和處理傳入請求。但是,在 RUN 模式下,設備僅接受受限請求。在此漏洞的上下文中,如果設備處於 RUN 模式,則無法利用此漏洞。

程式
  • 空閒模式,用於下載和編輯程式
  • 回應通訊埠上的消息
  • 停止執行且無輸出
遠端
  • 允許來自軟體的會話來控制設備
  • 回應通訊埠上的消息
  • 正常執行和輸出
跑
  • 在連續迴圈中執行程式
  • 僅回應受限郵件

CVE-2017-14469 的工作原理

該裝置透過具備 PCCC 擴充功能的 CIP(通用工業控制通訊協定,CommonIndustrial Protocol)進行通訊。CIP 協定是建構在 Ethernet/IP(Industrial )協定之上。封包的結構如下圖所示:

防範對羅克韋爾自動化 PLC 的 OT 攻擊
使用使用者故障例程清除使用者故障的機制。

從上圖可以看出,沒有指定用於身份驗證的欄位。這帶來了重大挑戰,因為該設備無法區分攻擊者的請求和來自使用者的正常流量。

通常,操作員可以透過控制軟體監控和更新設備的配置。為了與設備通訊,控制軟體使用受保護的類型邏輯寫入或讀取命令發送相應的請求,並填寫 CIP PCCC 物件。在CIP PCCC協定格式中,命令由其命令代碼和功能代碼標識。

命令代碼

功能代碼

說明

0x0F

0800

更改模式

0x0F

0xAA

具有三個位址欄位的受保護類型化邏輯寫入

0x0F

0xA2

具有三個位址欄位的受保護類型化邏輯讀取

受保護類型化的邏輯寫入命令用於寫入敏感檔,例如設備的狀態檔、位檔、計數器檔和其他配置。

該設備使用 CIP 資料包中的三個位址欄位來標識讀取和寫入的位置:檔案類型、檔編號和元素編號。下面是一些範例值,用於標識將受該命令影響的設定檔位置:

檔案類型

檔編號

元素編號

說明

0840

0020

0x1d

狀態檔 – 使用者故障例程編號

0840

0020

0060

狀態檔 – 主要錯誤代碼

0840

0020

0050

狀態檔 – 主要錯誤代碼

但是,當設備處理請求時,缺少輸入驗證;在 write 命令中發送的資料未經驗證,允許設置為任何無效值。

該漏洞由兩個主要原因引起。首先,設備無法對傳入請求進行身份驗證,使攻擊者能夠發送未經身份驗證的請求來修改敏感設置。其次,設備錯誤地驗證傳入資料,導致設置更改為無效狀態。

為了成功利用此漏洞,攻擊者發送惡意請求,濫用受保護的類型化邏輯寫入命令,用無效值(如 0x01 或 0x02)覆蓋狀態檔中的錯誤例程編號。當故障例程編號被無效值覆蓋,設備透過另一個CIP報文切換到RUN模式時,會觸發故障並停止執行。

漏洞利用

攻擊可以分為 4 個步驟。

  1. 透過 Ethernet/IP 與設備建立連接以獲取會話句柄。
  2. 發送惡意請求覆蓋故障例程號。
  3. 製作惡意 CIP 資料包,將 PLC 切換回運行模式以觸發故障。
  4. 設備遇到故障並停止執行。
防範對羅克韋爾自動化 PLC 的 OT 攻擊
該代碼顯示了利用此漏洞的分步函數。

步驟1

若要與設備通訊,攻擊者必須透過向設備註冊會話來啟動連接,以獲取會話句柄並將其用於持續通訊。以下代碼演示了標準工作階段註冊請求:

防範對羅克韋爾自動化 PLC 的 OT 攻擊

步驟2

隨後,攻擊者使用先前獲取的會話句柄建構請求,並包含一個有效負載,其中包含受保護的類型化邏輯寫入命令,以覆蓋封裝在 CIP 資料包中的故障例程編號。

防範對羅克韋爾自動化 PLC 的 OT 攻擊

步驟3

在最後一步中,發送另一個 CIP 資料包以將設備切換到運行模式並觸發故障。

防範對羅克韋爾自動化 PLC 的 OT 攻擊

步驟4

如圖所示,PLC的執行已停止,並成功利用了該漏洞。

防範對羅克韋爾自動化 PLC 的 OT 攻擊
系統在正常條件下運行
防範對羅克韋爾自動化 PLC 的 OT 攻擊
利用此漏洞後,系統已關閉

修復

OPSWAT的ICS安全產品旨在抵禦此類攻擊。 MetaDefender OT Security 是一種 AI 驅動的威脅檢測和智慧工具,可檢測攻擊者的任何異常請求,使管理員能夠識別潛在威脅。

MetaDefender OT Security 具有以下功能來改善 OT 環境的安全狀況:

  1. 使用智慧資產分析快速發現和建構資產庫存
  2. 主動和被動監視威脅和異常
  3. 具有集中式自動修補功能的遠端補丁管理
  4. 結構化和簡化的風險警報工作流程,由全面且可客製化的儀錶板管理
  5. 全球、區域和行業監管合規報告
防範對羅克韋爾自動化 PLC 的 OT 攻擊

此外,MetaDefender OT Security 還可與 MetaDefender Industrial Firewall以防止OT Security 檢測到的惡意請求影響設備。MetaDefender Industrial Firewall 牆是保護關鍵任務 PLC、VFD、RTU 及其他工業資產的最後一道防線。它應用高度細粒化的裝置存取政策,並強制執行裝置存取區域,確保未經授權的存取或變更不會影響關鍵硬體。

兩者結合,形成一套無縫銜接的入侵偵測與防禦系統(IDPS),能有效偵測並防止任何異常的網路連線、請求、通訊等影響網路運作。

MetaDefender OT Security 透過其資產可見性和強大的威脅檢測,為關鍵基礎設施提供關鍵保護。除了其技術實力之外, OPSWAT 為對網路安全充滿熱情的個人提供令人興奮的職業機會。加入我們,共同塑造安全的未來,保護最重要的事物。探索不同的角色和有影響力的專案 OPSWAT,您的專業知識可以帶來切實的改變。讓我們一起保護世界上最重要的系統。

隨時瞭解OPSWAT 的最新資訊!

立即註冊,即可接收最新的公司動態、故事、活動資訊等內容。