工業控制系統安全解析
深入OT技術與攻防實作
本書專注於工業控制系統安全,內容涵蓋操作技術(Operational Technology, OT)的多個方面。OT是工業控制系統的核心,包括 ICS(工業控制系統)、PLC(可編程邏輯控制器)、DCS(分散式控制系統)、HMI(人機介面)與 SCADA(監控與資料收集系統)等眾多元素。本書從煉化廠的製程視角,探討工控系統的底層協定,並將場域模擬成靶機,利用 Python 程式進行靶機攻擊,進而反思藍軍的防禦概念。
❑ 第一單元:工業控制
這一單元將深入介紹工業控制系統的各個部分,從 OT 安全到具體的控制系統元件,如 ICS、DCS、SCADA 及 PLC。學習內容包括 PLC 階梯圖、AB 接點操作,並解釋各種專業術語的差異性以及如何使用 NodeMCU 進行模擬。此外,還將涉及到工控領域的通訊協定,包括 Modbus、OPC UA、S7Comm、IEC-104、DNP3 等協定的訊框分析。
❑ 第二單元:煉製石化廠域
本單元介紹煉製石化廠的操作過程,從蒸餾工場、裂解工場到油氣純化等 16 種不同的操作工場,以及油槽區的基礎知識。此部分同時探討工場的工業控制架構。
❑ 第三單元:藍軍與紅軍
在此單元學習 ICS 的網路入侵檢測技術及針對協定的攻擊方法,包括分析著名的網路攻擊案例。此外,還將介紹如何使用 Shodan 和鍾馗之眼 ZoomEye 等工具來偵測潛在的安全風險,並強調作為一名優秀的藍軍的重要概念:知己知彼。
❑ 第四單元:實作
最後,本書透過從 Lab1 到 Lab10 的系列實驗,帶領讀者完成 STRIDE 模型的攻防學習,實際應用前面單元的理論知識。本書提供線上觀看影像檔,可以先預覽後,再對照本書進行實作。書本的文字說明結合影像,學習上會比較順手。
透過這本書的學習,讀者能夠全面了解並掌握工業控制系統的安全操作與防護策略,為在高風險工業環境中的安全保護打下基礎。
目標讀者
a.石化資安專題的高中、大專學生
b.從資訊安全到工控安全的跨領域學習者
c.針對工控與資安領域的碩博士生
d.有志進入油水電的資訊與程控人員
e.對工控安全有興趣的人
☑ 本書為成功大學【石化資安實務專題】指定用書
專業推薦
工控安全是跨領域的人才,本書介紹了機電系應具備的 SCADA、DCS、PLC 等工控系統的運作基本原理,還結合了資訊安全的微軟 STRIDE 模型、KALI,ESP32 與 OpenPLC Runtime / Editor 等軟硬體整合的攻防框架,並用 Python 的 Scapy 工具進行實作,加上煉製工場的介紹,使讀者能夠在攻防模擬實驗中學習,同時體會煉化廠的規模。在十個工控模擬實驗中,讀者能夠親身體驗藍軍與紅軍的攻防對抗,極大地提升了學習的實戰性和趣味性。
——李南逸 博士|國立成功大學計網中心教授兼網路與資安組組長
工控系統(Industrial Control Systems, ICS)的安全議題涉及到許多層面,這些系統通常用於工業自動化和關鍵基礎設施中,如能源、製造、交通和水處理等。這些議題與民眾生活習習相關。因此,提升這些系統的安全性是至關重要的。此外,最令我印象深刻的是,書中設計了十個工控模擬實驗,帶領讀者完成 STRIDE 模型的攻防學習。這些實驗設計精巧,模擬了實際的攻擊場景,讓讀者能夠親身體驗駭客攻擊手段,進一步了解實際攻擊狀況。
——蔡家緯 博士|國立台中科技大學 副教授兼網路工程組組長
對於關鍵基礎設施來說,無論複雜度高低,都同樣重要,皆關乎民生的基礎設備。有別於 IT 領域的安全需求,在 OT 領域中,Safty 才是主要的議題。作者在書中介紹了工控領域常見的 SCADA、DCS、PLC 系統,並製作靶機以學習攻防技術。在十個工控模擬實驗中,透過軟硬體模擬成的 ICS 基本架構 Level 0 - 2,讓讀者能夠用駭客工具進行攻擊,深入理解攻防技巧。
——劉奕賢 博士|國立成功大學電機工程學系助理教授 兼 資通安全研究與教學中心副主任
未來,工控系統的安全威脅將越來越多樣化和複雜化。我相信透過《工控資安銳視角:石化場域OT/ICS學習筆記》,我們能夠全面了解並應對這些挑戰,這本書將會是一本重要的工具書。我推薦這本書給所有關注工控系統安全的專業人士和學術研究者。希望這本書能在工控系統安全領域產生深遠的影響,並促進國家關鍵基礎設施的安全提升。
——郭文中 博士|國立雲林科技大學資工系教授
在大林廠打拼 20 餘年,見過許多工場因人為因素所造成的工安事件,都是由一連串疏忽所導致不可逆的災害;工控是整個煉製的核心,隨著時間推移,有許多人力斷層造成了新舊世代青黃不接的問題。個人認為這本書除了能帶來工控安全上經驗的傳承,在作者有系統的梳理下,更是填補了工控系統安全知識的一大空白。
——羅國暉|台灣中油煉製事業部大林煉油廠 副廠長暨資安長
作者簡介:
林岱銳 博士
現任
.台灣中油煉製事業部大林廠 廠長室專員
.國立成功大學計算機與網路中心「石化資安實務專題」兼任業師
.國立高雄科技大學 兼任助理教授
經歷
.台灣中油煉製事業部大林廠資訊組 經理
.國立雲林科技大學 兼任助理教授
目錄
第一單元 工業控制
第一章 操作技術(Operational Technology, OT)
1.1 關於 OT
1.2 OT 安全
1.3 OT 與 IT 協定(Protocols)概說
1.4 從 IT 到 OT 的 CIA
第二章 ICS(Industrial Control System)工業控制系統簡介
2.1 Purdue 模型(ISA-99)
2.2 工業控制系統 (Industrial Control System, ICS)
2.2.1 ICS 的功能與運作
2.2.2 通用 ICS 架構
2.2.3 ICS 中的軟體和硬體
2.2.4 ICS 中的儀器設備和控制器
2.2.5 ICS 的信號傳輸和通訊
2.2.6 ICS 內的安全儀表系統(Safety Instrumented System, SIS)
2.2.7 ICS 內的 EWS(工程工作站)
2.2.8 ICS 的架構的範例
2.2.9 ICS 網路協定中的常見缺陷
第三章 DCS(Distributed Control System)分散式控制系統
3.1 DCS 的主要特點和概念
3.2 DCS 資料採集與處理
3.3 DCS 控制策略和算法
3.4 DCS 故障診斷和維護
3.5 其他 DCS 相關的重要主題
3.6 HMI(Human Machine Interface)人機界面
第四章 SCADA(Supervisory Control and Data Acquisition System)監控和資料採集系統
4.1 關鍵 SCADA 組件:HMI、SCADA Master、RTU、PLC
4.2 關於 SCADA(Supervisory Control and Data Acquisition)
4.3 DCS 與 SCADA 有何不同
第五章 PLC(Programmable Logic Controller)可程式化邏輯控制器
5.1 PLC 階梯圖
5.2 AB 接點
5.2.1 液位控制系統
5.3 傳統階梯圖
5.4 PLC 階梯圖
5.5 PLC 的三大廠牌
5.6 現行 PLC 編程軟體
5.7 DCS 與 PLC 的差異
5.8 SCADA、DCS、PLC 三者之間的關聯
5.9 PLC、PAC 與 RTU 之不同
5.10 PLC 與 NodeMCU 差異
第六章 工控領域的通訊協定
6.1 Modbus 通訊協定
6.1.1 Modbus 的通訊框架(frame)
6.1.2 Modbus 實際資料範例
6.2 OPC(Open Platform Communications) UA(Unified Architecture) Security Model 開放平台通信統一架構的工業通訊協定
6.2.1 OPC UA 簡介
6.2.2 OPC UA 核心特徵與功能
6.2.3 OPC UA 服務導向概念與安全模型
6.3 西門子專有協定 S7Comm 與 Snap7 Server/Client 模擬器
6.3.1 TPKT(第 5 層:交談層)
6.3.2 COTP(第 6 層:表示層)
6.3.3 S7Comm(第 7 層:應用層)
6.3.4 西門子 S7comm 模擬器 Snap7 Server/Client
6.4 IEC-104 與 DNP3
6.4.1 IEC-104
6.4.2 DNP3
6.5 BACNet、EtherCAT 與 EtherNet/IP
6.5.1 BACNet
6.5.2 EtherCAT
6.5.3 EtherNet/IP
第二單元 煉製石化廠域
第七章 煉製石化廠域概念
7.1 煉製單元工廠簡介
7.1.1 蒸餾工場
7.1.2 異構化工場
7.1.3 烯烴轉化工場
7.1.4 油加氫脫硫工場
7.1.5 正烷烴工場
7.1.6 重油脫硫工場
7.1.7 硫磺工場
7.1.8 氫氣工場
7.1.9 轉化處理工場
7.1.10 重油裂解工場
7.1.11 烷化工場
7.1.12 煤油加氫脫硫工場
7.1.13 輕質原油分餾工場
7.1.14 油氣純化工場
7.1.15 重油媒裂工場
7.1.16 媒裂處理工場
7.1.17 油槽區
7.2 工場的工控架構
7.3 工廠的 PLC 階梯圖
7.4 CSMA/CD、Token-Ring 與 Token-Bus
第三單元 藍軍與紅軍
第八章 ICS 的網路入侵檢測與協定的攻擊
8.1 ICS 環境中的網路入侵檢測
8.1.1 典型的工業網路和組件很容易受到攻擊
8.1.2 ICS 協定攻擊的名詞的解釋
8.2 著名的 ICS 攻擊案例
8.2.1 Shodan 網站與鍾馗之眼 ZoomEye
8.2.2 Stuxnet Overview
8.2.3 2010 Iran Nuclear Power Plant Attack
8.2.4 2014 German Steel
8.2.5 2015 Ukraine Power Grid Cyber Attack-I
8.2.6 2016 Ukraine Power Grid Cyber Attack-II
8.2.7 2017 Triton/Trisis Malware Attack in the Middle East
8.2.8 2018 Taiwan Smart Factory Malware Attack
8.2.9 2019 Norsk Hydro(煉鋁廠)
8.2.10 2020, DarkSide Analysis
8.2.11 2021 Colonial Pipeline Ransomware Attack
第九章 當好藍軍的重要概念-知己知彼
9.1 針對 OT 的 malware
9.1.1 Snake/EKANS
9.1.2 VPNFilter
9.1.3 模組化惡意軟體(Module-based malware)
9.1.4 ChromePass
9.1.5 TRITON/TRISIS malware
9.2 ICS 系統架構與防禦方法
9.2.1 易受攻擊的 OT 環境
9.2.1 ICS 風險現況分析
9.2.3 工控 Gateway
9.2.4 編寫 DPI 規則
9.2.5 Fuzzing
9.2.6 監控未知威脅
9.2.7 Honeypot
9.2.8 在 ICS 中發現 Conficker
9.2.9 網路應用防火牆(Web Application Firewall, WAF)
9.2.10 零信任網路
9.3 安全漏洞
9.3.1 遠程代碼執行(Remote Code Execution, RCE)
9.3.2 RCE 漏洞真實事件:永恆之藍(EternalBlue)
9.4 MITRE ATT&CK
9.5 IEC 62443 簡介
9.5.1 IEC 62443 標準現況
9.5.2 IEC 62443 常見認證的範圍
9.5.3 IEC 62443 目標和規範群體
9.6 政府保護工業控制系統之建議措施
9.6.1 工業控制系統網路架構(ICS Network Architecture)
9.7 CTF(Capture The Flag)資安攻防賽
第十章 工控安全測試的工具
10.1 常用的工控安全測試工具
10.2 其他工控安全學習/測試工具整理
10.3 工控安全測試工具操作順序
10.4 Wireshark
第四單元 實作
第十一章 工控模擬實驗
Lab 1:使用 Modbus Poll 與 Modbus Slave 模擬 Modbus TCP 傳輸
Lab 2:IoT 模擬 PLC
Lab 3:PLC 程式模擬-使用 Python(pyModbus, pyModbusTcp)
Lab 4:模擬 PLC master 與 slave 的 HMI-使用 Python
Lab 5:Python 程式模擬 Modbos 在樹莓派執行
Lab 6:用 ESP8266 或 ESP32 使用 Modbus 協定模擬 PLC
Lab 7:HMI 模擬器
Lab 8:OpenPLC 實作階梯圖並在 Runtime 執行,同時控制 ICDT
Lab 9:結合 ESP32 與 OpenPLC 連動
Lab 10:ICS 場域攻擊入門 - STRIDE 模型
第一單元 工業控制
第一章 操作技術(Operational Technology, OT)
1.1 關於 OT
1.2 OT 安全
1.3 OT 與 IT 協定(Protocols)概說
1.4 從 IT 到 OT 的 CIA
第二章 ICS(Industrial Control System)工業控制系統簡介
2.1 Purdue 模型(ISA-99)
2.2 工業控制系統 (Industrial Control System, ICS)
2.2.1 ICS 的功能與運作
2.2.2 通用 ICS 架構
2.2.3 ICS 中的軟體和硬體
2.2.4 ICS 中的儀器設備和控制器
2.2.5 ICS 的信號傳輸和通訊
2.2.6 ICS 內的安全儀表系統(Safety Instrumented System, SIS)
2....