基于工業控制系統的特點,本書從滲透測試的角度介紹了針對工控系統進行安全研究涉及的諸多方面內容,為工控系統的研究人員提供了有益參考。本書共分為三個部分:第壹部分介紹工控系統的架構與組成、工控系統的風險評估以及工控系統的威脅情報;第二部分介紹工控系統滲透測試、協議、設備、應用,以及針對工控系統的"0-day"漏洞挖掘與惡意代碼;第三部分介紹工控系統安全標準及風險緩解策略。
About the Authors 作 者 簡 介Clint Bodungen(休斯頓,得克薩斯州)Clint Bodungen是卡巴斯基實驗室的一名關鍵基礎設施安全高級研究員。在"網絡"(cyber)安全行業擁有二十余年的從業經歷,專門從事風險評估、滲透測試以及脆弱性研究。Clint Bodungent過半的工作經歷都關注于工業控制系統。Clint Bodungen從11歲起開始編程,并在20世紀90年代中期為Unix/Linux操作系統開發應用程序與工具。在美國空軍服役期間,Clint Bodungen的職業生涯拉開了序幕,他擁有工業設計技術學位并先后擔任了單位的計算機系統安全官(Computer Systems Security Officer,CSSO)及OPSEC主管。Clint Bodungen在Symantec公司任職并對公司研發的IDS應用程序進行測試期間熱衷于威脅研究與系統測試。2003年,一家工業自動化咨詢公司聘請Clint Bodungen來幫助某家大型石油和天然氣公司對其SCADA(Supervisory Control and Data Acquisition)系統進行安全保障,自那以后Clint Bodungen開始對工業控制系統有所涉獵。此后,Clint Bodungen領導了多項美國 能源機構的工業控制系統風險評估和滲透測試項目,并繼續同工控系統廠商一起致力于脆弱性研究。Clint Bodungen設計并教授了十多門工控系統安全培訓課程,并多次在工控系統網絡安全大會上發表演講。
Bryan L. Singer,CISSP,CAP(蒙特瓦洛,阿拉巴馬州)Bryan Singer是Kenexis安全公司的主要投資人之一,重點關注工控系統以及SCADA系統安全問題,是一名業內公認的工業安全專家。Bryan Singer曾服役于美國陸軍,從一名空降兵成長為情報分析員。此后,Bryan Singer多次參與大型工業網絡架構及網絡安全架構的設計、開發與實施工作,并在全球多個關鍵基礎設施領域開展滲透測試與網絡安全評估工作,涵蓋領域包括電力、石油和天然氣、食品飲料、核能、汽車、化工及制藥等。Bryan Singer 2002年開始擔任ISA-99/62443標準委員會的創始主席,直到2012年卸任。Bryan Singer擅長的技術包括軟件開發、逆向工程、電子取證、網絡設計、滲透測試以及網絡安全脆弱性評估等等。Bryan Singer現居住于阿拉巴馬州的蒙特瓦洛,多次就工控系統安全領域的問題撰寫文章、發表演講并分享經驗。
Aaron Shbeeb(休斯頓,得克薩斯州)Aaron Shbeeb早在少年時期就對程序開發及計算機安全產生了興趣。他畢業于俄亥俄州立大學,獲得了計算機科學與工程理學學士學位。Aaron Shbeeb在軟件開發以及安全崗位擁有十多年的從業經驗,主要關注安全程序設計實踐。從2008年起,在職業發展以及個人興趣的雙重驅動下,Aaron Shbeeb開始從事針對工控系統/SCADA系統的滲透測試以及安全研究工作。
Stephen Hilt(查塔努加,田納西州)Stephen Hilt在信息安全與工控系統安全領域工作了十余年。從南伊利諾伊大學獲得學士學位后,Stephen Hilt供職于美國一家大型電力公司。在該公司就職期間,Stephen Hilt在安全網絡工程、事件響應、電子取證、評估以及滲透測試領域積累了豐富的經驗。隨后,Stephen Hilt開始關注工控系統評估以及NERC CIP(North American Electric Reliability Council,Critical Infrastructure Protection)評估工作。鑒于其從業經歷,世界上的工控系統安全咨詢公司Digital Bond聘請他擔任工控系統安全顧問與研究員。2014年至2015年期間,Stephen Hilt了針對工控系統的眾多Nmap腳本,通過本地命令對工控系統協議進行識別。目前,Stephen Hilt擔任Trend Micro公司的高級威脅研究員,繼續從事工控系統研究工作,并在其他高級研究領域開展了深入的探索。
Kyle Wilhoit(費斯圖斯,密蘇里州)Kyle Wilhoit是Trend Micro公司的一名高級威脅研究員,主要關注于捕獲互聯網上的惡意代碼。在加入Trend Micro公司之前,Kyle Wilhoit就職于FireEye公司,主要關注國家層面的攻擊者。只要Kyle Wilhoit沒有去周游世界,你就可以在他的家鄉圣路易斯找到他。
目錄 Contents
譯者序
作者簡介
技術審校者簡介
前言
致謝
及時部分做好準備:工業控制系統滲透測試就位
案例研究及時部分:無盡的災難2
第1章工業控制系統安全概述4
1.1信息物理系統:機器崛起5
1.1.1傳統威脅的全新攻擊向量7
1.1.2后果:這將導致什么呢8
1.1.3理解工控系統所面臨的現實威脅與風險9
1.2工業控制系統概述12
1.2.1畫面12
1.2.2監視12
1.2.3控制12
1.2.4用于工控系統的普渡參考模型13
1.2.5常用控制系統、設備和組件的類型15
1.3本章總結20
1.4延伸閱讀20
第2章工業控制系統風險評估22
2.1工控系統風險評估入門22
2.1.1難以確定的工控系統"風險度量標準"23
2.1.2風險評估標準23
2.1.3工控系統風險評估中評價和測量的內容24
2.1.4工控系統風險評估過程概述27
2.2工控系統風險評估過程步驟28
2.2.1第1階段:資產識別與評定30
2.2.2第2階段:脆弱性識別與威脅建模36
2.2.3后續步驟51
2.3本章總結51
2.4延伸閱讀52
第3章通過威脅建模獲取具有可操作性的工業控制系統威脅情報53
3.1威脅信息與威脅情報54
3.2威脅建模:將工控系統威脅信息轉化為"可操作"的威脅情報56
3.2.1工控系統殺傷鏈56
3.2.2工控系統威脅建模過程58
3.2.3信息收集60
3.3本章總結78
3.4延伸閱讀78
案例研究第二部分:威脅涌現79
延伸閱讀81
第二部分工業控制系統入侵
案例研究第三部分:乘虛而入84
延伸閱讀86
第4章滲透測試策略87
4.1滲透測試的目的88
4.2黑盒測試、白盒測試與灰盒測試90
4.3特殊考量:工控系統滲透測試不同于IT系統滲透測試91
4.4實驗環境的部署93
4.4.1從"類似"配置的系統中取樣93
4.4.2虛擬化94
4.4.3裝備99
4.5測試規則100
4.6風險場景的運用101
4.7工控系統滲透測試:測試策略101
4.7.1偵察("踩點")102
4.7.2外部測試103
4.7.3跳板攻擊105
4.7.4網絡之外的考慮:非對稱與可替換的攻擊向量107
4.7.5內部測試:針對工控系統網絡的測試108
4.8本章總結112
4.9延伸閱讀112
第5章工業控制系統協議攻擊114
5.1Modbus協議114
5.1.1Modbus協議中間人攻擊119
5.1.2Schneider終止CPU運行攻擊119
5.1.3Schneider功能碼90鑒別攻擊121
5.2EtherNet/IP協議122
5.2.1EtherNet/IP協議身份鑒別請求攻擊124
5.2.2EtherNet/IP協議中間人攻擊126
5.2.3EtherNet/IP協議終止CPU運行攻擊126
5.3DNP3協議127
5.3.1DNP3 協議模糊測試攻擊131
5.3.2DNP3協議鑒別攻擊133
5.4Siemens S7通信協議134
5.4.1S7協議終止CPU運行攻擊135
5.4.2S7協議鑒別攻擊141
5.4.3S7 協議口令暴力破解攻擊144
5.5BACnet協議147
5.6其他協議152
5.6.1OMRON FINS協議鑒別攻擊152
5.6.2PCWORX協議鑒別攻擊153
5.7協議攻擊的對抗措施154
5.7.1更新固件154
5.7.2強網絡隔離和網絡安全155
5.7.3口令暴力攻擊的對抗措施155
5.8本章總結156
5.9延伸閱讀156
第6章工業控制系統設備與應用攻擊157
6.1軟件的漏洞利用158
6.1.1若干基本原理158
6.1.2緩沖區溢出159
6.1.3整型溢出:上溢、下溢、截斷與符合失配164
6.1.4指針操縱168
6.1.5格式化字符串172
6.1.6目錄遍歷175
6.1.7DLL劫持178
6.1.8注入182
6.1.9跨站腳本186
6.1.10跨站請求偽造189
6.1.11硬編碼值利用191
6.1.12暴力攻擊192
6.2所有軟件皆有漏洞194
6.3本章總結194
6.4延伸閱讀195
第7章工業控制系統"0-day"漏洞研究196
7.1像攻擊者一樣思考197
7.2步驟1:目標選取197
7.3步驟2:文檔研究198
7.4步驟3:可訪問接口的枚舉與優先級排序198
7.5步驟4:逐接口分析與測試199
7.5.1模糊測試199
7.5.2靜態二進制分析205
7.5.3動態二進制分析211
7.6步驟5:漏洞利用214
7.7融會貫通:MicroLogix案例研究216
7.7.1漏洞研究的準備216
7.7.2深入之前的工作217
7.7.3打造定制固件218
7.8本章總結223
7.9延伸閱讀224
7.9.1工具224
7.9.2一般文獻224
第8章工業控制系統惡意代碼225
8.1工控系統惡意代碼入門225
8.1.1代碼釋放器225
8.1.2Rootkits227
8.1.3病毒228
8.1.4廣告軟件與間諜程序228
8.1.5蠕蟲229
8.1.6木馬229
8.1.7勒索軟件231
8.1.8感染途徑232
8.2工控系統惡意代碼分析234
8.2.1實驗環境234
8.2.2Stuxnet235
8.2.3Flame237
8.2.4Havex237
8.2.5BlackEnergy239
8.2.6偽裝為工控系統軟件的犯罪軟件241
8.2.7Shamoon243
8.3本章總結243
8.4延伸閱讀244
案例研究第四部分:立足之地245
延伸閱讀247
第三部分融會貫通:風險緩解
案例研究第五部分:何去何從250
延伸閱讀251
第9章工業控制系統安全標準入門252
9.1合規性與安全性253
9.2常見的工控系統網絡安全標準254
9.2.1NIST SP 800-82254
9.2.2ISA/IEC 6244325