No Starch Press: The Hardware Hacking Handbook (ETA: July 2020)

The Hardware Hacking Handbook
by Colin O’Flynn and Jasper van Woudenberg
July 2020 (Estimated), 300 pp.

The Hardware Hacking Handbook is a deep dive into hardware attacks on embedded systems, perfect for anyone interested in designing, analyzing, and attacking devices. You’ll start with a crash course in embedded systems and threats to them, as well as hardware interfaces and how to set up a test lab, all while learning invaluable theoretical background. Real-life examples and hands-on labs throughout allow you to explore hardware interfaces and complete various side channel or fault attacks on real devices. You’ll learn fault injection attacks and methods like voltage glitching, clock glitching, and optical and electromagnetic fault injection, side channel power analysis, and differential fault analysis.

https://nostarch.com/hardwarehacking

OpenBMC: BMC network security audit tool

The OpenBMC project has a new security tool!

Purpose: Provide shell scripts to expose security aspects of an operational OpenBMC system from the point of view of an agent on the BMC’s management network trying to get access. The intended use is to provide information needed to audit the BMC’s interfaces, not to perform a security test. For example, the script detects if the BMC rejects TLS 1.1 and accepts TLS 1.2. The primary value the scripts provide is a starting point for what to look at, how to get the information, and where to learn more.

See the last 2 lines of current script, they are looking for some help.

Script: https://lists.ozlabs.org/pipermail/openbmc/2020-April/021186.html

More info: https://github.com/openbmc/openbmc

os-indications: tool for setting the OsIndications UEFI variable

This small utility when run will set the OsIndications UEFI variable for booting into firmware setup.

RTFM (it has a manpage!):
https://gitlab.com/JohnoKing/os-indications/-/blob/master/os-indications.8

https://gitlab.com/JohnoKing/os-indications

see-also:
https://blog.fpmurphy.com/2016/04/uefi-os-indication-variables.html

Intel blogged on OsIndications, but they changed their site and the post is apparently is no longer available:
https://software.intel.com/en-us/firmware/library/using-os-indications-uefi

NatEFI – my personal C++ UEFI application development library

Another UEFI dev environment.

This is my header library for C++17 trying to be UEFI 2.8 compliant. Can’t guarantee anything. You’re probably better off using any other header set. Also you need LLVM to build the example/test. This thing is just straight copying information from the UEFI specification, so you’re free to do anything you want to do with the header file. Just don’t take credit for creating it or something.

https://github.com/Mcpg/natefi

OWASP IoTGoat: deliberately insecure firmware created to educate software developers and security professionals with testing commonly found vulnerabilities in IoT devices

Re: https://firmwaresecurity.com/2016/12/30/owasp-iot-firmware-guidance/ and
https://firmwaresecurity.com/2019/11/06/owasp-firmware-security-testing-methodology/

IoTGoat has been released:

https://github.com/OWASP/IoTGoat

Hardware Debugging for Reverse Engineers Part 2: JTAG, SSDs and Firmware Extraction

https://wrongbaud.github.io/jtag-hdd/

see-also:

https://wrongbaud.github.io/stm-xbox-jtag/

Android Booting Shenanigans

If you are interested in the Android boot process, this is helpful:

https://topjohnwu.github.io/Magisk/boot.html