상세 컨텐츠

본문 제목

[Fuzzing] AFL 설치

ANALYSIS/Fuzzing

by koharin 2022. 6. 28. 12:14

본문

728x90
반응형

AFL 설치

$ git clone <https://github.com/google/AFL>
$ cd AFL
$ AFL_USE_ASAN=1 # ASAN 사용 위해 make clean all 전 진행
$ make # compile AFL
$ sudo make install

 

 

ASAN 사용

  • llvm mode에서 컴파일 시 clang-fast 사용할 수 있고, afl-clang-fast++,afl-clang-fast로 컴파일 시 컴파일 단계에서 코드를 삽입(ASAN)

 

target recompile 방법

afl-gcc 또는 afl-g++ 이용하여 target을 compile 한다.

llvm mode로 afl-clang-fast 사용 가능하고, 이외에도 compile 방법은 여러가지가 있음

ASAN 사용 시 많은 정보가 나오는 대신 퍼징 시 성능 저하는 있기 때문에 llvm mode로 빌드하여 성능 저하를 막을 수 있다.

1) source code가 있는 경우

$ CC=/path/to/afl/afl-gcc ./configure
$ make clean all

C program compile

$ CXX=/path/to/afl/afl-g++ ./configure
$ make clean all

C++ program compile

 

2) source code가 없는 경우 (binary-only app)

$ cd qemu_mode
$ ./build_qemu_support.sh

 

 

Fuzzing target

afl-fuzz -i **[**PATH TO TESTCASE_INPUT_DIR] -o **[**PATH TO OUTPUT_DIR] -- **[**PATH TO TARGET BINARY] **[**BINARY_PARAMS] @@

 

 

output

  • queue/
    • 각 실행 경로에 대한 test case와 starting file(user가 준)가 저장됨
  • crashes/
    • 프로그램에 fatal signal(SIGSEGV, SIGILL, SIGABRT 등) 발생시킨 unique test case
    • entry는 signal 별로 그룹화됨
  • hangs/
    • time out 발생시킨 unique test case
    • hang으로 간주되는 default time limit은 1 second 이상
728x90
반응형

'ANALYSIS > Fuzzing' 카테고리의 다른 글

[Fuzzing] WinAFL fuzzing HncAppShield  (0) 2022.07.08
[Fuzzing] WinAFL 환경구축 및 사용법  (0) 2022.07.08
[Fuzzing] AFL fuzzing dact  (0) 2022.06.28
[Fuzzing] AFL++ 설치  (0) 2022.06.28
[Fuzzing 101] Exercise 1 - Xpdf  (0) 2022.06.27

관련글 더보기