The training teaches the structure of typical cellular baseband firmware using the example of Samsung’s Shannon baseband. We cover how basebands communicate internally, how to reverse engineer them, and how to find security vulnerabilities through emulation and fuzzing.
The training uses firmware binaries from real phones. While most of the training is centered around static and dynamic off-device testing, such as reverse engineering and emulation, participants also get the chance to interact with real phones and obtain insights about over-the-air testing.
Participants will gain hands-on experience on baseband firmware in modern smartphones. They will learn the general structure of a baseband RTOS, by the example of the Shannon baseband. Together, we will dump the firmware from the device, take a deep dive into the binary, find common patterns and reverse engineer protocol parsers. Equipped with the gained knowledge about the firmware, students will learn how to rehost selected parsers. Using rust basics learnt in this training, students will iteratively extend provided skeleton code for an emulator to understand common rehosting tasks. Students will then learn how to use the emulator they built as a harness for AFL++ and rediscover CVE-2020-25279, a critical vulnerability in the 2G Call Control implementation. Finally, we will discuss how to set up a fake base station using commercially available Software Defined Radios and Faraday cages for over-the-air replication of discovered crash cases.
The training is divided into three parts:
Marius is a postdoctoral researcher at Vrije Universiteit Amsterdam. His research interests cover (in-)security of embedded systems, binary & microarchitectural exploitation, and defenses. He obtained his PhD from Sorbonne University in cooperation with EURECOM. He developed and maintains avatar2, a framework for analyzing embedded systems firmware. Among others, he used the framework within the FirmWire project for emulating Samsung’s Shannon and MediaTek’s MTK baseband firmware, yielding to the discovery of several critical vulnerabilities.
Fabian has been working freelance in the IT Security Industry for several years, performing security assessments, code audits, and doing vulnerability research. With a background in physics and long-time experience playing CTF, Fabian focuses on low-level static reverse engineering and binary exploitation. He likes scripting reverse engineering tasks and developing plugins for reverse engineering tools. Fabian has presented some of his reverse engineering work at Hardwear.io, Recon, and Black Hat.