Assessing and Exploiting Control Systems with SamuraiSTFU

Justin Searle | August 2-5

On This Page


This is not your traditional SCADA security course! This course teaches hands-on penetration testing techniques used to test embedded electronic field devices, network protocols, RF communications, and controlling servers of ICS and Smart Grid systems like PLCs, RTUs, smart meters, Home Area Networks (HAN), smart appliances, SCADA, substation automation, and synchrophasors. This course is structured around the formal penetration testing methodology created by the National Energy Sector Cybersecurity Organization Resource (NESCOR), a United States Department of Energy project. Using this methodology and SamuraiSTFU (Security Testing Framework for Utilities), an open source Linux distribution for pen testing energy sector systems and other critical infrastructure, we'll perform hands-on penetration testing tasks on embedded electronic field devices, their RF communications, and the myriad of user interfaces used throughout smart grid systems. We’ll tie these techniques and exercises back to the smart grid devices that can be tested using these techniques. We will also do exercises on dissecting and fuzzing smart grid protocols like mod bus, DNP3, IEC 61850, ICCP, ZigBee, C37.118, and C12.22. 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 ICS systems such as the energy sector’s “Smart Grid" brings great benefits for electric utilities and customer alike; however, these benefits come at a cost from a security perspective. With increased functionality and addition inter-system communication, the smart grid brings with it a greater risk of compromise that both utilities and customers must accept to realize their desired business benefits. To minimize this risk, penetration testing in conjunction with other security assessment types must be performed to minimize vulnerabilities before attackers can exploit the critical infrastructures that exist in all countries around the world.

Who Should Take This Course

Basic penetration testing experience is desirable, but not required. It is assumed that attendees will have no knowledge of ICS, Smart Grid, SCADA, or critical infrastructure. This course is designed for intermediate level security professionals, be they engineers, technicians, analysts, managers, or penetration testers.

Student Requirements

Recommended reading before the course:
• For those with little or no ICS experience, these Wikipedia articles provide a brief introduction to the concepts and history of control systems that will be helpful to know for class.
• While this has nothing to do with control systems, it provides a great introduction to the concepts and techniques taught in this class to pen test embedded electronic hardware in ICS field/floor devices. Chapter 7 of the NIST Interagency Report 7628, titled Bottom-up Security Analysis of the Smart Grid, provides a great overview of the challenges faced in Smart Grid and energy sector systems, many of which we are testing for and exploiting in this class.

What Students Should Bring

• Laptop with at least two (2) USB ports (three ports preferred). If you only have two (2) USB ports, and they are right next to each other, you will need to bring a USB extension cable.
• Latest VMware Player, VMware Workstation, VWware Fusion installed. Other virtualization software such as Parallels or VirtualBox will probably work if the attendee is familiar with its functionality; however, VMware Player should be prepared as a backup just in case.
• Ability to disable all security software on their laptop such as Antivirus and/or firewalls.
• At least twenty (20) GB of hard drive space.
• At least four (4) GB of RAM.

What Students Will Be Provided With

• Power for your laptop
• Latest version of SamuraiSTFU (Security Testing Framework for Utilities)
• PDF version of the course slide deck
• Student hardware kits to use in class that must be returned at the end of class
• List of hardware items in the student kits and links to where students can purchase their own kits


Justin Searle is a Managing Partner of UtiliSec, specializing in Smart Grid security architecture design and penetration testing. Justin led the Smart Grid Security Architecture group in the creation of NIST Interagency Report 7628 and currently plays key roles in the Advanced Security Acceleration Project for the Smart Grid (ASAP-SG), National Electric Sector Cybersecurity Organization Resources (NESCOR), and Smart Grid Interoperability Panel (SGIP). Justin has taught courses in hacking techniques, forensics, networking, and intrusion detection for multiple universities, corporations, and security conferences, and is currently an instructor for the SANS Institute. In addition to electric power industry conferences, Justin frequently presents at top security conferences such as Black Hat, DEFCON, OWASP, and AusCERT. Justin co-leads prominent open source projects including the Samurai Web Testing Framework, Middler, Yokoso!, and Laudanum. Justin has an MBA in International Technology, and is a CISSP and SANS GIAC certified Incident Handler (GCIH), Intrusion Analyst (GCIA), and Web Application Penetration Tester (GWAPT).