xmin. guest@xmin ~ $
~/ $
[리눅스 커널 취약점 분석] 2025년 11월 1일

Syzkaller 분석

Google의 커널 퍼저 Syzkaller의 구조, 동작 원리, 장단점, 세부 기능 분석

fuzzerkernel fuzzingLinux KernelSyzkaller

요약

Syzkaller는 unsupervised coverage-guided kernel fuzzer 로, 시스템콜 시퀀스를 자동 생성·실행해 커널의

새로운 코드 경로(coverage)를 찾고 크래시(또는 이상 로그)를 자동으로 수집·리포듀스하는 프로젝트

1. 개요

이름 : Syzkaller

개발자 : Google

언어 : Go (golang)

대상 : Linux Kernel (또는 BSD, Windows 일부 포팅 버전 존재)

깃허브 링크 : https://github.com/google/syzkaller

핵심 목표

커널 syscall 인터페이스 자동 탐색

비정상 입력 조합으로 커널 버그 탐지

커버리지 기반으로 테스트 효율 최적화

2. 장단점

Syzkaller의 장점

KCOV를 이용해 실제 실행 경로 정보를 피드백으로 사용해 무작위 입력보다 효율적으로 취약점 가능성이 높은 입력을 찾는다.

syz-manager, syz-fuzzer, syz-executor, syz-repro/syz-verifier 등 구성요소로 크래시 수집에서 재현까지 파이프라인을 자동화한다.

여러 VM 인스턴스에서 병렬 퍼징을 돌려 대량 탐지에 유리

sys descriptions를 바탕으로 의미 있거나 유효한 입력을 만들 수 있어 커널 인터페이스 규칙을 어느 정도 지킨 테스트가 가능하다.

Syzkaller의 단점 및 한계

초기 준비 과정이 커널을 KCOV/KASAN 등으로 빌드하는 등 다소 복잡하고 번거롭다.

커널 동작 때문에 수집되는 커버리지에 노이즈가 발생하고 불필요 경로가 늘어날 수 있다.

효과적인 퍼징을 위해 많은 코어/메모리, 다수의 VM이 필요하며, 장시간 운영 시 성능 저하, corpus 관리 이슈 발생 가능

3. 동작 원리