2022 06 01
2022-06-01¶
libFuzzer¶
- 개요
- AFL Fuzzer와 달리, libFuzzer는 무작위의 API에 대해 Fuzzing을 할 수 있음
clang컴파일러를 딸고 나옴- coverage-guided mutational fuzzer 라고 하네...?
- coverage-guided: 새롭게 발견된 code path를 비교하여 어떤 input이 더 좋은지 판별
- mutational fuzzer: 랜덤으로 존재하는 input을 변경해 새로운 input을 만들어 냄
- Sanitization
- memory allocation 측정 / memory bug 예방
- libFuzzer는 sanitizers를 딸고 나옴
- Setup
- AFL과 달리 libFuzzer는 약간의 setup이 필요함
- 유저가 테스트하고자 하는 인터페이스에 대해 fuzzing stubs을 만들어야 함
- 해당 stub은 fuzzer로 부터 random input을 받고, 테스트될 API에다가 테스트 진행시킴