
전체 VM 커널/드라이버 대상용 퍼저
kAFL/Nyx는 x86 VM을 위한 빠른 가이드 퍼저입니다. QEMU/KVM 게스트로 실행되는 모든 것, 특히 x86 펌웨어, 커널 및 완전한 운영 체제에 적합합니다.
참고: 모든 구성 요소는 연구 및 검증 목적으로만 제공됩니다. 사용에 따른 책임은 본인에게 있습니다.
kAFL은 Linux Security Hardening for Confidential Compute 노력을 이끄는 주요 퍼저로, 복잡한 환경에서 취약점을 식별하고 모든 CC 솔루션을 위한 Linux 커널의 보안을 개선합니다.
kAFL/Nyx의 다른 성공적인 타깃은 다음과 같습니다:
또한 kAFL은 Intel 내부에서 x86 펌웨어 및 드라이버 검증과 SMM 핸들러 퍼징에 사용되었습니다.
kAFL/Nyx는 Intel VT, Intel PML 및 _Intel PT_를 사용하여 그레이박스 또는 화이트박스 퍼징 시나리오에서 효율적인 실행, 스냅샷 리셋 및 커버리지 피드백을 달성합니다. 이를 통해 원하는 툴체인과 최소한의 코드 수정만으로 많은 x86 FW 및 OS 커널을 실행할 수 있습니다.
kAFL은 Python으로 작성된 맞춤형 kAFL-Fuzzer를 사용합니다. kAFL-Fuzzer는 AFL과 유사한 설계를 따르며, 병렬로 많은 Qemu 인스턴스를 처리하는 데 최적화되어 유연한 VM 구성, 로깅 및 디버그 옵션을 지원합니다.
kAFL은 Radamsa 퍼저와 Redqueen 및 Grimoire 확장 기능을 통합합니다. Redqueen은 VM 인트로스펙션을 사용하여 조건부 명령에 대한 런타임 입력을 추출하고, 일반적인 매직 바이트 및 기타 입력 검사를 우회합니다. Grimoire는 퍼즈 입력에서 키워드와 구문을 식별하여 더 영리한 대규모 변이를 생성하려고 시도합니다.
Redqueen, Grimoire, IJON, Nyx에 대한 자세한 내용은 nyx-fuzz.com을 방문하십시오.
Intel Skylake 이상: 설정에는 6세대 이상의 Intel CPU(Intel PT용)와 충분한 시스템 메모리(CPU당 ~2GB RAM)가 필요합니다.
패치된 호스트 커널: 수정된 Linux 호스트 커널이 설정의 일부로 설치됩니다. VM 내부에서 kAFL을 실행하는 것은 IceLake 이상 CPU에서 작동할 수 있습니다.
최신 Debian/Ubuntu: 설치 및 튜토리얼은 최신 Ubuntu LTS(>=20.04) 및 Debian(>=bullseye)에서 테스트되었습니다.
python3-venv와 make가 설치되어 있으면 make deploy를 사용하여 kAFL을 설치할 수 있습니다:
sudo apt install python3-venv make git
git clone https://github.com/IntelLabs/kAFL.git
cd kAFl
make deploy
설치에는 시간이 걸릴 수 있으며 커널을 업데이트하려면 재부팅이 필요할 수 있습니다.
문제가 발생할 경우 자세한 설치 가이드를 확인하거나, 자세한 정보와 프로젝트에 맞는 kAFL 설정 커스터마이징을 위해 배포 가이드를 확인하십시오.
첫 번째 퍼징 예제로 Linux 커널 퍼징을 권장합니다.
다음과 같은 다른 타깃도 사용할 수 있습니다:
이러한 타깃에 대한 개선된 문서가 작업 중입니다.