Page 45 - 清流雙月刊 NO.51
P. 45
CI 學堂
4. 使用 PLC flags 作完整性檢查:在 PLC
error flags 上放置計數器以捕獲任何數
學問題,如改變其邏輯、啟動新程序、
測試新代碼、下載新的程序等等,由於
大多數的 PLC 不提供加密、完整性的檢
查,如發生上述邏輯的更改,Flags 可以
是很好的指示。
5. 使用加密及 Checksum 之完整性來檢查
PLC 代碼,使用加密雜湊或校驗和(如
ISA 的網路安全小組於 2021 年發布《可程式邏
輯控制器的 20 項主要準則》,避免工業控制 果加密雜湊不可用)來檢查 PLC 程式碼
系統運行過程中出現的各類錯誤,並為調查相 完整性並在程式碼發生變更時發出警訊。
關安全事件提供參考。(Source: admeritia GmbH,
https://www.plc-security.com/index.html)
6. 驗證定時器和計數器:如果定時器和計
式邏輯控制器的 20 項主要準則》(Top 20 數器值會寫入 PLC 程序中,為了符合合
Secure PLC Coding Practices),目的是讓 理性(定時器或計數器預設的有效範圍
我們意識到,雖然安全編碼規範並不能完 及歸零)之要求,PLC 須先驗證寫入值
全阻止網路攻擊,但是它可以避免工業控 的合理性,並且需驗證輸入值小於零時
制系統運行過程中出現的各類錯誤,並為 計數器反向計數情況。
調查相關安全事件提供一些參考。
7. 配對輸入/輸出的驗證和警訊:如果
您有成對訊號,請確保兩個訊號不會
《可程式邏輯控制器的 20 項主要準則》 同時有相同的值,當發生物理上不可
能的輸入/輸出狀態時(如輸入與輸
1. PLC 程式碼模組化:使用不同的功能區
出均是「ON」),請立即通報操作
塊(副程式,Subroutine),將 PLC 程
員;為防止切換輸出可能損壞執行器
式碼拆分為多個模組,並獨立測試每一
(Actuator),可考慮使成對訊號獨立
副程式模組。
或新增延遲計時器。
2. 追蹤運行模式:保持 PLC 處於執行
8. 在 PLC 層級上須先驗證 HMI 輸入之變數
(RUN)模式,如果 PLC 不處於 RUN
值,並應在 PLC 中增加進一步的交叉檢
模式,應該通知操作人員。
查,以防止或警告超出可接受範圍的值
3. 盡可能利用 PLC 來做運算邏輯(例如 編程到 HMI 中。
累加或積分),不宜過度依賴人機介面
9. 驗證間接用來驗證 PLC 變數的完整性:
(HMI)來做。
通過對陣列的溢出或異常下標輸入來驗
No.51 MAY. 2024 43