Aufspüren von Open Source Bibliotheken in ESP32 Firmware Images
Art der Arbeit
- Bachelorarbeit
- Masterarbeit
Hintergrund
Der ESP32 [1] ist ein günstiger Mikrocontroller mit WLAN- und Bluetooth-Anbindung. Dadurch wird er für Geräte des Internets der Dinge (IoT) häufig eingesetzt, beispielsweise in Leuchtmitteln, Steckdosen oder Türschlössern. Durch sein kostenloses SDK [2] ist er auch in der Open-Source Community beliebt, sodass es zahlreiche funktionserweiternde Bibliotheken für ihn gibt.
Es kann hilfreich sein, zu wissen welche Open-Source Bibliotheken in einer Firmware eingesetzt werden, etwa um:
- Auf das Vorhandensein bekannter Sicherheitslücken in einer Bibliothek zu prüfen
- Zum Reverse-Engineering der Firmware
- Aus rechtlichen Gründen, falls der Verdacht besteht dass die Bedingungen einer Lizenz nicht umgesetzt wurden.
Üblicherweise werden Firmwares für Mikrocontroller aber in C oder C++ entwickelt und in ausführbaren Binärcode kompiliert. Das macht es schwierig zu erkennen, ob eine Bibliothek eingebunden wurde oder nicht. Im Rahmen dieser Arbeit sollen daher Methoden entwickelt werden wie bekannter Programmcode zuverlässig in ESP32-Binärcode aufgespürt werden kann.
Fragestellungen
Während der Bearbeitung des Themas können beispielsweise die folgenden Fragestellungen bearbeitet werden:
- Wie ist ein ESP32 Firmware-Image aufgebaut?
- Welche Ansätze zum Dekompilieren von ESP32-Binärcode gibt es und wo sind die Grenzen?
- Lassen sich Ansätze des Machine Learning auf ausführbaren Binärcode übertragen?
Literatur
- https://www.espressif.com/en/products/socs/esp32
- https://www.espressif.com/en/products/software/esp-sdk/overview
Anforderungen
- Programmierkenntnisse
- Grundlegendes Wissen der Funktion von Mikrocontrollern
- Grundlegendes Wissen über die Funktionsweise von Compilern und Linkern
Weitere Informationen
Bei Interesse kontaktieren Sie bitte Johann Bauer.