SA-RIOT

SA-RIOT - Detailed Curriculum
01
πŸ”

QEMU+AFL = Vulnerabilities?

1. Is it so easy to find vulnerabilities? βˆ’

β€’ Downloading and installing AFL++
β€’ Preparing a vulnerable VLC instance
β€’ VLC exploit

2. Full-system fuzzing – introducing TriforceAFL βˆ’

β€’ Understanding full-system fuzzing concepts
β€’ Installing TriforceAFL
β€’ Setting up the fuzzing environment

3. Final Test

4. Further reading

5. Appendix

02
βš™οΈ

QEMU Primer

1. Adding a new CPU

2. Emulating an embedded firmware

3. Reverse engineering DMA peripherals

4. Emulating UART with Avatar2 for firmware debugging

5. Final Test

03
πŸ“±

Baseband Emulation

1. A crash course on mobile phone architecture βˆ’

β€’ Baseband
β€’ Baseband CPU family
β€’ Application processor and baseband interface
β€’ A talk with Shannon
β€’ A note on GSM/3GPP/LTE protocol specifications

2. Setting up FirmWire for vulnerability validation βˆ’

β€’ CVE-2020-25279 – emulator fuzzing
β€’ CVE-2020-25279 – OTA exploitation

3. Final Test

04
πŸ–₯️

Router Emulation x86

1. OpenWrt on x86

2. Building the firmware βˆ’

β€’ Testing the firmware in QEMU
β€’ Extracting and preparing the kernel

3. Fuzzing the kernel

4. Post-crash core dump triaging

05
πŸ’»

Router Emulation ARM32

1. Emulating the ARM architecture to run an OpenWrt system

2. Installing TriforceAFL for ARM

3. Running TriforceAFL in OpenWrt for ARM

4. Obtaining a crash

5. Final Test

β˜…
⭐

Bonus: Evolving to recent harnesses

1. Using a more recent version of AFL++

2. Harnessing techniques

3. libqemu

4. device trees, nand, nor

06
🍎

iOS14/16 Emulation and Fuzzing of iPhone11

1. A brief history of iOS emulation

2. iOS basics βˆ’

β€’ What it takes to boot iOS
β€’ Code signatures
β€’ Plist files and entitlements
β€’ Binaries compilation
β€’ IPSW formats and research kernels

3. Setting up an iOS emulator βˆ’

β€’ Preparing the environment
β€’ Building the emulator
β€’ Boot prepping
β€’ Booting iOS in QEMU

4. Preparing your harness to start fuzzing

5. Triforce's driver mod for iOS

6. Final Test

07
πŸ€–

Android Emulation and Fuzzing

1. Introducing the Android OS and its architecture βˆ’

β€’ Android system architecture overview
β€’ Understanding the Android stack
β€’ Key components for fuzzing

2. Fuzzing Android libraries with Sloth βˆ’

β€’ Setting up Sloth framework
β€’ Targeting Android libraries
β€’ Analysis and vulnerability discovery

3. Final Test

🎯
πŸ†

Certification Exam

🎯 Fuzzing
⚑ Basic Emulation
πŸ” Vulnerability hunting