Skip to main content
QUICK REVIEW

[논문 리뷰] EnFuzz: Ensemble Fuzzing with Seed Synchronization among Diverse Fuzzers

Yuanliang Chen, Yu Jiang|arXiv (Cornell University)|2018. 06. 30.
Software Testing and Debugging Techniques참고 문헌 18인용 수 22
한 줄 요약

EnFuzz는 다수의 변형 기반 및 생성 기반 퍼저를 조합하는 앙상블 퍼징 프레임워크를 제안하며, 전역적으로 비동기적이고 국지적으로 동기적인(GALS) 시드 동기화 메커니즘을 사용하여 취약점 탐지 능력을 향상시킨다. 기존의 퍼저들 사이에서 새로운 커버리지나 크래시를 유도하는 흥미로운 시드를 동기화함으로써, EnFuzz는 개별 도구들 대비 71.4%에서 114% 높은 고유한 이전에 알려지지 않은 버그 탐지 성능을 달성하였으며, 실제 응용 프로그램에서 24시간 이내로 60개의 새로운 CVE를 발견하였다.

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.

연구 동기 및 목표

  • 다양한 퍼저들을 하나의 앙상블 시스템으로 통합하여 퍼징의 효과성을 향상시키기.
  • 휴리스틱적 편향으로 인해 깊거나 드문 코드 경로를 탐지하기 어려운 개별 퍼저의 한계를 해결하기.
  • 이질적인 퍼저들 간에 흥미로운 입력을 적시에 공유할 수 있도록 시드 동기화 메커니즘 설계하기.
  • 실제로 잘 퍼징된 소프트웨어에서 앙상블 접근법을 평가하여 개별 도구를 뛰어넘는 우수한 취약점 발견 능력을 입증하기.

제안 방법

  • 시드 변형/선택 전략, 커버리지 정밀도(예: 엣지 대비 블록), 입력 생성 전략(변형 대비 생성)을 기반으로 세 가지 다양성 히وري스틱을 활용해 기본 퍼저 선정.
  • 각 퍼저는 독립적으로 작동하지만, 흥미로운 시드를 전역 풀에 공유하는 전역적으로 비동기적이고 국지적으로 동기적인(GALS) 시드 동기화 메커니즘 구현.
  • 전역 시드 풀과 전역 커버리지 맵 유지하여 새로운 경로 및 크래시 탐지, 결과의 중복 제거, 고유한 취약점의 우선순위 정하기.
  • 크래시 발생 또는 고커버리지 시드를 수집하고 모든 기본 퍼저에 배포하는 모니터를 사용해 퍼저 간 협업 강화.
  • 크래시 및 커버리지 보고서를 통합된 출력으로 통합하여 최종 취약점 분석 수행.
  • 실시간 커버리지 피드백에 기반해 기반 퍼저들을 동적으로 선택하여 대상 애플리케이션의 특성에 적응.

실험 결과

연구 질문

  • RQ1다양한 퍼저들을 시드 동기화를 통해 조합함으로써 실생활 소프트웨어에서 이전에 알려지지 않은 취약점의 탐지 능력이 크게 향상될 수 있는가?
  • RQ2GALS 기반의 시드 동기화 메커니즘이 서로 다른 변형 및 커버리지 전략을 가진 이질적 퍼저들 간의 협업을 어떻게 향상시키는가?
  • RQ3EnFuzz가 AFL, AFLFast, FairFuzz, LibFuzzer, QSYM과 같은 개별 퍼저들보다 고유한 버그와 CVE를 얼마나 더 잘 탐지하는가?
  • RQ4이미 여러 도구들에 의해 테스트된 바 있는 잘 퍼징된 프로젝트에서 앙상블 접근법은 성능을 유지하거나 향상시키는가?
  • RQ5변형 전략, 커버리지 정밀도, 입력 생성 방식에 기반한 퍼저 다양성이 앙상블의 총합 효과성에 미치는 영향은 어느 정도인가?

주요 결과

  • EnFuzz는 실제 응용 프로그램에서 24시간 이내로 60개의 고유한 이전에 알려지지 않은 버그를 탐지하여, 개별 도구들보다 뚜렷이 뛰어난 성능을 보였다.
  • AFL 대비 EnFuzz는 고유한 버그를 71.4% 더 많이 탐지하였으며, AFLFast, FairFuzz, LibFuzzer, QSYM 대비 각각 114%, 93.5%, 76.4%, 87.5% 더 많은 고유한 버그를 발견하였다.
  • 잘 퍼징된 libpng 라이브러리에서 EnFuzz는 세 개의 새로운 취약점을 발견하였으며, 이 중 두 개는 CVE로 할당되었으며(CVE-2018-14047 및 CVE-2018-14550), 이는 개별 퍼저들이 탐지하지 못한 것으로 확인되었다.
  • EnFuzz는 libwav와 libpng에서 개별 도구들이 발견하지 못한 13개의 추가 실버러그를 탐지하였으며, 이 중 7개는 CVE로 할당되었다.
  • libpng에서의 시간에 따른 성능 분석 결과, EnFuzz는 AFLFast나 FairFuzz와 같은 최적화된 변종조차도 뛰어넘는 일관된 성능을 보였으며, 이는 원본 AFL 대비 성능이 떨어지는 것으로 나타났다.
  • GALS 동기화 메커니즘은 효과적인 퍼저 간 협업을 가능하게 하여, 개별 도구들이 도달하지 못한 복잡한 버그(6개의 함수 호출과 11개의 비교가 필요한)를 EnFuzz가 성공적으로 유도하였다.

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

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

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

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