ICS工业控制安全类方向赛题简单总结
文章目錄
- ICS工業控制安全類賽題簡述
- PLC軟件
- 國內工業安全競賽
- 滲透測試PT
- 逆向分析RE
- 工控協議MISC
- 工控和組態編程
- 漏洞挖掘
- 梯形圖計算
- 變量計算
- 場景計算
- 提供HMI不提供梯形圖
- 無梯形圖的場景
ICS工業控制安全類賽題簡述
之前一段時間,參加了一些工控安全的比賽,接觸到了一些工業控制系統相關安全內容,有過一些學習、分析和思考。這篇文章總結了一些常見的工業安全比賽里的內容,對過往知識的一些梳理和回顧,末尾對一些梯形圖上常見的安全場景具體羅列。作者本身非工控專項研究人員,如果文章有錯誤請多指正。
ICS工業控制系統的賽題本身涉及PLC、HMI、SCADA等內容,包含網絡、控制器、傳統PC等主體,出題面比較廣,簡單可以理解為Web、Reverse、Misc等方向綜合體。從本身入門難易程度來看,入門的題目以WEB和流量分析為主,深入一些會涉及到梯形圖、固件分析、程序修改等等方面的考察。
要求掌握一定的傳統安全滲透技能,同時一定程度了解二進制安全和工控系統。比較典型的例子是一些工控比賽中,只會傳統攻防的人員遇到梯形圖、SCADA系統無法繼續,而只會PLC、SCADA編程的人員又無法在過程中突破主機或網絡限制。
關于隊伍人員配置。如果是標準的三人隊伍,推薦組隊的配置1名滲透人員、1名逆向人員、1名工控人員。或者1名滲透人員、2名工控人員。
PLC軟件
由于工控設備和軟件的壁壘比較高,不同的PLC只能由對應廠商提供的軟件打開和編輯。下面是總結的一些PLC軟件清單。
| 和利時 | AutoThink |
| 臺達(AS) | ISPSoft |
| 西門子 | STEP 7 MicroWIN SMART(PLC)、S7-PLCSIM(仿真器) |
| 三菱 | GX Works:GX Developer(PLC)、GX Simulator(仿真器) |
| 歐姆龍(Omron) | CX One:CX-Programmer(PLC)、CX-Simulator(仿真器) |
| 霍尼韋爾 | Safety Manager |
| 羅克韋爾(AB) | RSLogix |
| ABB(Asea Brown Boveri) | Control Builder Plus、AC 800PEC Tool |
| 施耐德 | SoMachine |
| 步科 | KincoBuilder |
| 大連理工 | PLC Config(PLC) |
| 力控 | ForceControl |
國內工業安全競賽
下面是一個表格,總結了國內工業安全競賽的常見比賽形式。
| 滲透測試 | 傳統滲透、數據保送系統、數據庫 | WEB服務、主機服務、數據服務等 |
| 逆向分析 | 固件分析、工控軟件逆向 | 逆向實戰,會有Arm等指令集 |
| 工控協議 | 工控流量分析、Misc 類 | Misc 流量分析,工控場景流量特征 |
| 工控編程 | PLC 編程、HMI 組態、RTU 編程 | 工控實際組態軟件使用,梯形圖識別與分析 |
| 漏洞挖掘 | 協議分析、Fuzz、固件分析 | 綜合各種漏洞挖掘手段,可以是固件、私有協議等 |
滲透測試PT
- 與業務場景高度關聯,例如工業控制中,Web 端主要為顯示當前使用場景中的控制參數、運行狀態等信息,如果在內網中被中間人劫持,當 HMI 顯示設備無法與 PLC 等實時運行設備同步時,系統會報警或出錯。工業協議對校驗、加密等防護手段做的不夠好,容易產生這類問題。
- 一般采用通用技術展示 Web 界面,以 windows 操作系統為主要平臺,包括嵌入式系統WinCC、桌面系統Windows Server 2008和Windows 7 等系統為主,MSF在這些系統的突破上會是一大殺器。
- Web 滲透的同時會保留多個端口,例如 FTP、HTTPS、Telnet、SNMP、NTP 等服務端口,在 Web 滲透無法突破時可以試試其他端口。
- 為了簡化問題復雜度,有些工控場景一般處于直連環境,內網劫持往往比較有效。但是如果內網配置了靜態 IP 或其他防護措施,ARP 欺騙方式等內網劫持方法無法起效。
- 敏感信息泄露,配置錯誤配置等是工控 Web 發布常見問題,比如 .git, .idea, .project 等工程信息,還可能出現路徑遍歷、命令注入、弱口令等問題。
逆向分析RE
- 工控操作系統可能為 RTOS(Real Time Operate System), 例如 vxworks、uc-os 等實時操作系統,在逆向前需要對其架構和指令集需要比較熟悉。
- 遇到ARM、MIPS等指令集程序的概率較高,測試環境可以通過 qemu 搭建 arm 環境進行動態調試。
- 工控固件逆向常見的目標是工控工程加密算法、硬編碼秘鑰、硬編碼后門等常見固件逆向漏洞,如果發現了堆棧溢出類漏洞,往往能夠導致目標設備拒絕服務,對工業設備來說非常嚴重。
- 在上位機、PLC和一些SCADA加密情況比較多,需要在第一步解壓過程對其進行解壓或解密。也有對工程文件、編程軟件加密碼的場景,只有對一些特定的版本可以逆向。
工控協議MISC
- 工控協議針對工控場景設計,具有簡單、高效、低延時等特點,協議可能沒有校驗或者加密,針對此類問題完全可以考慮采用重放、劫持等簡單攻擊手段。
- 工控協議包括眾多的私有協議,這部分協議具體細節需要逆向或者采集數據來實現數據功能的還原。
- 工控協議可能導致目標 PLC、DCS、RTU 等設備出現拒絕服務,采用基于 協議Fuzz 的方法可以快速發現此類問題。
- 遇到需要區分哪些是合法請求、哪些是異常請求的場景,除了分析功能碼,還需要分析流量上下文。
- 除了一些工控協議,根據實際場景還可能有一些數據傳輸協議,比如MQTT、OPC等,都是可以讀取數據的點。
工控和組態編程
- 必需將工控編程邏輯和業務場景對應,某個bit值變量為0,對應的操作可以是閉合也可以打開,要明白工控業務邏輯。
- 務必明確梯形圖文件是什么格式,指定格式只能用指定軟件打開和仿真,同廠家也可能存在新舊產品不共用軟件的情況。
- 工控設備往往可以直接連接、上載程序、在線調試,不提供梯形圖的多半是此類場景。
- 工控設備的連接方式多樣,一般采用RJ 45網線接口,但是也有COM串口、USB 接口等新的方式。
- 梯形圖計算最好使用仿真運行,尤其是帶有浮點、類型轉化的梯形圖,口算很難算對。如果邏輯過多,可以新建工程選出主要邏輯運行,否則可能因為其他變量制約無法得出結果。
漏洞挖掘
- 固件分析部分基本同逆向部分,要注意配置文件、數據輸入等不安全輸入造成的問題。
- 私有協議測試需要自己編寫收發包,或者用協議Fuzz工具。
- 注意工控設備對時效性和魯棒性都要求較高,一些安全問題會更嚴重,比如拒絕服務場景。
梯形圖計算
梯形圖問題設置的意義,在于攻擊者拿到HMI或者工程主機,如何進一步破壞工業系統。比如震網病毒,就是修改了很小一點的內容,不易被覺察,最后導致設備損壞。看懂梯形圖,能理解邏輯,并且能修改就成了關鍵的技能技術。
變量計算
梯形圖基礎是要識別符號。不同的廠家的PLC符號不盡相同,有的額是縮寫,有的是符號,需要具體對待,一般在PLC編程軟件的幫助中帶有相應的指令說明。下面列舉一些相對通用的指令,太過復雜的也不適合出計算題:
| ADD | + | 加 |
| SUB | - | 減 |
| MUL | * | 乘 |
| DIV | / | 除 |
| -| |- | 關閉 | |
| -|/|- | 打開 | |
| OR | 或 | |
| AND | 與 | |
| MOV | 賦值 |
最佳的計算方法是使用仿真器運行程序,監視變量得到運行結果。
不涉及精度和位運算的數據轉化的簡單梯形圖可以手算。
復雜功能需要分析簡化,否則可能在仿真器中運行不起來。最好可以新建一個工程,只取出相關的邏輯。
場景計算
梯形圖場景計算是比較常見的真正工控內容的題目,題目會給出一段程序和程序背景敘述,最終求得某一個業務邏輯運行后的結果。
這種問題一般都會涉及到變量計算、時鐘周期等。需要結合描述搞清楚控制邏輯是怎么實現的,哪幾個變量是開關變量等。最后通過手動計算或者仿真運行得到運行結果。
提供HMI不提供梯形圖
需要上載、控制梯形圖的場景。
一般出現在工業滲透場景或者線下實戰,PLC中確定有相應程序的情況。
獲取梯形圖的時候,可以用HMI上的組態軟件連接PLC,然后進行程序上載,獲取相應的梯形圖。
控制梯形圖一般是對一些開關開閉互轉,完成對一些變量的控制,從而控制機器做出相應的動作,邏輯一般不會太復雜。
編輯完成后需要編譯程序,然后下載到PLC后運行程序。
具體邏輯本的分析原則和方法參考上一部分。
無梯形圖的場景
一般出現在工業滲透場景或者線下直接連接設備的實戰場景,這時PLC中可能會存在沒有程序的情況,屬于難度較高的一類場景。
相對來說不會太過復雜,可能要分析工藝流程之后,設計控制邏輯。一般是參考HMI的組態圖之后,自行設計一個簡單的梯形圖實現功能。可能的話,一些編程軟件中攜帶的示例程序改改就可以運行。
總結
以上是生活随笔為你收集整理的ICS工业控制安全类方向赛题简单总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django中的class Meta知识
- 下一篇: HelloCsdn