[논문 리뷰] MEUZZ: Smart Seed Scheduling for Hybrid Fuzzing
Meuzz는 경량 정적 및 동적 특징을 사용하여 시드 유용성을 예측하고, 공백 실행을 위한 입력을 우선순위화하는 기계학습 기반 하이브리드 패atcher입니다. QSYM보다 27.1% 높은 코드 커버리지를 달성하고, 기존에 알려지지 않은 47개의 버그를 발견했으며, 모델은 다양한 프로그램 간에 강한 재사용성과 이식 가능성을 보입니다.
Seed scheduling is a prominent factor in determining the yields of hybrid fuzzing. Existing hybrid fuzzers schedule seeds based on fixed heuristics that aim to predict input utilities. However, such heuristics are not generalizable as there exists no one-size-fits-all rule applicable to different programs. They may work well on the programs from which they were derived, but not others. To overcome this problem, we design a Machine learning-Enhanced hybrid fUZZing system (MEUZZ), which employs supervised machine learning for adaptive and generalizable seed scheduling. MEUZZ determines which new seeds are expected to produce better fuzzing yields based on the knowledge learned from past seed scheduling decisions made on the same or similar programs. MEUZZ's learning is based on a series of features extracted via code reachability and dynamic analysis, which incurs negligible runtime overhead (in microseconds). Moreover, MEUZZ automatically infers the data labels by evaluating the fuzzing performance of each selected seed. As a result, MEUZZ is generally applicable to, and performs well on, various kinds of programs. Our evaluation shows MEUZZ significantly outperforms the state-of-the-art grey-box and hybrid fuzzers, achieving 27.1% more code coverage than QSYM. The learned models are reusable and transferable, which boosts fuzzing performance by 7.1% on average and improves 68% of the 56 cross-program fuzzing campaigns. MEUZZ discovered 47 deeply hidden and previously unknown bugs--with 21 confirmed and fixed by the developers--when fuzzing 8 well-tested programs with the same configurations as used in previous work.
연구 동기 및 목표
- 다양한 프로그램에서 성능이 열 劣한 고정 히ュ리스틱 기반 시드 스케줄링의 한계를 해결하기 위해.
- 다양한 프로그램에 일반화되는 데이터 기반의 적응형 시드 스케줄링 전략을 기계학습을 통해 개발하기 위해.
- 시드 유용성 예측을 위한 의미 있는 특징을 추출하면서도 런타임 오버헤드를 최소화하기 위해.
- 학습된 모델의 재사용성과 이식 가능성을 다양한 패처 설정과 프로그램 간에 평가하기 위해.
- 최신 기술 수준의 패처보다 코드 커버리지와 버그 발견률을 향상시키기 위해.
제안 방법
- Meuzz는 코드 도달 가능성 분석과 동적 실행 프로파일링을 통해 경량 특징을 추출하며, 특징당 약 ~5 μs의 오버헤드만 발생합니다.
- 입력 자식 트리를 활용해 각 시드의 패치 성능와 경로 커버리지 측정을 통해 자동으로 데이터 레이블을 추론합니다.
- 이러한 특징과 레이블을 기반으로 시드 유용성을 예측하는 지도 학습 모델을 훈련시켜 적응형 우선순위 부여를 가능하게 합니다.
- 시스템은 지속적인 예측 품질 평가 및 향상을 위한 온라인 평가 모듈을 포함하고 있습니다.
- Meuzz는 모델 이식 가능성을 활용하여, 재학습 없이도 한 번 학습된 모델을 다양한 프로그램 간에 재사용할 수 있습니다.
- 프레임워크는 프로그램에 종속되지 않고, 온라인 친화적이며, 유용성 중심으로 설계되어 실시간 패처 파이프라인에 통합하기에 적합합니다.
실험 결과
연구 질문
- RQ1학습된 기계학습 모델이 시드 특징과 성능 데이터를 기반으로 하이브리드 패처에서 고정 히ュ리스틱 기반 시드 스케줄링을 능가할 수 있는가?
- RQ2Meuzz는 최신 기술 수준의 회색 상자 패처 및 하이브리드 패처와 비교해 코드 커버리지 향상과 버그 발견에 얼마나 효과적인가?
- RQ3학습된 시드 유용성 모델이 다양한 프로그램과 설정 간에 얼마나 재사용 가능하고 이식 가능한가?
- RQ4경량 정적 및 동적 특징이 런타임 오버헤드를 최소화하면서도 시드 유용성을 정확하게 예측할 수 있는가?
- RQ5Meuzz의 적응형 스케줄링이 실제 패처 캠페인에서 더 높은 수확을 이끌 수 있는가?
주요 결과
- Meuzz는 현재 최신 기술 수준의 하이브리드 패처인 QSYM보다 27.1% 높은 코드 커버리지를 달성합니다.
- Meuzz는 8개의 잘 테스트된 프로그램에서 기존에 알려지지 않은 47개의 버그를 발견했으며, 그 중 21개는 개발자에 의해 확인되고 수정되었습니다.
- 학습된 모델은 평균적으로 패처 성능을 7.1% 향상시키며, 56개의 크로스 프로그램 패처 캠페인 중 68%에서 성능 향상을 이룹니다.
- 특징 추출 과정은 시드당 평균 5 μs의 오버헤드만 발생시켜 런타임 오버헤드를 최소화합니다.
- 시스템의 모델은 매우 높은 이식 가능성을 보이며, 재학습 없이도 다양한 프로그램 간에 효과적으로 재사용할 수 있습니다.
- Meuzz는 코드 커버리지와 고유한 버그 발견 모두에서 평가된 모든 패처보다 뛰어난 성능을 보이며, 뛰어난 확장성과 적응성의 우수함을 입증합니다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.