← 所有文章

HMI備份與隔離還原驗收

· 站長

拆分HMI專案備份、Gateway組態、外部資料庫與憑證私鑰,建立隔離還原和核對流程;還原測試不得對真機輸出。

先分清備份對象

HMI備份不是一個檔案就能還原整套系統。至少要分成專案檔、Gateway或Runtime組態、外部資料庫與憑證材料。專案包可能包含畫面、標籤路徑與查詢設定;Gateway組態可能包含連線、排程與安全設定;外部資料庫保存歷史與稽核資料;憑證私鑰則是高敏感秘密,不能假定存在於專案包。

備份目錄要有manifest,列出來源主機、產品與版本、建立時間、內容類型、雜湊、加密狀態、復原順序與owner。manifest不應包含私鑰真值或密碼;秘密只記識別碼與存放位置。缺少版本時先標Unknown,不要把看似相同副檔名的檔案直接送進還原工具。

層級 包含示例 不包含/風險 驗證方式
Project view、tag binding、畫面資源 不等於執行環境 版本與雜湊
Gateway 連線、排程、角色組態 可能含端點與秘密引用 隔離啟動檢查
External DB 歷史、稽核、配方資料 不在專案包內 schema/筆數核對
Certificate 公開憑證、信任鏈索引 私鑰不可寫入共享包 指紋與金庫取用

先確認隔離網路,再安裝相容Runtime與所需模組,準備外部DB測試副本。Ignition Gateway備份包含專案和Gateway設定,還原會覆蓋現有設定,不能先匯入新專案再用舊Gateway包覆蓋。選擇Restore Disabled並維持網路阻斷,改好測試連線後逐項啟用;若需另匯入專案版本,放在Gateway還原之後。

備份前後的依賴

外部資料庫備份要記錄schema版本、資料庫版本、時區、保留期限與還原帳號權限。只拷貝HMI專案再啟動,畫面可能仍能開但歷史查詢全空;這不是還原成功。Gateway連線的host、port、TLS信任鏈與防火牆規則也要列在依賴表,並以測試端點取代真實控制設備。

憑證公鑰可用指紋或序號核對,私鑰與解密材料依受控備份機制保存及取用,測試優先使用測試私鑰。不可把明文私鑰放進一般共享ZIP,也不應把密碼寫入manifest或文章。若原憑證已過期,復原測試可使用測試CA與測試主機名,並標明它不代表正式信任關係。

CISA建議關鍵資料保留離線、加密備份,並定期測試可用性與完整性。對HMI而言,測試不能只確認檔案能解壓,還要確認專案、Gateway、資料庫與憑證依賴能在隔離網段按預期啟動。

核對項 來源 隔離驗收結果 失敗處置
Project hash manifest 一致 停止還原
Gateway version 安裝清單 相容/不相容 換測試映像
DB schema schema dump 版本一致 用相容測試版本重建
Cert fingerprint 金庫索引 測試CA一致 重新注入測試憑證

備份包的完整性不能只看檔案大小。對每個檔案計算雜湊,對manifest再簽名或放在獨立信任位置;下載或搬移後重新計算。解密失敗、雜湊不符、版本不支援或檔案缺少時,整包標Invalid,不從剩餘檔案拼出看似可用的系統。

隔離還原步驟

隔離演練先封鎖正式控制、DB、認證與通知端點,保存乾淨VM快照。準備測試DB後,以Gateway備份做停用還原,核對產品模組、授權與設定;有需要再匯入指定專案版本。接著修改連線為測試端點、配置測試憑證,確認啟動腳本不接正式服務,再逐步啟用測試資源。

啟動後先檢查畫面是否載入、來源是否明確標示為模擬,並分開顯示Good或Bad等品質、歷史查詢是否讀到測試資料、登入角色是否符合預期。任何寫入命令都應由端點封鎖、模擬驅動拒絕或權限測試攔截;不能以沒有按下按鈕作為安全邊界。

還原完成的判定包含manifest雜湊、畫面版本、Gateway設定差異、資料庫筆數與時間範圍、憑證指紋、權限矩陣與封鎖真機連線的證據。失敗時保留日誌與快照,恢復乾淨環境後再測,不要在未知狀態上反覆修改。

外部DB還原要避免污染正式資料。測試副本使用不同主機名與帳號,查詢只讀,資料時間範圍固定;若必須測試寫入,寫入測試schema並在測試結束後銷毀。外部通知、郵件與Webhook同樣要指向假端點,否則隔離還原可能把測試事件送給真實人員。

回復報告還要列出未納入的外部項目,例如正式通知、正式DNS與真實PLC,明確標為未測試,避免交接者把隔離成功誤解為完整災難復原。

常見失敗與復原決策

專案能開但資料空白,通常是外部DB未還原、連線字串錯或時區不一致;Gateway能啟動但連線紅叉,可能是測試端點、信任鏈或版本不相容;登入成功但角色錯,要查身份來源與角色映射。依manifest逐項定位,不能只重新匯入專案包。

若要回復正式環境,隔離測試通過不等於可直接覆蓋。正式復原要另有批准、停機窗口、現行備份、外部依賴確認與回退點;真機輸出必須由專案安全程序控制。本篇只教隔離驗收,沒有提供任何真機強制輸出捷徑。

每次備份做恢復演練都產生runId,記錄使用的包版本、測試資料庫、測試CA、缺陷與處置。若只測最新包,還要定期抽測舊包,因為格式升級可能使歷史包無法由新Runtime直接讀取。

復原驗收表要記錄「可見但不可控制」的結果:畫面可載入、模擬來源標示與quality欄分開、命令按鈕被權限或端點攔截、歷史查詢筆數相符、憑證指紋與測試CA相符。任何一項只顯示正常而沒有證據,都不能標為通過。

隔離環境的網路阻斷要以實際路由與防火牆規則驗證,不是只在文件寫「禁止連線」。列出允許的測試服務IP與埠,以隔離側規則、路由與防火牆拒絕日誌確認正式網段不可達;必要連線驗證使用核准測試端點,不向現場控制設備任意探測。

若復原包含時間序列資料,先核對時區與時間範圍,再比對筆數、最早最晚時間、校驗和與抽樣內容。筆數相同不代表資料正確,時區偏移可能讓全部事件看似落在錯誤日期。

測試完成後清除測試私鑰、測試資料庫與快照,保留非秘密的驗收證據。若要保留快照供下一輪演練,重新標記用途與到期日,不能把含秘密的可啟動映像當一般文件共享。

FAQ與來源

FAQ1:專案備份包包含Gateway和資料庫嗎?不一定,三者常是不同資產,必須看manifest與產品文件。

FAQ2:可以把正式私鑰放進備份ZIP方便還原嗎?不應這樣做,使用受控金庫與測試憑證。

FAQ3:隔離還原成功代表真機可用嗎?不代表,只能證明隔離依賴與流程通過指定測試。

FAQ4:只看畫面能開就算成功嗎?不算,還要驗證資料、權限、版本、憑證與真機輸出阻斷。

參考:CISA StopRansomware Guide:離線加密備份、定期測試可用性與完整性。

參考:Ignition 8.1 Gateway Backup and Restore:包含範圍、覆蓋還原及Restore Disabled。

參考:Ignition 8.1 Project Export and Import:專案匯出不含Gateway連線與Tag設定。

延伸閱讀


使用 PLC 工具箱 →