Skip to main content
QUICK REVIEW

[논문 리뷰] EnFuzz: From Ensemble Learning to Ensemble Fuzzing.

Yuanliang Chen, Yu Jiang|arXiv (Cornell University)|2018. 06. 30.
Software Testing and Debugging Techniques인용 수 10
한 줄 요약

EnFuzz는 여러 최신 기술 기반 퍼징 툴(AFL, AFLFast, AFLGo, FairFuzz)을 종합적으로 통합하는 앙상블 퍼징 프레임워크를 제안한다. 이는 시드 동기화와 결과 통합 기법을 통해 경로 커버리지, 분기 커버리지 및 크래시 탐지 능력을 향상시킨다. 구글의 실제 소프트웨어 테스트 세트에서 24시간 동안 평가한 결과, EnFuzz는 모든 개별 퍼징 툴보다 뛰어난 성능을 보였으며, 최고 성능을 보인 퍼징 툴(AFLFast)보다 117% 더 많은 고유한 크래시를 탐지했고, 다양한 응용 프로그램에서 커버리지 및 크래시 탐지 능력에서 뚜렷한 향상을 이룩했다.

ABSTRACT

Fuzzing is widely used for software vulnerability detection. There are various kinds of fuzzers with different fuzzing strategies, and most of them perform well on their targets. However, in industry practice and empirical study, the performance and generalization ability of those well-designed fuzzing strategies are challenged by the complexity and diversity of real-world applications. In this paper, inspired by the idea of ensemble learning, we first propose an ensemble fuzzing approach EnFuzz, that integrates multiple fuzzing strategies to obtain better performance and generalization ability than that of any constituent fuzzer alone. First, we define the diversity of the base fuzzers and choose those most recent and well-designed fuzzers as base fuzzers. Then, EnFuzz ensembles those base fuzzers with seed synchronization and result integration mechanisms. For evaluation, we implement EnFuzz , a prototype basing on four strong open-source fuzzers (AFL, AFLFast, AFLGo, FairFuzz), and test them on Google's fuzzing test suite, which consists of widely used real-world applications. The 24-hour experiment indicates that, with the same resources usage, these four base fuzzers perform variously on different applications, while EnFuzz shows better generalization ability and always outperforms others in terms of path coverage, branch coverage and crash discovery. Even compared with the best cases of AFL, AFLFast, AFLGo and FairFuzz, EnFuzz discovers 26.8%, 117%, 38.8% and 39.5% more unique crashes, executes 9.16%, 39.2%, 19.9% and 20.0% more paths and covers 5.96%, 12.0%, 21.4% and 11.1% more branches respectively.

연구 동기 및 목표

  • 실제 복잡한 소프트웨어 시스템에서 개별 퍼징 전략의 일반화 능력이 제한되어 있는 문제를 해결한다.
  • 다양한 응용 프로그램에서 단일 퍼징 툴의 성능 변동성을 앙상블 학습 원리를 활용해 극복한다.
  • 다양한 고성능 퍼징 툴을 통합해 더 나은 종합적 취약점 탐지 능력을 확보하는 통합 퍼징 프레임워크를 설계한다.
  • 동일한 자원 제약 조건 하에서 개별 퍼징 툴보다 경로 커버리지, 분기 커버리지 및 크래시 탐지 비율을 향상시킨다.

제안 방법

  • 디자인 및 성능를 고려해 최근의 고성능 오픈소스 퍼징 툴인 AFL, AFLFast, AFLGo, FairFuzz를 기본 퍼징 툴로 선정한다.
  • 기본 퍼징 툴 간 상호보완적인 행동을 확보하기 위해 퍼징 전략의 다양성을 정의하고 측정한다.
  • 기본 퍼징 툴 간 시드를 공유함으로써 상호 퍼징 툴 간 학습과 탐색을 가능하게 하는 시드 동기화를 구현한다.
  • 모든 기본 퍼징 툴에서 발견된 경로, 분기, 크래시를 통합하고 우선순위를 매기는 결과 통합 기법을 적용한다.
  • 동기화된 입력과 공유된 출력 추적을 통해 기본 퍼징 툴의 동시 작동을 조율하는 통합 실행 파이프라인을 사용한다.
  • 모든 퍼징 툴가 동일한 자원 사용 조건에서 평가되도록 함으로써 개별 퍼징 툴과의 공정한 비교를 보장한다.

실험 결과

연구 질문

  • RQ1다양하고 고성능인 퍼징 전략을 앙상블 기법을 통해 통합함으로써 실제 응용 프로그램에서 일반화 능력 향상이 가능할까?
  • RQ2EnFuzz의 앙상블 접근 방식은 경로 및 분기 커버리지 측면에서 개별 퍼징 툴보다 어떻게 비교되는가?
  • RQ3EnFuzz는 최고 성능을 보인 개별 퍼징 툴보다 크래시 탐지 능력에서 얼마나 향상되었는가?
  • RQ4시드 동기화와 결과 통합은 앙상블의 탐색 효율성과 취약점 탐지 능력을 향상시키는가?

주요 결과

  • EnFuzz는 연구에서 최고 성능를 보인 AFL보다 26.8% 더 많은 고유한 크래시를 탐지했다.
  • EnFuzz는 AFLFast보다 117% 더 많은 고유한 크래시를 탐지했으며, 크래시 탐지 능력에서 뚜렷한 승리를 거두었다.
  • EnFuzz는 AFLGo보다 19.9% 더 높은 경로 커버리지를 달성했고, FairFuzz보다 20.0% 더 높은 경로 커버리지를 확보했다.
  • EnFuzz는 AFLGo보다 21.4% 더 많은 분기를 커버했고, FairFuzz보다 11.1% 더 많은 분기를 커버하여 뛰어난 코드 커버리지 능력을 입증했다.
  • EnFuzz는 Google의 실제 소프트웨어 테스트 세트에서 경로 커버리지, 분기 커버리지 및 크래시 탐지 능력 전반에서 모든 개별 기본 퍼징 툴을 일관되게 뛰어넘었다.
  • 앙상블 접근 방식은 강력한 일반화 능력을 보였으며, 개별 퍼징 툴이 성능이 다양하게 나타나는 다양한 응용 프로그램에서도 뛰어난 성능을 유지했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.