
簡介
在前一篇文章《為陸基鐵路網路靶場實施不同的人機介面 (HMI)》中,我們探討了為陸基鐵路模擬網路靶場開發四種專用的 SCADA HMI。該文章介紹了 SCADA HMI 背後的基本概念、在網路實體環境中實施它們的理由,以及為此鐵路系統的特定用例量身定制的功能架構。最後,我概述了每個 HMI 的網路拓撲和通訊設計。

# Author: Yuancheng Liu
# Created: 2025/06/20
# Version: v_0.0.3
# Copyright: Copyright (c) 2025 Liu Yuancheng
本文是 HMI 文件系列的第二篇。在前一篇文章中,我以介紹每個 HMI 的詳細網路和通訊設計作為結尾,在這裡我將從概念設計轉向實際的軟體實施,詳細了解四個 HMI 中的每一個如何在網路靶場中運作,並支援實作網路安全演練。
本文分為四個主要部分:
-
軟體設計:HMI 內部架構的細分,包括控制流程、模組化設計、執行緒管理、非同步處理和資料處理。
-
網路靶場 UI 設計:介面佈局和使用者體驗 (UX) 增強功能的概述,這些增強功能是為網路演練場景量身定制的。
-
HMI 使用簡介:操作 HMI 以進行系統監控、控制以及在網路模擬期間回應異常情況的實用指南。
-
防禦案例研究:展示了 HMI 在與入侵偵測系統 (IDS) 整合時,如何協助識別和減輕 OT 專用的網路攻擊和威脅。
澄清一個常見問題
在深入探討技術細節之前,讓我們先澄清一個常見的問題,當我介紹 OT 網路靶場時可能會問:
一旦駭客進入 OT 環境,就已經太遲了——防禦是徒勞的,戰爭已經結束。OT 工程師沒有必要成為網路安全專家,檢測和防禦網路攻擊純粹是 IT 部門的責任,而不是 OT 工程師的責任。
這種觀點對於 OT 操作員來說可能很常見,但從 OT 系統管理員的角度來看,它低估了現代 OT 系統中存在的防禦能力以及 OT 工程師的關鍵作用。實際上,OT 系統包括複雜的保護、容錯和冗餘機制,以避免因包括網路攻擊在內的不同異常情況造成的損壞。例如,PLC-IP 白名單、靜態 ARP 條目的使用以及嚴格控制的通訊協定,使得 ARP 欺騙、中間人攻擊幾乎不可能發生。即使在初始入侵之後,了解物理過程和安全原則的 OT 工程師仍然可以及時識別、分析和回應攻擊。
從防禦者的角度來看,與 IT 環境(流量通常經過加密和混淆)不同,OT 網路表現出高度確定性的行為。這種可預測性使得異常流量(例如意外的 mDNS 查詢、未經請求的 HTTP 請求或惡意 ping)能夠清晰地突出顯示。因此,透過正確的工具和培訓,OT 工程師可以成為抵禦網路威脅的第一道防線,從而使透過 HMI 進行的即時可見性成為事件回應的關鍵組成部分。
HMI 軟體設計
為了支援鐵路網路靶場所需的模擬、監控和事件回應功能,所有人機介面 (HMI) 程式都是使用模組化、多執行緒架構開發的。這種設計確保了高效的資料處理、即時回應以及不同功能模組之間的職責分離。整體軟體結構如下面的架構圖所示:
圖-00:HMI 軟體結構圖,版本 v_0.0.3 (2025)HMI 應用程式的核心是主執行緒,它協調五個關鍵的子執行緒,這些子執行緒負責管理資料流、使用者互動、系統通訊和即時控制。
主執行緒和核心模組
主執行緒透過控制所有子模組和執行緒的生命週期和互動來初始化和管理整個 HMI 應用程式。主執行緒包括 6 個子模組:
程式控制模組:協調所有子執行緒的啟動和關閉,確保有序的程式執行和系統同步。
程式時鐘控制模組:管理所有執行緒的計時機制和迴圈頻率(例如,UI 渲染的 FPS、通訊執行緒的資料輪詢間隔)。
程式資料控制模組:監督執行緒間的資料流,確保狀態處理、分析和儲存的正確排序。
警示管理模組:監控系統狀態並觸發警示以回應異常事件或閾值違規。
預先配置的實例回應模組:根據警示類型和使用者定義的條件自動執行預定義的回應(例如,關閉、通知、傳送斷電命令)。
操作驗證模組(操作型):此模組僅供藍隊使用,它允許 HMI 也執行與目標 PLC 相同的階梯邏輯,基於 PLC 輸入並比較讀取值和計算結果,以檢測可能的資料注入攻擊。
1. IT 資料管理員執行緒
此執行緒處理 IT 層的通訊,包括與資料庫的互動和 HMI 之間的訊息交換,並對傳入的資料進行初步篩選:
資料庫通訊用戶端:與網路靶場 ICS 資料庫 (SQLite3) 介接以提取資料(監管級 HMI)或插入資料(機器級 HMI)。
HMI 通訊用戶端/伺服器:促進 HMI 之間的基於 UDP 的通訊。在主 HMI 模式下充當伺服器,在從屬模式下充當用戶端。
IT 資料儲存模組:管理來自資料庫或對等 HMI 的傳入資料。它篩選冗餘資料、組織記錄,並將預處理的資訊傳送到資料處理執行緒,並將原始資料傳送到本機 I/O 管理員以進行記錄。
2. OT 資料管理員執行緒
負責從 OT 現場設備(如 PLC、RTU 和 IED)收集和準備操作資料的執行緒:
OT 通訊用戶端:為各種協定實施連接器,包括 Modbus-TCP、Siemens S7Comm、IEC 60870-5-104、OPC-UA。連接器的數量將與 HMI 連接的 PLC 數量相同。
原始 OT 資料儲存和處理模組:在每個輪詢週期中收集原始資料,將其組織成特定於設備的字典,篩選不相關的條目,並透過本機 I/O 管理員執行緒記錄未處理的資料。
3. 資料處理執行緒
此執行緒是 HMI 的資料精煉和分析中心:
OT 資料轉換模組:將原始控制器訊號(例如,NC/NO 狀態)轉換為邏輯值(例如,
True/False、0/1)。資料對應模組:將系統值轉換為人類可讀的指標(例如,將記憶體整數對應到電壓讀數或 LED 顏色)。
資料篩選模組:從 IT 和 OT 資料流中刪除重複或過時的條目。
資料驗證模組:驗證傳入的資料是否在預期的操作範圍內。如果檢測到違規,則會觸發警示。
資料處理模組:彙總和準備最終輸出以進行視覺化和儲存,與主執行緒的程式資料控制模組互動。
4. UI 顯示管理員執行緒
管理操作員和系統之間的視覺介面和互動邏輯:
UI 元件管理員:即時呈現視覺元素,如指標、警報、儀表和動畫效果。
顯示刷新管理員:顯示面板刷新視覺化週期,以維持穩定且反應靈敏的 UI。
使用者動作和事件處理常式:捕獲使用者輸入(例如,按鈕點擊、切換開關)並將控制命令轉發到程式控制模組以供執行。
5. 本機 I/O 管理員執行緒
處理程式配置、記錄和全域狀態變數:
配置載入器:剖析配置檔案以初始化和動態更新系統設定。
記錄和記錄產生器:將所有資料記錄到相關的記錄檔中,如果記錄檔很大(10MB),則會滾動,並在出現異常情況時建立 HMI 螢幕截圖。
全域變數模組:管理整個應用程式中使用的共用變數,並與程式資料控制模組互動以進行同步。
HMI UI 設計簡介
本節將介紹每個 HMI 程式的使用者介面設計。
PLC 顯示面板設計
在機器級 HMI 中,每個 HMI 都有多個 PLC 顯示面板,以視覺化即時原始 PLC 資料(這些資料始終隱藏在真實世界的 HMI 或數位雙生 HMI 中)。每個機器級 HMI 顯示不同數量的 PLC 面板,具體取決於其監控範圍:
訊號系統監控 HMI:6 個 PLC 面板
鐵路區塊監控 HMI:2 個 PLC 面板
鐵路列車控制 HMI:2 個 PLC 面板
每個面板都會顯示來自特定 PLC 的詳細即時資訊,並對應到其相關的階梯邏輯和連接的實體元件。設計結構如下圖所示:
Figure-01: PLC display panel details, version v_0.0.3 (2025)每個 PLC 面板分為兩個主要部分:PLC 資訊和 PLC 狀態顯示。
PLC 資訊部分提供有關連接的 PLC 的元數據和通訊詳細資訊:
PLC ID:分配給 SCADA 系統中每個 PLC 的唯一識別碼。
Position:PLC 所屬的邏輯位置或子系統。
Mode:PLC 模式(主機/從機)
IP Address:PLC 使用的網路 IP。
Port:用於通訊的連接埠號碼(例如,
502用於 Modbus-TCP)。Connection State:顯示 HMI 目前是否已連接到 PLC。(綠色 = 已連接,黃色 = 高延遲,灰色 = 已斷線)
PLC 狀態顯示部分顯示直接從 PLC 階梯邏輯讀取的即時資料,並將其對應到實體世界元件。顯示分為五個主要欄:
Physical World Sensor ID:顯示連接到 PLC 輸入接點的感測器。格式:
_。範例:west08= WE 線 (we),站 (st) 08 感測器。Holding Register ID and State:指示連結到階梯邏輯接點的暫存器狀態。格式:
R_範例:_ . R_%H0.0= 保持暫存器,環 0,項目 0。綠色 = 輸入電壓高 5V,灰色 = 輸入電壓低 0V。Coil ID:階梯邏輯線圈位址。格式:
範例:Q. %Q0.0= 環組 0 中的輸出線圈 0。Coil State:線圈的狀態。綠色 = ON(輸出電壓高),灰色 = OFF(輸出電壓低)。
Physical World Signal ID:指示由線圈驅動的真實世界致動器或訊號。格式:
__範例:STwe08= WE 線,站 08 的訊號裝置。暫存器 ID 和線圈 ID 格式遵循 Schneider Electric 的 Wonderware PLC 程式設計工具中常用的慣例,確保工業工程師的相容性和熟悉度,如下所示:
Figure-02: Schneider Electric's Wonderware PLC ladder logic editor, version v_0.0.3 (2025)感測器-訊號關係圖的設計
感測器-訊號關係圖是訊號系統監視器 HMI、區塊監視器 HMI 和 HQ 管理 HMI 的核心 UI 元件,可在模擬的實體世界元件(站和交匯處)、其連接的感測器和控制訊號狀態之間提供即時視覺對應。它旨在在操作和網路防禦活動期間提供直觀的情境感知。
以下是將實體世界模擬元件對應到感測器-訊號關係圖顯示的範例:
Figure-03: Diagram mapping the physical world simulation components to the sensor-signal relationship diagram, version v_0.0.3 (2025)該圖表示以下各項之間的互動:
站和交匯處中的感測器(位置感測器、鎖定感測器、釋放感測器)
訊號燈(入口、出口、交匯處)
實體元件(交匯處開關、列車位置、月台門)
這些關係以一種允許操作員根據其相應感測器和 PLC 邏輯的目前狀態立即評估訊號行為在邏輯上是否有效的方式視覺化。
階梯邏輯驗證模式
感測器-訊號關係圖的一個主要功能是「階梯邏輯驗證模式」。啟用此模式時(通常在網路防禦演習期間),HMI 在模擬一致性驗證模式下運作,詳細流程如下:
感測器-訊號關係圖將僅顯示來自 PLC 原始資料的感測器狀態。
HMI 控制模組將根據 PLC 感測器資料執行與相關 PLC 相同的階梯邏輯。
在取得預期的訊號狀態後,階梯邏輯執行結果將顯示在感測器-訊號關係圖訊號上。
如果感測器-訊號關係圖訊號狀態與 PLC 顯示面板的原始資料不同,則可能發生 OT 錯誤命令注入攻擊。
此驗證機制的靈感來自 PLC Honeypot 專案的概念:https://www.linkedin.com/pulse/python-plc-honeypot-project-yuancheng-liu-vks8c
HMI UI 顯示簡介
本章介紹四種 HMI 類型的使用者介面 (UI) 設計和核心功能元件:訊號系統監視器 HMI、鐵路區塊監視器 HMI、鐵路列車控制 HMI 和 HQ 管理 HMI。
1. 訊號系統監視器 HMI
訊號系統監視器 HMI 提供站和交匯處區域內感測器到訊號對應的可視化。它用於顯示與列車存在以及跨軌道岔路和月台的移動相關的訊號操作。具有詳細功能說明的 UI 如下所示:
Figure-04: Signal System Monitor HMI UI, version v_0.0.3 (2025)HMI 主要元件:
感測器-訊號關係圖:顯示列車感測器和訊號燈的即時狀態。它還根據軌道佈局、站區域和交匯處連接來視覺化自動控制關係。如果啟用訊號燈驗證功能,它將顯示基於「內部階梯邏輯計算」的預期訊號狀態,以便與從 PLC 讀取的原始資料進行比較。
三個站 PLC 面板:3 個 PLC 顯示面板 [PLC-03、PLC-04、PLC-05] 監視與所有站的感測器和訊號相關的輸入/輸出狀態。
三個交匯處 PLC 面板:3 個 PLC 顯示面板 [PLC-00、PLC-01、PLC-02] 監視鐵路交匯處的輸入/輸出狀態。每個面板都包括 PLC 保持暫存器、數位輸入/輸出狀態和線圈啟動狀態的即時顯示。
此 HMI 在模擬正常或攻擊條件下的開關錯誤行為、燈故障或控制失敗方面起著關鍵作用。
2. 鐵路區塊監視器 HMI
鐵路區塊監視器 HMI 側重於區塊級列車控制和 ATP(自動列車保護)管理。它模擬跨列車區塊的區塊佔用、感測器檢測和訊號強制執行。具有詳細功能說明的 UI 如下所示:
Figure-05: Railway Block Monitor HMI UI, version v_0.0.3 (2025)HMI 主要元件:
區塊感測器-訊號控制圖:提供對站和交匯處的區塊佔用狀態、感測器觸發和訊號轉換的即時可見性。
兩個 PLC 狀態面板:2 個 PLC 顯示面板,用於顯示來自區塊控制 PLC 的 I/O 訊號狀態和暫存器/線圈。
ATP 控制覆寫面板:允許手動覆寫軌道區塊 PLC 的 ATP 功能。已啟用(已選取核取方塊):ATP 邏輯透過 PLC 階梯控制正常運作。已停用(未選取核取方塊):ATP 邏輯被繞過,訊號狀態保持凍結(保持目前狀態)或由操作員手動控制。
此 HMI 在展示網路篡改 ATP 邏輯或未經授權的控制存取的影響方面特別有用。
3. 鐵路列車控制 HMI
鐵路列車控制 HMI 旨在監視個別列車系統,包括牽引力、雷達輸入和即時診斷。它支援操作模擬和網路安全測試。具有詳細功能說明的 UI 如下所示:
Figure-06: Railway Train Control HMI UI, version v_0.0.3 (2025)主要元件:
列車資訊面板:10 個列車資訊面板和 2 個預留位置提供每個列車的詳細遙測資料,包括:列車 ID、目前和平均速度、第三軌電源輸入:電壓、電流和電源狀態,以及用於第三軌電源切換的控制按鈕。
RTU 雷達狀態面板:10 個指示器,用於顯示來自列車前向雷達感測器的障礙物檢測狀態。
RTU 資訊表:1 個具有 2 個功能的 RTU 資訊表。正常模式(
test mode false):顯示來自 RTU 的原始回饋資料。測試模式:允許使用者手動輸入測試值(例如,速度或功率)以驗證警報和資料篩選功能。PLC 狀態顯示面板:2 個 PLC 顯示面板,用於顯示用於控制第三軌電源的即時保持暫存器和線圈狀態。
自動避讓後門開關:提供後門切換控制,用於啟用/停用自動列車防撞系統,主要用於網路攻擊演示場景,以說明未經授權的覆寫效果。
4. HQ Management HMI
HQ Management HMI 作為控制室操作員的監管層級介面。它提供了完整鐵路系統的運營狀態概覽,並支援策略決策。具有詳細功能說明的 UI 如下所示:
Figure-07: Railway HQ Management HMI, version v_0.0.3 (2025)主要組件:
22 Station Monitor Indicators:顯示每個受監控站點的入口/出口信號、月台門和相關門照明的狀態。
10 Train Indicators:根據區塊佔用情況顯示每列火車的當前位置,遵循固定區塊鐵路控制模型。
6 Track-End Buffer Area Indicators:監控軌道物理端點的信號狀態。
5 Double-Track Junction Indicators:顯示主要交叉路口(具有多個交叉點的兩條軌道)的即時信號和區塊狀態。
9 Signal-Track Junction Indicators:顯示涉及岔路入口信號和交叉區塊狀態的岔路口控制狀態和信號。
此介面提供集中化的可見性,對於網路情勢感知、異常模式檢測和事件響應協調至關重要。
HMI Usage and Defense Case Study
本節將介紹三個案例研究,展示藍隊防禦者如何主動使用 Land-Based Railway Cyber Range 中的人機介面 (HMIs) 來檢測和響應潛在的 Operational Technology (OT) 網路攻擊。這些情境說明了即時監控、感測器信號驗證和跨 HMI 數據一致性在網路防禦操作中的價值。
Case 1: Detecting False Command Injection on PLCs
Objective:使用 HMI 的感測器信號關係圖來檢測實際 PLC 輸出與從階梯邏輯計算出的預期輸出之間的不一致。步驟如下圖所示:
Figure-08: Detecting False Command Injection on PLCs, version v_0.0.3 (2025)Detail Steps:
Sensor Triggered:在物理世界模擬中,火車接近交叉路口並觸發入口感測器。這會導致 HMI 的 PLC 顯示面板中相應的 PLC 接點輸入暫存器更改狀態。
Sensor Update in HMI:感測器信號關係圖反映感測器狀態(黃色和淺藍色閃爍),表示它已被觸發。
Signal Simulation:HMI 控制模組在內部執行與 PLC 相同的階梯邏輯,以計算預期的輸出狀態 — 在這種情況下,交叉路口信號應變為紅色以阻止橘色線上的火車。
Result Verification:系統將計算出的信號狀態(例如,S-CC-0)與 PLC 顯示面板中顯示的值(例如,Scc00)進行比較。如果兩者匹配,則系統通過驗證;如果它們不匹配,則 HMI 會針對可能的錯誤命令注入攻擊發出警報。
Case 2: Detecting False Data Injection on RTUs
Objective:使用多層 HMI 驗證來識別潛在的 RTU 記憶體操縱或偽造的數據注入攻擊。步驟如下所示:
Figure-09: Detecting False Data Injection on RTUs, version v_0.0.3 (2025)Detail Steps:
Sensor Triggered:車站火車位置感測器被觸發,並且 PLC 面板上顯示了變更。
Simulated Signal State:HMI 控制器模組根據階梯邏輯計算信號的預期狀態,並在感測器信號關係圖中顯示車站狀態。
Comparison with PLC Output:系統將計算出的信號(例如,ST[0])與從 PLC 檢索的實際值(例如,STns00)進行比較。
Cross-HMI Validation:針對 HQ Management HMI 驗證計算和報告的狀態,確認資料庫記錄按預期更新。
Train Position Check:檢查 HQ Management HMI 中的固定區塊軌道系統,以驗證火車位置。如果火車不在預期的車站區塊中,則可能表示對 RTU 記憶體的錯誤數據注入攻擊,因為火車位置值由 RTU 定期更新。
Case 3: Detecting ARP Spoofing via PLC Connection Panel
Objective:使用 HMI 網路連線指示器識別 ARP 欺騙和通訊丟棄攻擊。此案例示範了藍隊成員如何檢測可能靜默丟棄或重新導向 HMI 和 PLC 之間通訊的 ARP 欺騙攻擊。觀察結果如下所示:
Figure-10: Detecting ARP Spoofing via PLC Connection Panel, version v_0.0.3 (2025)觀察結果包括:
Intermittent or permanent disconnection status 在 PLC connection panel 上
PLC 暫存器顯示中Missing or stale data updates
Mismatch between signal state and sensor feedback 隨著時間的推移
有關案例研究的詳細資訊,請參閱此處:
OT Cyber Attack Workshop [ Case Study 02 ]: ARP Spoofing Attack on HM:https://www.linkedin.com/pulse/ot-cyber-attack-workshop-case-study-02-arp-spoofing-hmi-yuancheng-liu-howzc
Conclusion
本文詳細介紹了陸基鐵路網路靶場中四種專用人機介面 (HMI) 的實際實施和操作實用性。透過利用模組化、多執行緒軟體架構,這些 HMI 確保即時資料處理、穩健的通訊和直覺的使用者互動 — 這對於例行操作和高風險網路安全演習至關重要。UI 設計專為不同的操作角色(信號監控、區塊控制、火車管理和中央監督)量身定制,可提供對 PLC 狀態、感測器信號關係和系統範圍動態的精細可見性。至關重要的是,防禦案例研究證明了這些 HMI 如何使 OT 工程師能夠透過即時驗證、跨 HMI 一致性檢查和異常驅動警報來檢測和減輕複雜的攻擊(例如錯誤的命令注入和 ARP 欺騙)。總之,這些介面彌合了物理操作和網路防禦之間的差距,證明設計良好的人機介面是增強關鍵鐵路基礎設施彈性的不可或缺的工具。
如果您想了解更多關於陸基鐵路系統網路靶場的信息,以下是一些相關的文章:
鐵路系統演示影片:https://youtu.be/WnJh1T3XZns?si=IlVXDRiWxJ1Rwe-K
鐵路系統上的網路攻擊案例研究:
- Railway OT Cyber Attack [ Case Study 01 ] : False Data / Command Injection Attack on PLC https://www.linkedin.com/pulse/ot-cyber-attack-workshop-case-study-01-false-data-command-liu-hqtac
- Railway OT Cyber Attack [ Case Study 02 ]: ARP Spoofing Attack on HMI https://www.linkedin.com/pulse/ot-cyber-attack-workshop-case-study-02-arp-spoofing-hmi-yuancheng-liu-howzc
- Railway OT Cyber Attack [ Case Study 03 ]: DDoS Attack on PLC https://www.linkedin.com/pulse/ot-cyber-attack-workshop-case-study-03-ddos-plc-yuancheng-liu-yi2cc
- Railway OT Cyber Attack [ Case Study 04 ]: MITM Attack on HMI-PLC Control Chain https://www.linkedin.com/pulse/ot-cyber-attack-workshop-case-study-04-mitm-hmi-plc-control-liu-wcobc
- Railway IT Cyber Attack Workshop [ Case Study 00 ]:Malicious Macro and Backdoor Trojan Attack on IT-network: https://www.linkedin.com/pulse/it-ot-cyber-attack-workshop-case-study-00-malicious-macro-liu-eceyc
- Railway OT Cyber Attack[ Case Study 06 ]: Replay Attack on Railway Station Safety Surveillance Camera: https://www.linkedin.com/pulse/ot-cyber-attack-workshop-case-study-06-replay-safety-surveillance-gcgxc
鐵路系統技術介紹文件:
- PLC 實現陸基鐵路軌道固定閉塞信號:https://www.linkedin.com/pulse/use-plc-implement-land-based-railway-track-fixed-block-yuancheng-liu-saaec
- 使用 IEC104 PLC 模擬簡單的火車站列車停靠和離開自動控制系統:https://www.linkedin.com/pulse/simulating-simple-railway-station-train-dock-depart-auto-control-liu-vsscc
Thanks for spending time to check the article detail, if you have any question and suggestion or find any program bug, please feel free to message me. Many thanks if you can give some comments and share any of the improvement advice so we can make our work better ~last edit by LiuYuancheng ([email protected]) by 22/06/2025 if you have any problem, please send me a message.











No comment for this article.