SEARCH
TOOLBOX
LANGUAGES
Difference between revisions of "Training 2015 - Assessing and Exploiting Control Systems"

Difference between revisions of "Training 2015 - Assessing and Exploiting Control Systems"

From BruCON 2016

Jump to: navigation, search
(Course Description)
(Course Contents)
Line 13: Line 13:
 
vulnerabilities
 
vulnerabilities
  
=Course Contents=
+
=Course Content=
  
== Introduction ==
+
==Introduction to the NESCOR methodology for penetration testing==
 +
* Preparing for a penetration test
 +
* Architecture reviews
 +
* Pentesting the master servers
 +
* Pentesting the user interfaces
 +
* Pentesting the network communications
 +
* Pentesting the embedded field devices
 +
* End-­‐to-­‐end assessment
 +
* Reporting
 +
 
 +
==Introduction to SamuraiSTFU (Security Testing Framework for Utilities)==
 +
* Setting up the virtual machine
 +
* Walk through the tools and functionality
 +
* Introduction to the student hardware kits
 +
 
 +
==Performing traditional network pentests on control systems ==
 +
* Overview of a traditional network penetration test methodology
 +
* Dangers of port and vulnerability scanning
 +
* Strategies to perform port and vulnerability scanning
 +
 
 +
==Types of ICS user interfaces ==
 +
* Traditional applications
 +
* Web applications
 +
* Terminal interfaces
 +
 
 +
==Pentesting Different Communication Layers ==
 +
* Testing of communication mediums vs communication protocols
 +
* Where security defenses should be place …… and tested
 +
 
 +
==Serial communications ==
 +
* RS-485 and RS-232
 +
* Modbus RTU
 +
* 16-bit unsigned registers and single bit coils
 +
 +
==Pentesting RF communications between master servers and field devices ==
 +
* Hands-on RF spectrum analysis and signal capture
 +
* Spread Spectrum types and strategies
 +
* Hands-on signal demodulation with GNU Radio
 +
* Hands-on network traffic extraction
 +
* Traffic transmission and exploitation
 +
 
 +
==Pentesting TCP/IP based ICS protocols ==
 +
* Protocol capture and analysis
 +
* modbus, DNP3, IEC 61850, ICCP, ZigBee, C37.118, and C12.22
 +
* Dealing with unknown protocols
 +
* Hands-on entropy analysis of network payloads
 +
* Reverse engineering unknown protocols
 +
* Hands-on ICS protocol fuzzing
 +
 
 +
==Pentesting technician interfaces on ICS field and floor devices ==
 +
* Functional analysis of field technician interfaces
 +
* Hands-on exercise capturing USB communications to tech interfaces
 +
* Hands-on exercise analyzing captured USB communications
 +
* Impersonating endpoints in field tech interface communications
 +
* Hands-on exercises fuzzing AMI Smart Meter c12.18 optical interfaces
 +
* Exploiting vulnerabilities found during analysis
 +
 
 +
==Analyzing field and floor device firmware ==
 +
* Obtaining field and floor device firmware
 +
* Hands-on exercise disassembling firmware
 +
* Hands-on exercise analyzing disassembled firmware
 +
* Exploiting firmware flaws
 +
 
 +
==Overview of pentesting field and floor device embedded circuits ==
 +
* Local attack through physically exposed devices
 +
* Expanding physical attacks to remote attacks
 +
* Cryptographic keys and firmware
 +
 
 +
==Analysis of embedded electronics in ICS field and floor devices ==
 +
* Discussion of device disassembly
 +
* Component analysis on embedded circuits
 +
* Datasheet acquisition and analysis for target components
 +
 
 +
==Dumping data at rest on embedded circuits ==
 +
* Using the Bus Pirate and other similar tools
 +
* Overview of I2C or two-wire serial protocol
 +
* Hands-on exercise dumping I2C EEPROMs
 +
* Overview of SPI serial protocol
 +
* Hands-on exercise dumping SPI EEPROMs
 +
* Overview of JTAG
 +
* Hands-on exercise interfacing with JTAG
 +
 
 +
==Bus Snooping on embedded circuits ==
 +
* Overview of bus snooping
 +
* Hands-on exercise snooping busses
 +
 
 +
==Analyzing data obtained from data dumping and bus snooping ==
 +
* Hands-on exercise doing string analysis of datasets
 +
* Hands-on exercise doing entropy analysis of datasets
 +
* Hands-on exercise doing systematic key searches through datasets
 +
* Hands-on exercise doing file carving from datasets
  
 
= Requirements =  
 
= Requirements =  

Revision as of 14:19, 15 May 2015

Tactical Exploitation and Response

This is not your traditional SCADA security course! How many courses send you home with your own PLC and a set of hardware/RF hacking tools?!? This course teaches hands-on penetration testing techniques used to test individual components of a control system, including embedded electronic field devices, network protocols, RF communications, and master servers. Skill learned apply directly to systems such as the Smart Grid, PLCs, RTUs, smart meters, building management, manufacturing, Home Area Networks (HAN), smart appliances, SCADA, substation automation, and synchrophasors. This course is structured around the formal penetration testing methodology created by UtiliSec for the United States Department of Energy. Using this methodology and SamuraiSTFU (Security Testing Framework for Utilities), an open source Linux distribution for pentesting energy sector systems and other critical infrastructure, we'll perform hands-­‐on penetration testing tasks on user interfaces (on master servers and field device maintenance interfaces), control system protocols (modbus, DNP3, IEC 60870-­‐5-­‐104), RF communications (433MHz, 869MHz, 915MHz), and embedded circuit attacks (memory dumping, bus snooping, JTAG, and firmware analysis). We’ll tie these techniques and exercises back to control system devices that can be tested using these techniques. The course exercises will be performed on a mixture of real world and simulated devices to give students the most realistic experience as possible in a portable classroom setting.

