Acknowledgments |
|
xvii | |
Introduction |
|
xix | |
Part I Setting the Stage: Putting ICS Penetration Testing in Context |
|
|
Case Study, Part 1: Recipe for Disaster |
|
|
2 | (3) |
|
1 Introduction to Industrial Control Systems [ In]Security |
|
|
5 | (22) |
|
Cyberphysical Systems: The Rise of the Machines |
|
|
7 | (7) |
|
New Vectors to Old Threats |
|
|
9 | (1) |
|
The Consequences: What Could Happen? |
|
|
10 | (1) |
|
Understanding Realistic Threats and Risks to ICS |
|
|
10 | (4) |
|
Overview of Industrial Control Systems |
|
|
14 | (12) |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
15 | (1) |
|
Purdue Reference Model for ICS |
|
|
15 | (3) |
|
Types of Common Control Systems, Devices, and Components |
|
|
18 | (8) |
|
|
26 | (1) |
|
References for Further Reading |
|
|
26 | (1) |
|
|
27 | (40) |
|
ICS Risk Assessment Primer |
|
|
28 | (7) |
|
The Elusive ICS "Risk Metric" |
|
|
28 | (1) |
|
Risk Assessment Standards |
|
|
29 | (1) |
|
What Should an ICS Risk Assessment Evaluate and Measure? |
|
|
30 | (3) |
|
ICS Risk Assessment Process Overview |
|
|
33 | (2) |
|
ICS Risk Assessment Process Steps |
|
|
35 | (30) |
|
Stage 1: System Identification & Characterization |
|
|
36 | (8) |
|
Stage 2: Vulnerability Identification & Threat Modeling |
|
|
44 | (20) |
|
|
64 | (1) |
|
|
65 | (1) |
|
References for Further Reading |
|
|
65 | (2) |
|
3 Actionable ICS Threat Intelligence through Threat Modeling |
|
|
67 | (33) |
|
Threat Information vs. Threat Intelligence |
|
|
69 | (1) |
|
Threat Modeling: Turning ICS Threat Information into "Actionable" Threat Intelligence |
|
|
70 | (29) |
|
|
71 | (2) |
|
The ICS Threat Modeling Process |
|
|
73 | (3) |
|
|
76 | (23) |
|
|
99 | (1) |
|
References for Further Reading |
|
|
99 | (1) |
|
Case Study, Part 2: The Emergence of a Threat |
|
|
100 | (4) |
Part II Hacking Industrial Control Systems |
|
|
Case Study, Part 3: A Way In |
|
|
104 | (3) |
|
4 ICS Hacking (Penetration Testing) Strategies |
|
|
107 | (32) |
|
The Purpose of a Penetration Test |
|
|
109 | (2) |
|
Black Box, White Box, Gray Box |
|
|
111 | (1) |
|
Special Considerations: ICS Penetration Testing Is Not IT Penetration Testing |
|
|
112 | (2) |
|
|
114 | (10) |
|
Sampling "Like" Configured Systems |
|
|
114 | (1) |
|
|
115 | (6) |
|
|
121 | (3) |
|
|
124 | (1) |
|
|
125 | (1) |
|
ICS Penetration-Testing Strategies |
|
|
125 | (11) |
|
Reconnaissance ("Footprinting") |
|
|
126 | (1) |
|
|
127 | (2) |
|
|
129 | (2) |
|
Thinking Outside of the Network: Asymmetric and Alternative Attack Vectors |
|
|
131 | (2) |
|
Internal Testing: On the ICS Network |
|
|
133 | (3) |
|
|
136 | (1) |
|
Resources for Further Reading |
|
|
137 | (2) |
|
|
139 | (48) |
|
|
140 | (9) |
|
|
149 | (5) |
|
|
154 | (8) |
|
|
162 | (14) |
|
|
176 | (5) |
|
|
181 | (2) |
|
Protocol Hacking Countermeasures |
|
|
183 | (2) |
|
|
185 | (1) |
|
References for Further Reading |
|
|
185 | (2) |
|
6 Hacking ICS Devices and Applications |
|
|
187 | (42) |
|
Exploiting Vulnerabilities in Software |
|
|
189 | (38) |
|
|
189 | (1) |
|
|
190 | (5) |
|
Integer Bugs: Overflows, Underflows, Trunction, and Sign Mismatches |
|
|
195 | (4) |
|
|
199 | (5) |
|
Exploiting Format Strings |
|
|
204 | (4) |
|
|
208 | (3) |
|
|
211 | (8) |
|
|
219 | (1) |
|
Cross-Site Request Forgery (CSRF) |
|
|
219 | (5) |
|
Exploiting Hard-Coded Values |
|
|
224 | (1) |
|
|
225 | (2) |
|
|
227 | (1) |
|
|
227 | (1) |
|
References for Further Reading |
|
|
228 | (1) |
|
7 ICS "Zero-Day" Vulnerability Research |
|
|
229 | (32) |
|
|
230 | (1) |
|
|
231 | (1) |
|
Step 2: Study the Documentation |
|
|
231 | (1) |
|
Step 3: List and Prioritize Accessible Interfaces |
|
|
232 | (1) |
|
Step 4: Analyze/Test Each Interface |
|
|
232 | (17) |
|
|
233 | (5) |
|
|
238 | (8) |
|
|
246 | (3) |
|
Step 5: Exploit Vulnerabilities |
|
|
249 | (2) |
|
Putting It All Together: MicroLogix Case Study |
|
|
251 | (8) |
|
|
251 | (1) |
|
|
252 | (1) |
|
Creating a Custom Firmware |
|
|
253 | (6) |
|
|
259 | (1) |
|
References for Further Reading |
|
|
260 | (1) |
|
|
260 | (1) |
|
|
260 | (1) |
|
|
261 | (25) |
|
|
262 | (10) |
|
|
263 | (1) |
|
|
264 | (1) |
|
|
265 | (1) |
|
|
265 | (1) |
|
|
266 | (1) |
|
|
266 | (2) |
|
|
268 | (1) |
|
|
269 | (3) |
|
|
272 | (12) |
|
|
272 | (12) |
|
|
284 | (1) |
|
References for Further Reading |
|
|
284 | (2) |
|
Case Study, Part 4: Foothold |
|
|
286 | (4) |
Part III Putting It All Together: Risk Mitigation |
|
|
Case Study, Part 5: How Will It End? |
|
|
290 | (3) |
|
9 ICS Security Standards Primer |
|
|
293 | (14) |
|
|
295 | (1) |
|
Common ICS Cybersecurity Standards |
|
|
295 | (7) |
|
|
296 | (1) |
|
ISA/IEC 62443 (formerly ISA-99) |
|
|
296 | (1) |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
299 | (1) |
|
|
300 | (2) |
|
General Cybersecurity Standards |
|
|
302 | (4) |
|
NIST Cybersecurity Framework |
|
|
302 | (2) |
|
|
304 | (2) |
|
|
306 | (1) |
|
References for Further Reading |
|
|
306 | (1) |
|
10 ICS Risk Mitigation Strategies |
|
|
307 | (34) |
|
|
308 | (1) |
|
|
309 | (2) |
|
Confidentiality, Integrity, and Availability (CIA) |
|
|
309 | (1) |
|
|
310 | (1) |
|
|
310 | (1) |
|
General ICS Risk Mitigation Considerations |
|
|
311 | (2) |
|
ICS Network Considerations |
|
|
311 | (1) |
|
ICS Host-Based Considerations |
|
|
312 | (1) |
|
ICS Physical Access Considerations |
|
|
313 | (1) |
|
Exploits, Threats, and Vulnerabilities |
|
|
313 | (15) |
|
|
314 | (1) |
|
|
314 | (1) |
|
Eliminating Vulnerabilities |
|
|
314 | (14) |
|
Additional ICS Risk Mitigation Considerations |
|
|
328 | (3) |
|
System Integration Issues |
|
|
328 | (1) |
|
|
329 | (1) |
|
|
329 | (1) |
|
|
330 | (1) |
|
The Risk Mitigation Process |
|
|
331 | (5) |
|
Integrating the Risk Assessment Steps |
|
|
331 | (1) |
|
Integrating the Risk Scenarios |
|
|
331 | (2) |
|
Performing a Cost-Benefit Analysis |
|
|
333 | (2) |
|
Establishing the Risk Mitigation Strategy |
|
|
335 | (1) |
|
|
336 | (1) |
|
References for Further Reading |
|
|
337 | |
Part IV Appendixes |
|
|
A Glossary of Acronyms and Abbreviations |
|
|
341 | (6) |
|
B Glossary of Terminology |
|
|
347 | (20) |
|
C ICS Risk Assessment and Penetration Testing Methodology Flowcharts |
|
|
367 | (4) |
Index |
|
371 | |