We propose a technique that generates test cases based on a metaheuristic algorithm. To be more
systematic than black-box fuzzing and more lightweight than white-box fuzzing, we propose searchbased
fuzzing that is based on search-based software testing. We utilize execution path and the flag
register in assembly as feedbacks, which was not actively used in previous search-based software testing
researches. We built a system called Chatkey that automates the whole fuzzing process, based on our
search-based fuzzing technique. In our experiment, we show that Chatkey automatically found 2,976
bugs from 30,192 binary executable of Debian without any user intervention. Furthermore, Chatkey
outperformed both KLEE and AFL in our dataset, which are the state-of-the-art white-box and greybox
fuzzing tool respectively.
우리는 메타 휴리스틱 알고리즘을 이용한 테스트 케이스 생성법에 대해 제안한다. 우리는 기존의 블랙 박스 퍼즈 테스팅보다 체계적이고 화이트 박스 퍼즈 테스팅보다 가벼운 방식으로 퍼즈 테스팅을 진행 하기 위해 검색 기반 소프트웨어 테스팅 방식에 기반한 검색 기반 퍼즈 테스팅을 제안한다. 기존에 검색 기반 소프트웨어 테스팅에서 피드백으로서 주로 사용되지 않았던 실행 경로와 어셈블리 단계의 플래그 레지스터를 피드백으로 활용하여 입력 값을 찾아 나아간다. 우리는 이러한 방식을 통해 퍼즈 테스팅의 전 과정을 자동화한 시스템 Chatkey를 만들어 Debian의 30,192개의 모든 프로그램에 대해 사용자의 개입 없이 자동으로 퍼즈 테스팅을 진행 하였고 2,976개의 버그를 발견 하였다. 또, 동적 기호 실행 시스템 KLEE와 커버리지를 피드백으로 사용하는 그레이 박스 퍼져 AFL과 비교를 했을 때 더욱 높은 노드 커버리지를 달성하였다.