개발/검증

FuzzBench란?

sodas 2021. 2. 8. 10:41
반응형

개요

FuzzBench는 실제적인 벤치마크를 수행을 통해 Fuzzer를 평가할 수 있는 무료 서비스입니다.  Fuzzer를 테스트하고 성능을 비교하는 것은 대규모의 테스트셋을 사용해야하거나 반복적인 수많은 실험을 해야하는 등 많은 비용이 요구됩니다. 

FuzzBench Process

프로세스는 다음과 같이 처리 됩니다. 

  1. Fuzzer 개발자 혹은 Benchmark와 관련된 사람이 Fuzzer를 BuzzBench에 통합합니다. 
  2. 통합한 작업은 BuzzBench 저장소에 병합됩니다. 
  3. BuzzBench는 새로운 Buzzer를 통해 실험을 합니다. 
  4. FuzzBench는 개별 벤치 마크 및 적체적인 Fuzzer의 성능을 다른 퍼저와 비교해 보고서를 게시합니다. 

목표 

Fuzzer를 평가하는데 있어서 어려움을 최소화하고 연구 결과들을 보다 쉽게 적용할 수 있도록 하는 것입니다.

제공하는 것들

  • Fuzzer들을 통합하기 위한 API : 어떤 오픈소스 Fuzz 프로젝트라도 벤치마크에 쉽게 통합할 수 있는 API 제공합니다.
  • Reporting Library : 그래프와 통계적인 테스트를 통해 리포트를 생성할 수 있게 해줍니다. 

참여 방법

간단한 가이드에 따라 FuzzBench 플랫폼에 Fuzz를 제출하면 됩니다. 통합이 승인되면 대규모 실험을 통해 AFL 및 LibFuzzer와 같은 다른 퍼저와 비교하는 보고서를 받아 볼 수 있습니다. 보고서는 대략 24시간 동안 20 여번의 실험을 통해서 이루어 지는데 일정 시간 간격으로 주기적으로 생성합니다. (실험 결과 예제 : 링크)

 

참여를 위해서는 다음 기준을 충족해야 한다. 

  • 일반적으로 사용될 수 있는 오픈소스 프로젝트여야 함
  • 단순하고 간단한 코드가 아니여야 함 (예: CRC32)

새로운 Benchmark를 추가하는 방법 : 링크 

추가는 두가지 방법으로 가능합니다. OSS-Fuzz 방법은 오픈소스 Fuzz 프로젝트로부터 Fuzzer를 통합하는 쉬운 방법이며, 표준화된 방법은 스크립트를 사용하는 것 대신에 프로젝트의 build.sh와 Dockefile을 복사하는 대신 직접 만들어 수행할 수 있습니다. 

 

 관련 자료

Site : google.github.io/fuzzbench/

Repository : github.com/google/fuzzbench

관련 기사

www.boannews.com/media/view.asp?idx=86772&kind=

security.googleblog.com/2020/03/fuzzbench-fuzzer-benchmarking-as-service.html

반응형

'개발 > 검증' 카테고리의 다른 글

Fuzzing Review  (0) 2021.02.01