applied security conferences and training: CanSecWest | PacSec | EUSecWest |

Security Masters Dojo

Advanced and intermediate security training and technology enhancement for information security professionals.

CanSecWest: Security Masters Dojo Vancouver

UEFI & CHIPSEC Development for Security Researchers

Register for March 18-19, 2019 (2-day Course)

Erik Bjorge, Brent Holtsclaw, and Maggie Jauregui


Unified Extensible Firmware Interface (UEFI) plays a critical role in ensuring platform security. However, there seems to be a steep learning curve for developers and researchers to implement firmware functionality. This course intends to be a resource for firmware enthusiasts to ease into developing interesting platform functionality as well as to provide them with the tools necessary to test the state of a platform and the firmware running on it.

The class is a two day hands-on course focused on coding, compiling, and testing platform firmware. The course material and labs are based around two projects: the open source implementation of UEFI (TianoCore) and CHIPSEC, a widely deployed open source platform security framework. The UEFI development section covers everything from the basics of the UEFI build environment, basic Hello World examples, and UEFI shell apps all the way to UEFI driver development and System Management Mode (SMM) functionality. Students don't necessarily need to be firmware experts, but could benefit from the material even if they have firmware research experience.

The CHIPSEC development section will focus on the creation of verification modules that check for the proper hardware configuration of a platform, the blacklisting of known vulnerable code, and stress testing of different firmware features. The material also includes an AFL fuzzing section in which students will get hands-on stress testing experience on specific UEFI functionality in search for vulnerabilities that will be debugged in a subsequent lab via CHIPSEC.

The class is ideal for firmware security researchers looking for a deeper dive into platform configuration and stress testing.

Key Learning Outcomes:

The primary purpose of the course is to lower the bar of entry for UEFI development and research. The class intends to be a hands on quick start guide to develop interesting firmware functionality though two main open source projects: TianoCore and CHIPSEC. The goal is to enable the industry to better understand and test their platform configuration, boot flow, and available runtime UEFI services that play into platform security.

PREREQUISITE WARNING Each class has prerequisites for software loads and a laptop is mandatory. These individual class guides will list material the students are expected have knowledge about coming in and software tools that need to be pre-installed before attending so you get the maximum benefit from the focused intermediate or advanced level course. Please pay particular attention to the prerequisites, as the material listed there will not be reviewed in the courses, and will be necessary to get the maximum benefit out of these educational programs.

Course Outline

Day 1: UEFI Development

Day 2 CHIPSEC Development

Who Should Take This Course:

Firmware developers, validation engineers, penetration testers, security researchers.


Hardware and Software Requirements:

Students are responsible for providing their own systems with the ability to run a VM that will be provided during the event. VirtualBox is preferred. The system should have at least 10 GB of available space. Minnowboard hardware will be provided by the instructors for the tests on real hardware. The class will also require serial terminal software such as Putty or TeraTerm to get Minnowboard display output on the student laptop systems. Cables and other peripherals will be provided.