콘텐츠로 이동

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에다가 테스트 진행시킴