Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
gustave — GUSTAVE è una piattaforma di fuzzing per kernel di sistemi operativi embedded. Si basa su QEMU e AFL (e tutti i suoi fork-server correlati). Consente di eseguire fuzzing sui kernel di sistema operativo come se fossero semplici applicazioni. | Kitploit
Strumenti/GitHubGitHub/airbus-seclab/gustave
Sicurezza Sistemi EmbeddedFuzzingAnalisi di Binari
GitHubairbus-seclab/gustave

gustave

GUSTAVE è una piattaforma di fuzzing per kernel di sistemi operativi embedded. Si basa su QEMU e AFL (e tutti i suoi fork-server correlati). Consente di eseguire fuzzing sui kernel di sistema operativo come se fossero semplici applicazioni.

Vedi Repository
203215 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

(c) Airbus 2021, sduverger

GUSTAVE - Fuzzer per kernel di sistemi operativi embedded

Cos'è ?

GUSTAVE è una piattaforma di fuzzing per kernel di sistemi operativi embedded. È basata su QEMU e AFL (e tutti i suoi forkserver fratelli). Permette di fare fuzzing dei kernel di sistemi operativi come se fossero semplici applicazioni.

Grazie a QEMU, è multi-piattaforma. Si può vedere GUSTAVE come un'implementazione di forkserver AFL all'interno di QEMU, con ispezione fine del target.

Quali kernel sono supportati ?

GUSTAVE è stato progettato principalmente per colpire kernel di sistemi operativi embedded. Potrebbe non essere il miglior strumento per fare fuzzing di kernel grandi e complessi come quelli di Windows, Linux o macOS.

Tuttavia, se hai un target sotto il cofano che può essere preparato con una o due applicazioni per avviarsi senza alcuna interazione utente, potrebbe essere interessante provare GUSTAVE.

Come funziona ?

Lo strumento afl-fuzz, del progetto AFL, viene utilizzato per fare fuzzing automatico del tuo target. Tuttavia, AFL non può fare fuzzing direttamente di un kernel di sistema operativo e si aspetta che il suo target analizzi direttamente i casi di test generati.

Per farla breve, afl-fuzz eseguirà QEMU con l'integrazione di GUSTAVE come suo target. A sua volta, GUSTAVE gestirà:

  • sincronizzazione forkserver
  • traduzione dei casi di test generati in chiamate di sistema del target
  • monitoraggio del kernel target (copertura di esecuzione e accessi alla memoria)

Come la modalità utente AFL/QEMU del progetto AFL++, GUSTAVE implementa l'instrumentazione binaria a livello QEMU TCG IR per la copertura del codice.

Tuttavia, puoi scegliere di disabilitarla e ricostruire il codice del kernel target con solo parti specifiche soggette all'analisi di copertura del codice. Dovrai però iniettare gli shim AFL in fase di compilazione per aggiornare le bitmap di traccia. Questo è stato il nostro approccio iniziale (vedi Publications).

Meno diffuso nelle soluzioni esistenti, GUSTAVE non si preoccupa di monitorare i kernel panics. Li consideriamo errori gestiti e vogliamo scoprire comportamenti illegali che non hanno attivato alcun allarme.

A tal fine, GUSTAVE si basa su una bitmap di filtraggio della memoria orientata ai byte O(1) per rilevare accessi illegali dal kernel. Potrebbe esserci un ampio dibattito su cosa possa essere considerato illegale dal punto di vista del kernel. Ma in ambienti embedded ristretti e altamente deterministici, potresti sentirti a tuo agio nel definire aree di memoria legittime per il tuo firmware e nel tracciare accessi fuori dai limiti.

Come si confronta con le soluzioni esistenti ?

Esistono approcci comparabili, come:

  • PowerFL
  • Project Triforce
  • afl-unicorn
  • kAFL

Le scelte progettuali di GUSTAVE implicano le seguenti differenze:

  • realmente agnostico rispetto al target (OS, architettura), purché QEMU offra supporto
  • copre tutte le chiamate di sistema implementate nel kernel target
  • non sono necessari sviluppi specifici all'interno del target

Tuttavia, devi comunque dire a GUSTAVE:

  • come il tuo target gestisce le chiamate di sistema
  • qual è il layout di memoria legittimo del tuo target

Stato attuale ?

Hardware host

Per ora è supportato solo l'host x86, poiché molti ambienti di lavoro sono basati su questa architettura, non la consideriamo una limitazione proibitiva.

La restrizione deriva dal modo in cui abbiamo inizialmente implementato il backend di filtraggio della memoria a livello tcg-target per il percorso veloce di load/store di QEMU. La recente architettura di callback di memoria TCGPlugin potrebbe essere un approccio alternativo per supportare qualsiasi host.

Hardware guest

Abbiamo implementato e testato il supporto per Intel x86 e PowerPC. L'implementazione di GUSTAVE è indipendente dall'architettura. Se puoi eseguire il tuo target con QEMU, puoi fare fuzzing con GUSTAVE con poco sforzo.

Forniamo esempi di schede Intel 440FX e PowerPC PREP con integrazione GUSTAVE. L'implementazione della propria scheda è molto semplice e consiste nell'incapsulare la funzione MACHINE_INIT per una data architettura.

Abbiamo anche aggiunto il supporto per gli shim di instrumentazione GUSTAVE per x86 e PowerPC a afl-gcc, nel caso in cui non si voglia procedere con l'instrumentazione binaria TCG.

Target di esempio

Forniamo sviluppi specifici per il micro-kernel POK:

  • firmware con applicazioni semplici
  • generatore ABI di chiamate di sistema per x86/PPC
  • bitmap di filtraggio

Come si usa ?

Avrai bisogno di:

  • costruire AFL
  • costruire QEMU con integrazione GUSTAVE
  • creare o generare la bitmap di filtraggio
  • scrivere un file di configurazione JSON per il tuo target
  • eseguirlo in un terminale

Leggi il manuale per il target POK.

Pubblicazioni

I materiali di vari talk su GUSTAVE si trovano su https://airbus-seclab.github.io/.

Scarica lo strumento