
Un fuzzer pour les cibles noyau/pilote de VM complètes.
kAFL/Nyx est un fuzzer guidé rapide pour la VM x86. Il est idéal pour tout ce qui s'exécute en tant qu'invité QEMU/KVM, en particulier les firmwares x86, les noyaux et les systèmes d'exploitation complets.
Remarque : Tous les composants sont fournis uniquement à des fins de recherche et de validation. Utilisation à vos risques et périls
kAFL est le principal fuzzer qui pilote l'effort Linux Security Hardening for Confidential Compute, identifiant des vulnérabilités dans une configuration complexe et améliorant la sécurité du noyau Linux pour toutes les solutions CC.
Parmi les autres cibles ayant rencontré du succès avec kAFL/Nyx :
De plus, kAFL a été utilisé en interne chez Intel pour la validation de firmwares et de pilotes x86, ainsi que pour le fuzzing des gestionnaires SMM.
kAFL/Nyx utilise Intel VT, Intel PML et Intel PT pour obtenir une exécution efficace, une réinitialisation de snapshot et un retour de couverture pour les scénarios de fuzzing greybox ou whitebox. Il permet d'exécuter de nombreux firmwares x86 et noyaux de systèmes d'exploitation avec la chaîne d'outils souhaitée et un minimum de modifications de code.
kAFL utilise un kAFL-Fuzzer personnalisé écrit en Python. Le kAFL-Fuzzer suit une conception de type AFL et est optimisé pour fonctionner avec de nombreuses instances Qemu en parallèle, prenant en charge une configuration VM flexible, la journalisation et des options de débogage.
kAFL intègre le fuzzer Radamsa ainsi que les extensions Redqueen et Grimoire. Redqueen utilise l'introspection de la VM pour extraire les entrées d'exécution des instructions conditionnelles, contournant les vérifications typiques de magic bytes et autres contrôles d'entrée. Grimoire tente d'identifier les mots-clés et la syntaxe des entrées de fuzzing afin de générer des mutations à grande échelle plus intelligentes.
Pour plus de détails sur Redqueen, Grimoire, IJON, Nyx, veuillez visiter nyx-fuzz.com.
Intel Skylake ou plus récent : La configuration nécessite un CPU Intel de 6e génération ou plus récent (pour Intel PT) et une mémoire système adéquate (~2 Go de RAM par CPU)
Noyau hôte patché : Un noyau hôte Linux modifié sera installé dans le cadre de la configuration. L'exécution de kAFL dans une VM peut fonctionner à partir d'un CPU IceLake ou plus récent.
Debian/Ubuntu récent : L'installation et les tutoriels sont testés pour les versions récentes d'Ubuntu LTS (>=20.04) et Debian (>=bullseye).
Une fois que vous avez installé python3-venv et make, vous pouvez installer kAFL en utilisant make deploy :
sudo apt install python3-venv make git
git clone https://github.com/IntelLabs/kAFL.git
cd kAFl
make deploy
L'installation peut prendre un certain temps et nécessite un redémarrage pour mettre à jour votre noyau.
Consultez le guide d'installation détaillé en cas de problème, ou le guide de déploiement pour des informations détaillées et la personnalisation de la configuration kAFL pour votre projet.
Comme premier exemple de fuzzing, nous recommandons Fuzzer le noyau Linux.
D'autres cibles sont disponibles, telles que :
Une documentation améliorée est en cours de préparation pour ces cibles.