Advances in modern control systems such as the energy sector’s “Smart Grid” brings great benefits for asset owners/operators and customers alike, however these benefits come at a cost from a security perspective. With increased functionality and addition inter-­‐system communication, modern control systems bring a greater risk of compromise that both asset owners/operators and customers must accept to realize the desired benefits. To minimize this risk, penetration testing in conjunction with other security assessment types must be performed to minimize vulnerabilities before attackers can exploit critical infrastructures that exist in all countries around the world.

Objectives

  • Attendees  will  be  able  to  explain  the  steps  and  methodology  used  in  performing  penetration  tests  on

Industrial  Control  and  Smart  Grid  systems.

  • Attendees  will  be  able  to  use  the  free  and  open  source  tools  in  SamuraiSTFU  to  discover  and  identify

vulnerabilities  in  web  applications.

  • Attendees  will  be  able  to  exploit  several  hardware,  network,  user  interface,  and  server-­‐side

vulnerabilities

Course Content

Introduction to the NESCOR methodology for penetration testing

  • Preparing for a penetration test
  • Architecture reviews
  • Pentesting the master servers
  • Pentesting the user interfaces
  • Pentesting the network communications
  • Pentesting the embedded field devices
  • End-­‐to-­‐end assessment
  • Reporting

Introduction to SamuraiSTFU (Security Testing Framework for Utilities)

  • Setting up the virtual machine
  • Walk through the tools and functionality
  • Introduction to the student hardware kits

Performing traditional network pentests on control systems

  • Overview of a traditional network penetration test methodology
  • Dangers of port and vulnerability scanning
  • Strategies to perform port and vulnerability scanning

Types of ICS user interfaces

  • Traditional applications
  • Web applications
  • Terminal interfaces

Pentesting Different Communication Layers

  • Testing of communication mediums vs communication protocols
  • Where security defenses should be place …… and tested

Serial communications

  • RS-485 and RS-232
  • Modbus RTU
  • 16-bit unsigned registers and single bit coils

Pentesting RF communications between master servers and field devices

  • Hands-on RF spectrum analysis and signal capture
  • Spread Spectrum types and strategies
  • Hands-on signal demodulation with GNU Radio
  • Hands-on network traffic extraction
  • Traffic transmission and exploitation

Pentesting TCP/IP based ICS protocols

  • Protocol capture and analysis
  • modbus, DNP3, IEC 61850, ICCP, ZigBee, C37.118, and C12.22
  • Dealing with unknown protocols
  • Hands-on entropy analysis of network payloads
  • Reverse engineering unknown protocols
  • Hands-on ICS protocol fuzzing

Pentesting technician interfaces on ICS field and floor devices

  • Functional analysis of field technician interfaces
  • Hands-on exercise capturing USB communications to tech interfaces
  • Hands-on exercise analyzing captured USB communications
  • Impersonating endpoints in field tech interface communications
  • Hands-on exercises fuzzing AMI Smart Meter c12.18 optical interfaces
  • Exploiting vulnerabilities found during analysis

Analyzing field and floor device firmware

  • Obtaining field and floor device firmware
  • Hands-on exercise disassembling firmware
  • Hands-on exercise analyzing disassembled firmware
  • Exploiting firmware flaws

Overview of pentesting field and floor device embedded circuits

  • Local attack through physically exposed devices
  • Expanding physical attacks to remote attacks
  • Cryptographic keys and firmware

Analysis of embedded electronics in ICS field and floor devices

  • Discussion of device disassembly
  • Component analysis on embedded circuits
  • Datasheet acquisition and analysis for target components

Dumping data at rest on embedded circuits

  • Using the Bus Pirate and other similar tools
  • Overview of I2C or two-wire serial protocol
  • Hands-on exercise dumping I2C EEPROMs
  • Overview of SPI serial protocol
  • Hands-on exercise dumping SPI EEPROMs
  • Overview of JTAG
  • Hands-on exercise interfacing with JTAG

Bus Snooping on embedded circuits

  • Overview of bus snooping
  • Hands-on exercise snooping busses

Analyzing data obtained from data dumping and bus snooping

  • Hands-on exercise doing string analysis of datasets
  • Hands-on exercise doing entropy analysis of datasets
  • Hands-on exercise doing systematic key searches through datasets
  • Hands-on exercise doing file carving from datasets

Requirements

Students must have:

  • Familiarity with scripting languages such as Python/Perl/Ruby
  • A familiarity with Windows and Linux administration
  • Familiarity with the malware analysis and reverse engineering malware processes

Software and hardware requirements

Student machines must be able to run at least 2 virtual machines utilizing VMware Workstation 8.0 and above (which can be obtained through a demo license). To run multiple machines usually means at least 4 gigs of memory is needed. Student laptops must be running either OSX, Linux, or Windows and must have the ability to disable all antivirus, sniff traffic, adjust firewalls, etc. Students are responsible for bringing a XP or Windows 7 VMware virtual machine that can be instrumented and infected with malware.

Trainer Biography

Russ Gideon.png

Russ Gideon has many years of experience in information security fulfilling many diverse roles from being a core component of an Incident Response operation to managing an effective Red Team. Russ excels both at malware reverse engineering, which enables him to deeply understand how the attackers do what they do, as well as at high end Red Teaming where he has to penetrate sophisticated and well protected high value systems. Russ currently serves as the Director of Malware Research at Attack Research, LLC.

More information is available on carnal0wnage


300px-twitter-icon.jpg @attackresearch

Links :


Mon. 5 - 7 October 2015 (09:00 - 17:00)

Register.jpg

Back to Training Overview