Speaker RomHack 2019

Valerio Di Giampietro


Valerio Di Giampietro e' un IT Infrastructure Manager con una robusta conoscenza tecnica ed esperienza nelle infrastrutture, sia in cloud che on premise, nel networking, web servers, databases Oracle e mySQL, grandi installazioni di server Linux, ambienti di virtualizzazione, SAN e IoT.
E' un entusiasta di Linux sin dal 1993 e appassionato di elettronica e tecnologia sin da quando era un bambino.

Reverse engineering di dispositivi IoT: hacking di un router domestico

[ Video | Slides ]

Introduzione al processo di reverse engineering del firmware dei dispositivi IoT (Internet of Things). Il processo, descritto attraverso l'hacking di un router domestico, è applicabile a tutti i dispositivi IoT con un sistema operativo Open Source come i dispositivi basati su Linux.

Il processo si basa su
1. Raccolta di informazioni relativamente all'hardware e al software, per identificare i circuiti integrati principali, per localizzare le interfacce UART e JTAG e per ottenere il file del firmware o il contenuto della EEPROM e, infine, il root file system
2. Costruzione di un ambiente di emulazione che faciliti il debugging, per farci girare i binari più interessanti del dispositivo, utilizzando QEMU e con un root file system costruito con un apposito software come "Buildroot"
3. Tecniche per analizzare, "hackerare", fare il reverse engineer a modificare il firmware originale utilizzando l'analisi del file system, analizzando l'output sulla console seriale e utilizzando lo Gnu Debugger nell'ambiente di emulazione

L'originalità di questo approccio è nella costruzione di un ambiente di emulazione, con kernel e root file system, simili a quelli del dispositivo IoT, con le stesse versioni, o versioni compatibili, delle librerie, compilate con le informazioni di debugging.
Questo permette il reverse engineering dei binari più interessanti del dispositivo IoT, nell'ambiente di emulazione, utilizzando lo Gnu Debugger (GDB), mettendo dei breakpoints all'entrata delle funzioni di libreria. Questo approccio è assai più semplice che utilizzare software come IDA Pro su binari e librerie originali che sono prive di informazioni di debugging.

Il reverse engineering e la modifica del firmware del router domestico, fatta dall'autore su un modello recente di router D-Link, deve superare vari ostacoli: il file di upgrade del firmware ed il kernel sono firmati digitalmente per prevenire proprio la modifica del firmware ed il caricamento di kernel non firmati da parte del boot-loader.

[ Torna al programma ]

Cyber Saiyan

Cyber Saiyan è l'associazione che cura l'organizzazione di RomHack
Seguici e supportaci facendo una donazione o diventando socio

Privacy policy