
Un fuzzer para objetivos de kernel/controladores en VM completas
kAFL/Nyx es un fuzzer guiado rápido para la VM x86. Es ideal para cualquier cosa que se ejecute como invitado QEMU/KVM, en particular firmware x86, kernels y sistemas operativos completos.
Nota: Todos los componentes se proporcionan únicamente con fines de investigación y validación. Úselo bajo su propio riesgo
kAFL es el fuzzer principal que impulsa el esfuerzo Linux Security Hardening for Confidential Compute, identificando vulnerabilidades en una configuración compleja y mejorando la seguridad del kernel de Linux para todas las soluciones CC.
Entre otros objetivos exitosos para kAFL/Nyx:
Además, kAFL se ha utilizado internamente en Intel para la validación de firmware x86 y controladores, así como para el fuzzing de manejadores SMM.
kAFL/Nyx utiliza Intel VT, Intel PML e Intel PT para lograr una ejecución eficiente, restablecimiento de instantáneas y retroalimentación de cobertura para escenarios de fuzzing de caja gris o caja blanca. Permite ejecutar muchos firmware x86 y kernels de SO con cualquier cadena de herramientas deseada y modificaciones mínimas de código.
kAFL utiliza un kAFL-Fuzzer personalizado escrito en Python. El kAFL-Fuzzer sigue un diseño similar al de AFL y está optimizado para trabajar con muchas instancias de Qemu en paralelo, admitiendo configuración flexible de VM, opciones de registro y depuración.
kAFL integra el fuzzer Radamsa así como las extensiones Redqueen y Grimoire. Redqueen utiliza la introspección de VM para extraer entradas en tiempo de ejecución para instrucciones condicionales, superando los típicos bytes mágicos y otras comprobaciones de entrada. Grimoire intenta identificar palabras clave y sintaxis de las entradas de fuzzing para generar mutaciones a gran escala más inteligentes.
Para más detalles sobre Redqueen, Grimoire, IJON, Nyx, visite nyx-fuzz.com.
Intel Skylake o posterior: La configuración requiere una CPU Intel de sexta generación o más reciente (para Intel PT) y memoria del sistema adecuada (~2 GB de RAM por CPU)
Kernel anfitrión parcheado: Se instalará un kernel Linux anfitrión modificado como parte de la configuración. Ejecutar kAFL dentro de una VM puede funcionar a partir de IceLake o CPUs posteriores.
Debian/Ubuntu reciente: La instalación y los tutoriales están probados para Ubuntu LTS reciente (>=20.04) y Debian (>=bullseye).
Una vez que tenga instalados python3-venv y make, puede instalar kAFL usando make deploy:
sudo apt install python3-venv make git
git clone https://github.com/IntelLabs/kAFL.git
cd kAFl
make deploy
La instalación puede llevar algún tiempo y requiere un reinicio para actualizar su kernel.
Consulte la guía de instalación detallada en caso de problemas, o la guía de implementación para obtener información detallada y personalizar la configuración de kAFL para su proyecto.
Como primer ejemplo de fuzzing, recomendamos Fuzzing del kernel de Linux.
Otros objetivos disponibles incluyen:
Se está trabajando en una documentación mejorada para estos objetivos.