유용한 커맨드 라인 옵션을 선택하여 커버리지와 오류 탐지 능력을 높이는 퍼징 기법

PAW: Useful option selection fuzzing technique to Improve Coverage and Bug Detection Ability

초록

커맨드 라인 인터페이스 프로그램 (CLI program)에서 커맨드 라인 옵션은 해당 프로그램이 어떻게 작동하는지에 지대한 역할을 하며, 테스트를 수행할 때 어떤 커맨드 라인 옵션을 사용하는지에 따라 테스트의 성능 (커버리지 및 오류 탐지)은 매우 크게 변화할 수 있다. 본 연구에서는 유용한 옵션을 자동으로 선택하여 테스트를 진행하는 퍼징 기술인 PAW (Program option-AWare fuzzer)를 제시한다. PAW는 전체 퍼징 시간의 첫 10% 동안 다양한 옵션을 변이해본 뒤 실행하여, 생성된 옵션들 중 새로이 분기 커버리지를 달성하는 옵션을 유용한 옵션으로 판정하여, 이후 90%의 시간 동안에는 해당 유용한 옵션에 집중하여 테스트를 진행하도록 한다. 최신 퍼저인 Angora를 기반으로 PAW를 구현한 뒤, 6개의 실제 C 프로그램에서 최신 퍼저인 AFL++과 Angora와 비교하여 평가하였다. PAW는 6개의 실제 C 프로그램에서 모두 AFL++과 Angora와 비교하여 월등히 높은 분기 커버리지를 달성하고, 보다 많은 크래시 오류를 탐지하였다.

제목
유용한 커맨드 라인 옵션을 선택하여 커버리지와 오류 탐지 능력을 높이는 퍼징 기법
제목 (타언어)
PAW: Useful option selection fuzzing technique to Improve Coverage and Bug Detection Ability
저자
이아청 김윤호김문주
발행일
2021-12
유형
Proceeding
저널명
한국정보과학회 2021 한국소프트웨어종합학술대회 논문집
페이지
179 ~ 181