Effizientes Fuzzing von IoT-Geräten
Abstract
Fuzzing ist eine bewährte Methode zur Identifizierung von Sicherheitslücken in Software. In dieser Dissertation wird untersucht, wie sich die Effizienz des Fuzzings für IoT-Geräte, am Beispiel des ESP32-Mikrocontrollers, steigern lässt. Während Fuzzing in klassischen Softwareumgebungen etabliert ist, fehlen speziell angepasste Verfahren für ressourcenarme IoT-Hardware. Das Ziel besteht in der Entwicklung eines konzeptionellen Frameworks, das eine umfassende und effiziente Testung trotz begrenzter IoT-Ressourcen ermöglicht. Zu diesem Zweck werden vier Ansätze zur Effizienzsteigerung sowie ein Konzept zur flexiblen Kombination dieser Ansätze vorgestellt. Beim Binary Rewriting wird Binärcode so modifiziert, dass die Funktionalität erhalten bleibt. Für viele gängige Architekturen existieren bereits entsprechende Verfahren. Für die Xtensa-Architektur des ESP32 gab es jedoch bislang keine Lösung. In dieser Dissertation wird gezeigt, wie sich Binary Rewriting auf dem ESP32 umsetzen lässt, um Fuzzing-Instrumentierungen direkt in die Firmware zu integrieren und Laufzeitinformationen an den Fuzzer zurückzumelden. Zudem wurde die Emulationsumgebung des ESP32 erheblich erweitert. Dadurch ist nun Fuzzing von beliebiger Firmware möglich, auch von Firmware mit zuvor nicht unterstützten Hardwarekomponenten. Im Vergleich zur realen Hardware arbeitet die Emulation deutlich effizienter. Während hardwarebasiertes Fuzzing vier bis 40 Anfragen pro Sekunde verarbeitet, sind es in der Emulation bis zu 320 Anfragen pro Sekunde. Zur Generierung valider Eingaben wurde ein Verfahren zum automatisierten Protocol Reverse Engineering (PRE) entwickelt, das Künstliche Neuronale Netze (KNNs) verwendet. Während PRE bislang manuell erfolgen musste, können nun Protokollstrukturen automatisch abgeleitet und damit syntaktisch korrekte Netzwerkpakete erzeugt werden. In den Tests waren 67,6 % der erzeugten HTTP-Pakete und 100 % der FTP-Pakete gültig. Für das grammatikbasierte Fuzzing wird ein Ansatz mittels Large Language Models (LLMs) vorgestellt. Die zentrale Herausforderung bestand in der effizienten Integration des LLM in den Fuzzing-Prozess. Mithilfe der entwickelten Methode lassen sich syntaktisch und semantisch korrekte XML-Dateien generieren. Dies steigert die Programmflussabdeckung um den Faktor sechs gegenüber einer Ausführung ohne LLM und erreicht eine um 50 % höhere Abdeckung als klassische grammatikbasierte Fuzzer. Abschließend wird ein Integrationskonzept präsentiert, das eine flexible Kombination der Ansätze ermöglicht und deren Verbesserungen additiv nutzbar macht. Dadurch trägt das Framework zur Effizienzsteigerung des Fuzzings von IoT-Geräten bei. Die Dissertation leistet somit einen wichtigen Beitrag zur praxisnahen Absicherung von IoT-Geräten.
Fields of Study & Subjects
Software Testing and Debugging Techniques
Software Reliability and Analysis Research
Software Engineering Techniques and Practices
Publication details
- Journal / source
- Repository KITopen (Karlsruhe Institute of Technology)
- Publication date
- 1 January 2026
- Language
- DE
- Document type
- Thesis