Skip to main content
QUICK REVIEW

[논문 리뷰] Augmenting Greybox Fuzzing with Generative AI

Jie Hu, Qian Zhang|arXiv (Cornell University)|2023. 06. 11.
Software Engineering Research인용 수 16
한 줄 요약

ChatFuzz는 형식 준수 입력을 생성하는 생성형 AI 기반 변이기와 AFL++를 보강하여 12개의 프로그램과 벤치마크에서 AFL++ 대비 약 12.77% 더 높은 엣지 커버리지를 달성합니다.

ABSTRACT

Real-world programs expecting structured inputs often has a format-parsing stage gating the deeper program space. Neither a mutation-based approach nor a generative approach can provide a solution that is effective and scalable. Large language models (LLM) pre-trained with an enormous amount of natural language corpus have proved to be effective for understanding the implicit format syntax and generating format-conforming inputs. In this paper, propose ChatFuzz, a greybox fuzzer augmented by generative AI. More specifically, we pick a seed in the fuzzer's seed pool and prompt ChatGPT generative models to variations, which are more likely to be format-conforming and thus of high quality. We conduct extensive experiments to explore the best practice for harvesting the power of generative LLM models. The experiment results show that our approach improves the edge coverage by 12.77\% over the SOTA greybox fuzzer (AFL++) on 12 target programs from three well-tested benchmarks. As for vulnerability detection, \sys is able to perform similar to or better than AFL++ for programs with explicit syntax rules but not for programs with non-trivial syntax.

연구 동기 및 목표

  • 그래픽 구조화된 데이터 프로그램에서 그레이박 fuzzing의 형식 준수 입력 필요성을 제시합니다.
  • 전통적인 변이 기반 fuzzing을 보완하는 생성형 AI 기반 변이기를 제안합니다.
  • AI 변이기의 하이퍼파라미터를 체계적으로 연구하여 최적의 관행을 식별합니다.
  • 다양한 대상으로 접근하여 커버리지 증가 및 시드 기여를 측정합니다.
  • 재현성을 위해 ChatFuzz 및 데이터셋의 오픈소스화를 제공합니다.

제안 방법

  • AI 기반 Chat Mutator를 AFL++와 통합하여 ChatFuzz를 증강 계층으로 형성합니다.
  • 피더로부터 얻은 시드를 사용하여 ChatGPT 엔드포인트에 변형 생성을 요청합니다.
  • AI 응답을 새로운 시드로 파싱하고 이를 커버리지 테스트를 위해 피저에 다시 제공합니다.
  • 모델 엔드포인트(chat vs completion)와 하이퍼파라미터(프롬프트 설계, max_tokens, n, temperature)를 조정하며 실험합니다.
  • 12개 프로그램에서 엣지 커버리지 증가, 시드 다양성, 구문 타당성을 여러 벤치마크의 대상에서 평가합니다.

실험 결과

연구 질문

  • RQ1타깃 프로그램에서 ChatFuzz가 AFL++ 대비 얼마나 많은 엣지 커버리지 향상을 달성하는가?
  • RQ2AI 기반 변이기가 다양한 입력 형식에서 고품질의 구문 준수 시드를 생성할 수 있는가?
  • RQ3AI 모델 선택과 하이퍼파라미터가 fuzzing 성능 및 Seed import 비율에 어떤 영향을 미치는가?
  • RQ4입력 구문의 복잡도가 다양한 프로그램에서 ChatFuzz가 취약점 발견에 효과적인가?

주요 결과

  • ChatFuzz는 12개 프로그램에서 AFL++ 대비 평균 엣지 커버리지를 12.77% 향상시킵니다.
  • AI 변이기는 피uzzer 큐에서 평균적으로 약 12.77%의 시드 기여를 하며, 일부 프로그램에서 더 높은 비중을 차지합니다(예: mujs, ossfuzz, lua에서 >30%).
  • ChatGPT 기반 변이기는 채팅 모델(CT)로 구문 품질이 더 높은 시드를 생성하는 반면(고유하고 구문적으로 유효한 시드), 완료 모델(CP)은 더 많은 시드를 생성할 수 있습니다.
  • 형식 인식 프롬프트와 프롬프트에 샘플 입력을 포함하는 것이 입력이 없는 프롬프트에 비해 커버리지를 크게 높입니다.
  • CT 엔드포인트를 사용한 ChatFuzz 변형은 AFL++에 비해 상당한 커버리지 증가를 달성하며 형식과 무관한 변형도 평균적으로 AFL++보다 약 6% 앞섭니다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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