AFL & ASAN 동작 원리 및 fork
AFL 퍼저는 이전에 설명했듯 Instrumentation-guided genetic 알고리즘을 사용하여 테스트 케이스를 생성하고, 변이하는 방식으로 동작함. Brute Force로 입력을 받으면서 커버리지를 넓히고, 프로그램 제어 흐름에 대한 변경사항을 기록하며, 고유 크래시를 발견한다. AFL 특징- 커버리지 기반 퍼저이기 때문에 매우 효율적인 퍼징이 가능함 - 코드 커버리지 측정을 위한 코드를 컴파일 타임에 삽입 - QEMU를 이용하여 컴파일 타임이 아닌, 런타임시에 코드(어떤 부분이 실행됐고, 어떤 부분에서 실행이 안됐는지를 측정) 삽입도 가능함 -> 코드 삽입을 어디에, 언제 할 것인가가 중요. AFL 동작 과정1. 프로그램 실행 시작 - AFL이 퍼징할 프로그램을 실행함. 2. fork se..