개요
FuzzBench는 실제적인 벤치마크를 수행을 통해 Fuzzer를 평가할 수 있는 무료 서비스입니다. Fuzzer를 테스트하고 성능을 비교하는 것은 대규모의 테스트셋을 사용해야하거나 반복적인 수많은 실험을 해야하는 등 많은 비용이 요구됩니다.
프로세스는 다음과 같이 처리 됩니다.
- Fuzzer 개발자 혹은 Benchmark와 관련된 사람이 Fuzzer를 BuzzBench에 통합합니다.
- 통합한 작업은 BuzzBench 저장소에 병합됩니다.
- BuzzBench는 새로운 Buzzer를 통해 실험을 합니다.
- 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 |
---|