The closest you will get to a VM for testing IoT devices. The ARM-X IoT Firmware Emulation Framework is a tried-and-tested framework which has led to four 0-days discovered on SoHo routers, IP cameras and VoIP exchanges. In this talk, I shall cover the evolution of ARM-X, demonstrate a few use cases and discuss future directions of IoT firmware emulation.
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
INSIDE ARM-X Cansecwest 2020
1. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
INSIDE
SAUMIL SHAH
@therealsaumil
18 March 2020
2020
2. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
# WHO AM I
Saumil Shah
CEO, Net Square
@therealsaumil
educating, entertaining
and exasperating
audiences since 1999
3. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
A Word From
Our Sponsors
KEEP
CALM
AND
NAMASTE
!
4. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
Introducing ARM-X
• An ARM Firmware Emulation Framework.
• Ultimate Goal - create an IoT VM!
• A Virtual IoT device makes for easy
– runtime analysis
– reverse engineering
– fuzzing
– exploit development
• Gain insight into embedded hardware by
trying to emulate it.
8. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
CPU and
Hardware
Kernel
Drivers
File System
nvram
User Processes
API
UI
libnvram
…same same but different
9. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
compressed FS
CPU
Kernel
Boot Loader
mounted
FS
nvram
init
scripts
Services
Apps
libnvram
The IoT Boot Up Process
conf
conf
conf
conf
firmware
Loads Kernel.
Uncompresses FS to ramdisk,
invokes init process.
ramdiskuserland
Reads config from nvram.
Builds system config files on
the fly.
Starts up system services.
Invokes Applications and
Application services.
READY
POWER ON
10. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
QEMU
CPU and
Limited
Hardware
Kernel
Drivers
uncompressed
Filesystem
emulated
nvram
init scripts
Services
Apps
libnvram
Emulation: Goals and Challenges
x
x
x
x
BUILDROOT
Match the kernel with the
one on the device
chroot environment
Implemented as an INI file,
preloaded before "boot up"
conf
conf
Fix to match QEMU environment
Not all drivers load successfully
35. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
HERE BE THE GOODS
Downloads: https://armx.exploitlab.net/
!
Announcements: @therealsaumil
IP Camera CTF Challenge - blog.exploitlab.net
36. NETSQUARE (c) SAUMIL SHAHCANSECWEST | 2020
Thank you
and … QUESTIONS?
@therealsaumil