如何入門工控漏洞挖掘

前言
新的一年開始了,本人從事工控安全研究也有個兩三年了,雖然水平也不咋樣,但是總算有所得,比如今年挖了很多安全設備的漏洞,在天府杯上攻破了世界上非常流行的SCADA軟件,成功在一些國內外的RTOS控制器設備實現了RCE等等。
之前有很多朋友想從事這方面的工作,經常會跑來問我究竟怎么入門工控漏洞挖掘。由于時間原因,我都不會回復的特別詳細,所以想借著這個機會給大家講講怎么入門工控漏洞挖掘。
工控安全研究的現狀
首先工控安全研究的主要動力是國家和工控廠商,國家非常關注這塊的安全,因為這個是關乎民生經濟的大事。國內的工控廠商相比國外來說對安全這塊不是很重視,大多是為了過個等保。
大家可以搜索下“工控安全”,跑出來大多數各種安全設備部署的方案,而很少有從“攻擊”的角度去研究工控系統是否安全。國內愿意分享工控漏洞挖掘技術少之又少,即使分享出來的,大多數都是“邊角料”,這就導致普通人想從事工控漏洞挖掘的門檻相對較高。
所以想要快速入門工控漏洞挖掘的同學與其等著所謂的大佬分享技術,不如化被動為主動,經常關注下國外的工控安全研究團隊。重點關注這些團隊披露出的漏洞分析思路,都是可以借鑒的,下到簡單的明文傳輸,上到復雜的RCE,應有盡有。
思科的talos
https://talosintelligence.com/vulnerability_reports
claroty 團隊
https://www.claroty.com/blog/
美國的ICS CERT
https://www.cisa.gov/uscert/ics/advisories
空客
https://airbus-cyber-security.com/blog/
Armis
https://www.armis.com/blog
工控漏挖的特殊性
1、OT系統與IT系統的漏洞挖掘有著明顯的不同,OT系統的可用性是排在第一位的,所以,遠程的拒絕服務漏洞對于工控系統來說是致命的,漏洞評分相對較高。
2、OT系統封閉性相對較高,設備相對昂貴,小到幾百,大到幾百萬,同時OT系統的軟件在廠商官方網站往往下載不到。只能聯系經銷商獲取。
3、工控控制類設備往往跑的是RTOS(Vxworks,SMX,GHS,ADONIS。。。),這些系統研究資料非常少。一般只能使用PCB的硬件調試口進行調試。在上面進行RCE相對困難,當然不是沒可能,只是難度較高。
基礎知識
從安全轉過來的其實不用了解太多的專業知識。重點了解控制器的一些編程語言以及基礎的工控協議。

選擇挖掘的廠商和目標
對一個新人來說,剛開始入門工控漏洞挖掘最開始不要選擇國外如西門子,GE這些大廠,這些安全性相對較高,盲目上手容易打擊信心。可以從國內廠商開始入手,挖掘漏洞產出相對較高,等熟悉之后可以開始嘗試國外大廠。

挖掘哪些漏洞:
軟件類比設備類相對好獲取,可以下載試用版進行使用。而設備可能相對昂貴。
有預算的時候可以進行購買研究。

無論是設備上還是軟件上,FUZZ是挖掘漏洞非常好的方法,推薦我常用的fuzz工具:
https://github.com/jtpereyda/boofuzz
https://talosintelligence.com/mutiny_fuzzer
通過這些工具可以讓脆弱的工控設備、工控軟件在幾分鐘進入crash狀態。
工控固件分析
分析工控設備固件不僅能夠發現一些敏感信息(后門,私鑰),也可以進一步幫助我們理解協議的實現,增加模糊工具的覆蓋率。
這里的分析方法不再贅述,感興趣的同學可以參考我寫的文章
https://bbs.pediy.com/thread-261935.htm
https://bbs.pediy.com/thread-261884.htm
https://bbs.pediy.com/thread-264144.htm
https://bbs.pediy.com/thread-267153.htm
漏洞賞金
事實上,即使是最大的工控廠商西門子也沒有相關的獎勵計劃(估計也是這方面人研究比較少的原因)。挖工控漏洞基本靠情懷,無所不pwn的極客精神以及敢于挑戰的決心。可能最后只能尷尬地吹個牛,說挖出漏洞影響很多國內外關鍵的基礎設施以此自我安慰。