
Um fuzzer para alvos de kernel/driver de VM completa
kAFL/Nyx é um fuzzer guiado rápido para a VM x86. É ótimo para qualquer coisa que execute como convidado QEMU/KVM, em particular firmware x86, kernels e sistemas operacionais completos.
Nota: Todos os componentes são fornecidos apenas para fins de pesquisa e validação. Use por sua conta e risco
kAFL é o principal fuzzer que impulsiona o esforço Linux Security Hardening for Confidential Compute, identificando vulnerabilidades em uma configuração complexa e melhorando a segurança do kernel Linux para todas as soluções CC.
Entre outros alvos bem-sucedidos para kAFL/Nyx:
Além disso, o kAFL tem sido usado internamente na Intel para validação de firmware e drivers x86, bem como para fuzzing de handlers SMM.
kAFL/Nyx usa Intel VT, Intel PML e Intel PT para obter execução eficiente, redefinição de snapshot e feedback de cobertura para cenários de fuzzing greybox ou whitebox. Ele permite executar muitos firmwares x86 e kernels de SO com qualquer toolchain desejada e modificações mínimas de código.
kAFL usa um kAFL-Fuzzer personalizado escrito em Python. O kAFL-Fuzzer segue um design semelhante ao AFL e é otimizado para trabalhar com muitas instâncias Qemu em paralelo, suportando configuração flexível de VM, opções de log e depuração.
kAFL integra o fuzzer Radamsa, bem como as extensões Redqueen e Grimoire. O Redqueen usa introspecção de VM para extrair entradas em tempo de execução para instruções condicionais, superando verificações típicas de magic bytes e outras checagens de entrada. O Grimoire tenta identificar palavras-chave e sintaxe a partir das entradas de fuzzing para gerar mutações em larga escala mais inteligentes.
Para detalhes sobre Redqueen, Grimoire, IJON, Nyx, visite nyx-fuzz.com.
Intel Skylake ou posterior: A configuração requer uma CPU Intel de 6ª geração ou mais recente (para Intel PT) e memória de sistema adequada (~2GB de RAM por CPU)
Kernel do host com patch: Um kernel Linux do host modificado será instalado como parte da configuração. Executar kAFL dentro de uma VM pode funcionar a partir de IceLake ou CPU mais recente.
Debian/Ubuntu recente: A instalação e os tutoriais são testados para Ubuntu LTS recente (>=20.04) e Debian (>=bullseye).
Depois de ter python3-venv e make instalados, você pode instalar o kAFL usando make deploy:
sudo apt install python3-venv make git
git clone https://github.com/IntelLabs/kAFL.git
cd kAFl
make deploy
A instalação pode levar algum tempo e exigir uma reinicialização para atualizar seu kernel.
Consulte o guia de instalação detalhado em caso de problemas, ou o guia de implantação para informações detalhadas e personalização da configuração do kAFL para o seu projeto.
Como primeiro exemplo de fuzzing, recomendamos Fuzzing do Kernel Linux.
Outros alvos estão disponíveis, como:
Uma documentação aprimorada está em andamento para esses alvos.