
Un fuzzer per target kernel/driver di VM complete
kAFL/Nyx è un fuzzer rapido e guidato per la VM x86. È ideale per qualsiasi cosa venga eseguita come guest QEMU/KVM, in particolare firmware x86, kernel e sistemi operativi completi.
Nota: tutti i componenti sono forniti esclusivamente a scopo di ricerca e validazione. Utilizzali a tuo rischio.
kAFL è il fuzzer principale che guida lo sforzo Linux Security Hardening for Confidential Compute, individuando vulnerabilità in configurazioni complesse e migliorando la sicurezza del kernel Linux per tutte le soluzioni CC.
Tra gli altri target di successo per kAFL/Nyx:
Inoltre, kAFL è stato utilizzato internamente in Intel per la validazione di firmware e driver x86, nonché per il fuzzing degli handler SMM.
kAFL/Nyx usa Intel VT, Intel PML e Intel PT per ottenere esecuzione efficiente, snapshot reset e feedback di copertura per scenari di fuzzing greybox o whitebox. Consente di eseguire molti firmware x86 e kernel di sistemi operativi con qualsiasi toolchain desiderata e modifiche minime al codice.
kAFL usa un kAFL-Fuzzer personalizzato scritto in Python. Il kAFL-Fuzzer segue un design simile ad AFL ed è ottimizzato per lavorare con molte istanze Qemu in parallelo, supportando configurazione flessibile delle VM, opzioni di logging e debug.
kAFL integra il fuzzer Radamsa, oltre alle estensioni Redqueen e Grimoire. Redqueen usa l'introspezione della VM per estrarre input runtime per istruzioni condizionali, superando i controlli tipici dei magic byte e altri controlli sugli input. Grimoire cerca di identificare parole chiave e sintassi dagli input di fuzzing per generare mutazioni su larga scala più intelligenti.
Per i dettagli su Redqueen, Grimoire, IJON, Nyx, visita nyx-fuzz.com.
Intel Skylake o successivo: la configurazione richiede una CPU Intel di sesta generazione o successiva (per Intel PT) e memoria di sistema adeguata (~2GB di RAM per CPU)
Kernel host con patch: un kernel host Linux modificato verrà installato come parte della configurazione. Eseguire kAFL all'interno di una VM può funzionare a partire da CPU IceLake o successive.
Debian/Ubuntu recente: l'installazione e i tutorial sono testati per Ubuntu LTS recente (>=20.04) e Debian (>=bullseye).
Una volta installati python3-venv e make, puoi installare kAFL usando make deploy:
sudo apt install python3-venv make git
git clone https://github.com/IntelLabs/kAFL.git
cd kAFl
make deploy
L'installazione potrebbe richiedere del tempo e richiede un riavvio per aggiornare il kernel.
Controlla la guida all'installazione dettagliata in caso di problemi, oppure la guida al deployment per informazioni dettagliate e per personalizzare la configurazione di kAFL per il tuo progetto.
Come primo esempio di fuzzing, ti consigliamo Fuzzing del kernel Linux.
Sono disponibili altri target, come:
Una documentazione migliorata è in lavorazione per questi target.