Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
gustave — GUSTAVE ist eine Fuzzing-Plattform für eingebettete OS-Kernel. Sie basiert auf QEMU und AFL (und allen seinen Forkserver-Geschwistern). Sie ermöglicht es, OS-Kernel wie einfache Anwendungen zu fuzzen. | Kitploit
Tools/GitHubGitHub/airbus-seclab/gustave
Embedded-System-SicherheitFuzzingBinäranalyse
GitHubairbus-seclab/gustave

gustave

GUSTAVE ist eine Fuzzing-Plattform für eingebettete OS-Kernel. Sie basiert auf QEMU und AFL (und allen seinen Forkserver-Geschwistern). Sie ermöglicht es, OS-Kernel wie einfache Anwendungen zu fuzzen.

Repository anzeigen
20321vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

(c) Airbus 2021, sduverger

GUSTAVE - Eingebetteter OS-Kernel-Fuzzer

Was ist das?

GUSTAVE ist eine Fuzzing-Plattform für eingebettete OS-Kernel. Sie basiert auf QEMU und AFL (und all seinen Forkserver-Geschwistern). Sie ermöglicht es, OS-Kernel wie einfache Anwendungen zu fuzzieren.

Dank QEMU ist es plattformübergreifend. Man kann GUSTAVE als eine AFL-Forkserver-Implementierung innerhalb von QEMU mit feinkörniger Zielinspektion betrachten.

Welche Kernel werden unterstützt?

GUSTAVE wurde hauptsächlich entwickelt, um eingebettete OS-Kernel zu testen. Es ist möglicherweise nicht das beste Werkzeug, um große und komplexe Kernel wie die von Windows, Linux oder macOS zu fuzzieren.

Wenn Sie jedoch ein Ziel unter der Haube haben, das mit einer oder zwei Anwendungen vorbereitet werden kann, die ohne Benutzereingriff booten, könnte es interessant sein, GUSTAVE eine Chance zu geben.

Wie funktioniert es?

Das Tool afl-fuzz aus dem AFL-Projekt wird verwendet, um Ihr Ziel automatisch zu fuzzieren. Allerdings kann AFL nicht direkt einen OS-Kernel fuzzieren und erwartet, dass sein Ziel die generierten Testfälle direkt parst.

Kurz gesagt: afl-fuzz führt QEMU mit GUSTAVE-Integration als sein Ziel aus. Im Gegenzug übernimmt GUSTAVE:

  • Forkserver-Synchronisation
  • Übersetzung generierter Testfälle in Ziel-Systemaufrufe
  • Überwachung des Ziel-Kernels (Ausführungsabdeckung und Speicherzugriffe)

Wie der AFL/QEMU-Benutzermodus im AFL++-Projekt implementiert GUSTAVE die binäre Instrumentierung auf QEMU TCG IR-Ebene für die Codeabdeckung.

Sie können jedoch wählen, dies zu deaktivieren und Ihren Ziel-Kernel-Code so neu zu erstellen, dass nur bestimmte Teile der Codeabdeckungsanalyse unterzogen werden. Sie müssen dann allerdings zur Build-Zeit AFL-Shims injizieren, um die Trace-Bitmaps zu aktualisieren. Das war unser ursprünglicher Ansatz (siehe Veröffentlichungen).

Weniger verbreitet in bestehenden Lösungen: GUSTAVE kümmert sich nicht um die Überwachung von Kernel-Panics. Wir betrachten sie als verwaltete Fehler und möchten illegale Verhaltensweisen entdecken, die keinen Alarm ausgelöst haben.

Zu diesem Zweck verlässt sich GUSTAVE auf eine O(1)-Byte-orientierte Speicherfilter-Bitmap, um illegale Zugriffe des Kernels zu erkennen. Es mag große Debatten darüber geben, was aus Sicht des Kernels als illegal angesehen werden könnte. Aber in eingeschränkten, hochdeterministischen Embedded-Umgebungen könnten Sie sich wohl dabei fühlen, legitime Speicherbereiche für Ihre Firmware zu definieren und Out-of-Bound-Zugriffe zu verfolgen.

Wie schneidet es im Vergleich zu bestehenden Lösungen ab?

Es gibt vergleichbare Ansätze, wie:

  • PowerFL
  • Project Triforce
  • afl-unicorn
  • kAFL

Die Designentscheidungen von GUSTAVE führen zu den folgenden Unterschieden:

  • wirklich zielagnostisch (OS, Architektur), solange QEMU Unterstützung bietet
  • deckt alle Systemaufrufe ab, die im Ziel-Kernel implementiert sind
  • es sind keine spezifischen Entwickler im Ziel erforderlich

Allerdings müssen Sie GUSTAVE trotzdem mitteilen:

  • wie Ihr Ziel Systemaufrufe behandelt
  • was das legitime Speicherlayout Ihres Ziels ist

Aktueller Status?

Host-Hardware

Derzeit wird nur der x86-Host unterstützt. Da viele Arbeitsumgebungen auf dieser Architektur basieren, betrachten wir dies nicht als einschränkende Limitierung.

Die Einschränkung ergibt sich aus der Art und Weise, wie wir ursprünglich das Speicherfilter-Backend auf tcg-target-Ebene für den QEMU-Load/Store-Fast-Path implementiert haben. Die neuere TCGPlugin-Memory-Callbacks-Architektur könnte ein alternativer Ansatz sein, um jeden Host zu unterstützen.

Gast-Hardware

Wir haben die Unterstützung für Intel x86 und PowerPC implementiert und getestet. Die GUSTAVE-Implementierung ist architekturunabhängig. Wenn Sie Ihr Ziel mit QEMU ausführen können, können Sie es mit geringem Aufwand mit GUSTAVE fuzzieren.

Wir bieten beispielhafte Intel 440FX- und PowerPC PREP-Boards mit GUSTAVE-Integration an. Die Implementierung Ihres eigenen Boards ist wirklich einfach und besteht darin, die MACHINE_INIT-Funktion für eine bestimmte Architektur zu wrappen.

Wir haben auch Unterstützung für x86- und PowerPC-GUSTAVE-Instrumentierungs-Shims zu afl-gcc hinzugefügt, falls Sie nicht mit TCG-Binärinstrumentierung vorgehen möchten.

Beispielziel

Wir bieten spezifische Entwicklungen für den POK-Mikrokernel an:

  • Firmware mit einfachen Anwendungen
  • ABI-Generator für Systemaufrufe für sowohl x86/PPC
  • Filter-Bitmap

Wie verwende ich es?

Sie müssen:

  • AFL bauen
  • QEMU mit GUSTAVE-Integration bauen
  • die Filter-Bitmap erstellen oder generieren
  • eine JSON-Konfigurationsdatei für Ihr Ziel schreiben
  • es in einem Terminal ausführen

Lesen Sie das Handbuch für das POK-Ziel.

Veröffentlichungen

Material von verschiedenen Vorträgen über GUSTAVE finden Sie unter https://airbus-seclab.github.io/.

Tool herunterladen