Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gustave — GUSTAVE est une plateforme de fuzzing pour les noyaux de systèmes d'exploitation embarqués. Elle est basée sur QEMU et AFL (ainsi que tous ses forkserver frères). Elle permet de fuzzer les noyaux OS comme de simples applications. | Kitploit
Outils/GitHubGitHub/airbus-seclab/gustave
Sécurité des Systèmes EmbarquésFuzzingAnalyse de Binaires
GitHubairbus-seclab/gustave

gustave

GUSTAVE est une plateforme de fuzzing pour les noyaux de systèmes d'exploitation embarqués. Elle est basée sur QEMU et AFL (ainsi que tous ses forkserver frères). Elle permet de fuzzer les noyaux OS comme de simples applications.

Voir le dépôt
20321il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

(c) Airbus 2021, sduverger

GUSTAVE - Fuzzer de noyau OS embarqué

Qu'est-ce que c'est ?

GUSTAVE est une plateforme de fuzzing pour les noyaux de systèmes d'exploitation embarqués. Il est basé sur QEMU et AFL (et tous ses frères forkserver). Il permet de fuzzer les noyaux OS comme de simples applications.

Grâce à QEMU, il est multi-plateforme. On peut voir GUSTAVE comme une implémentation AFL forkserver à l'intérieur de QEMU, avec une inspection fine de la cible.

Quels sont les noyaux supportés ?

GUSTAVE a principalement été conçu pour cibler les noyaux de systèmes embarqués. Il pourrait ne pas être le meilleur outil pour fuzzer des noyaux volumineux et complexes comme ceux trouvés dans Windows, Linux ou MACOS.

Cependant, si vous avez une cible sous le capot qui peut être préparée avec une ou deux applications à démarrer sans aucune interaction utilisateur, il pourrait être intéressant d'essayer GUSTAVE.

Comment ça marche ?

L'outil afl-fuzz, du projet AFL, est utilisé pour fuzzer automatiquement votre cible. Cependant, AFL ne peut pas fuzzer directement un noyau OS et s'attend à ce que sa cible analyse directement les cas de test générés.

Pour faire court, afl-fuzz exécutera QEMU avec l'intégration GUSTAVE comme cible. En retour, GUSTAVE gérera :

  • la synchronisation du forkserver
  • la traduction des cas de test générés en appels système de la cible
  • la surveillance du noyau cible (couverture d'exécution et accès mémoire)

Comme dans le mode AFL/QEMU-user trouvé dans le projet AFL++, GUSTAVE implémente une instrumentation binaire au niveau TCG IR de QEMU pour la couverture de code.

Cependant, vous pouvez choisir de la désactiver et reconstruire le code de votre noyau cible en ne soumettant que des parties spécifiques à l'analyse de couverture de code. Vous devrez toutefois injecter des shims AFL au moment de la compilation pour mettre à jour les bitmaps de trace. C'était notre approche initiale (voir Publications).

Moins répandu dans les solutions existantes, GUSTAVE ne se préoccupe pas de surveiller les kernel panics. Nous les considérons comme des erreurs gérées, et nous voulons découvrir des comportements illégaux qui n'ont déclenché aucune alarme.

À cette fin, GUSTAVE s'appuie sur un bitmap de filtrage mémoire orienté octet en O(1) pour détecter les accès illégaux depuis le noyau. Il pourrait y avoir un large débat sur la définition de ce qui pourrait être considéré comme illégal du point de vue du noyau. Mais dans des environnements embarqués restreints et hautement déterministes, vous pourriez vous sentir à l'aise de définir des zones mémoire légitimes pour votre firmware et de suivre les accès hors limites.

Comment se compare-t-il aux solutions existantes ?

Il existe des approches comparables, telles que :

  • PowerFL
  • Project Triforce
  • afl-unicorn
  • kAFL

Les choix de conception de GUSTAVE impliquent les différences suivantes :

  • vraiment agnostique de la cible (OS, architecture), tant que QEMU offre le support
  • couvre tous les appels système implémentés dans le noyau cible
  • aucun développeur spécifique n'est nécessaire à l'intérieur de la cible

Cependant, vous devez toujours dire à GUSTAVE :

  • comment votre cible gère les appels système
  • quelle est la disposition mémoire légitime de votre cible

Statut actuel ?

Matériel hôte

Pour l'instant, seul l'hôte x86 est supporté, car de nombreux environnements de travail sont basés sur cette architecture, nous ne considérons pas cela comme une limitation prohibitive.

La restriction provient de la façon dont nous avons initialement implémenté le backend de filtrage mémoire au niveau tcg-target pour le chemin rapide de chargement/stockage de QEMU. La récente architecture de rappels mémoire TCGPlugin pourrait être une approche alternative pour supporter n'importe quel hôte.

Matériel invité

Nous avons implémenté et testé le support Intel x86 et PowerPC. L'implémentation de GUSTAVE est indépendante de l'architecture. Si vous pouvez exécuter votre cible avec QEMU, vous pouvez la fuzzer avec GUSTAVE avec peu d'effort.

Nous fournissons des exemples de cartes Intel 440FX et PowerPC PREP avec intégration GUSTAVE. L'implémentation de votre propre carte est très simple, et consiste à envelopper la fonction MACHINE_INIT pour une architecture donnée.

Nous avons également ajouté le support des shims d'instrumentation GUSTAVE pour x86 et PowerPC à afl-gcc, au cas où vous ne voudriez pas procéder avec l'instrumentation binaire TCG.

Exemple de cible

Nous fournissons des développements spécifiques au micro-noyau POK :

  • firmware avec applications simples
  • générateur d'ABI d'appels système pour x86/PPC
  • bitmap de filtrage

Comment l'utiliser ?

Vous aurez besoin de :

  • compiler AFL
  • compiler QEMU avec l'intégration GUSTAVE
  • créer ou générer le bitmap de filtrage
  • écrire un fichier de configuration JSON pour votre cible
  • l'exécuter dans un terminal

Lisez le manuel pour la cible POK.

Publications

Le matériel provenant de différentes présentations sur GUSTAVE peut être trouvé sur https://airbus-seclab.github.io/.

Télécharger l’outil