Check for upcoming public training Inquire about booking private training
Overview
You’ve learned about JTAG, UART, and SPI in your introductory IOT hacking class, but how does this apply to real world devices you encounter on actual engagements?
This course will put what you’ve already learned into context. We’ll analyze how and why hardware hacks belong in scope of certain pen tests, and what that means to threat modeling and deliverables. We’ll build upon your basic skills and see how more advanced hardware and firmware analysis tells us more about the software vulnerabilities in a system. We’ll prototype some hardware exploits into compelling demos or helpful red-team tools.
This course focuses on approaching hardware as part of a pentest or red team engagement, implementing advanced hardware hacks, and managing the hardware ‘problem’. This two-day course builds directly upon the skills covered in Physical Attacks on Embedded Systems - consider taking the two together for a complete 4 days. If you’ve already taken another class that covers the basics of embedded/IOT/hardware hacking, including UART, JTAG, and SPI, you should have sufficient background.
Targets
This course targets a custom arm-based embedded device representative of a wide range of consumer electronics, medical devices, industrial control hardware, and mobile devices. This course builds directly on the content of Applied Physical Attacks 1: Embedded and IoT Systems.
Length
2 days
Audience:
This course is well suited to pen testers, red teamers, exploit developers, and product developers looking to more smoothly incorporate hardware elements into their daily operations. In addition, security researchers and enthusiasts unwilling to ‘just trust the hardware’ will gain deeper insight into how hardware works and can be undermined.
Format:
20% lecture
70% Lab
10% discussion
Outline:
- Recon and Passive Analysis
- Lecture: Recognizing and communicating hardware impact
- Practical: Analyze, rate, and rank a list of real-world hardware vulnerabilities
- Lecture: Sourcing documentation and tools
- Lab: Identify a new system and configure a toolchain for it
- Lecture: Reading datasheets and inferring system functionality
- Lab: Derive a block diagram of a board and validate assumptions
- Threat Modeling and System Analysis
- Lecture: Threat modeling when hardware is in scope
- Practical: Building example threat models
- Lecture: Identifying chips by packages, pin configurations, and dynamic analysis
- Lab: Identify an unknown chip on an embedded system
- Lecture: Tools for analyzing interconnects
- Lab: Locate, capture and analyze an unknown protocol
- Hardware Vulnerability Analysis and Exploitation
- Lecture: Equipping a hardware hacking lab
- Practical: Estimating time, effort, and expense of hardware attacks
- Lecture: Custom hardware & software for custom interfaces
- Lab: Script a device to bit-bang a unique protocol
- Lecture: Prototyping hardware exploit tools, demos, and deliverables
- Lab: Implement a standalone hardware exploit device
- Firmware Vulnerability Analysis and Exploitation
- Lecture: Embedded static vs dynamic analysis and tools
- Lab: Static analysis of firmware to map functionality to firmware
- Lecture: Dynamic analysis in-circuit vs emulator, tooling for dynamic analysis
- Lab: Taking embedded firmware to an emulator
- Lecture: Bringing it all together and hardware pen-test workflow
- Practical: Final pen-test report