Fuzzing von Embedded Systems

Fuzzing ist eine dynamische Software Test Methode, die ihren Ursprung in den 80er Jahren hat.
Dabei wird durch zufällige Eingaben das zu testende Programm auf Robustheit geprüft. In der Vergangenheit nur selten verwendet, hat Fuzzing heute deutlich mehr Bedeutung für das Software -Testing. Mit modernen Methoden wie „Coverage-based Fuzzing“ ist es heute möglich, schnell und effizient Sicherheitsprobleme in der Software zu finden. Leider ist der Aufwand um diese Technologie zu nutzen, vergleichsweise hoch; speziell bei Embedded Systems durch X-Compiler Umgebungen.

Um Fuzzing dennoch auf Embedded Systems zu ermöglichen, wurde ein Framework geschaffen, welches mit Hilfe von QEMU und einer angepassten Version von libFuzzer Fuzzing umsetzt.
Das erlaubt Modul- und Systemtests, die auf Architekturen wie ARM32, ARM64 oder MIPS basieren, aber auf einer herkömmlichen X86 Architektur ausgeführt werden.

Auf Basis der Grundlagen für effizientes Fuzzing auf Embedded Systems, können nun auch Schnittstellen für strukturierte Daten, wie JSON oder XML intelligent getestet werden. Dazu wurde ein System entwickelt welches nur ausgewählte Elemente für Fuzzing mutiert, aber die Dokumentstruktur beibehält.

Was lernen die Zuhörer in dem Vortrag?

Wir stellen eine Möglichkeit vor, Fuzzing auch für den Einsatz in eingebetteten Systemen benutzbar zu machen. Dazu wird gezeigt, wie die Umgebung erstellt wird sowie sogenannte Fuzz-Targets geschrieben werden. Außerdem wird gezeigt, wie und mit welchen Optionen Fuzzer unter QEMU optimal arbeiten.

Um das Fuzzing von Schnittstellen strukturierter Datenformate (JSON, YAML, XML etc) noch effizienter zu gestalten haben wir eine Lösung entwickelt, die durch intelligente genetische Mutationsalgorithmen ausschließlich syntaktisch korrekte Daten erzeugt. Hierdurch wird die erreichte Codeabdeckung erhöht und der Ressourcenbedarf des Fuzzers reduziert.

Sirko Höer
Sirko Höer

Sirko Höer ist verantwortlich für Vulnerability Research in Embedded Systems bei der Code Intelligence GmbH und entwickelt in dieser...


Christian Hartlage
Christian Hartlage

Christian Hartlage entwickelt bei der Code Intelligence GmbH neue Methoden um Coverage-based Fuzzing noch effizienter zu gestalten. Nach seinem...

45 Minuten Vortrag

Fortgeschritten

Zeit

11:15-12:00
02. Juli


Raum

Raum "Wien/Athen"


Themengebiet

Safety & Security


ID

Di4.3

Zurück

Copyright © 2019 HLMC Events GmbH