[論文レビュー] Augmenting Greybox Fuzzing with Generative AI
ChatFuzz は AFL++ を拡張し、形式準拠 inputs を生成する生成AIベースのミューテータを用い、12プログラムとベンチマークを横断して AFL++ より約12.77%高いエッジカバレッジを達成します。
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.
研究の動機と目的
- 構造化データプログラムのグレイボックスファジングにおける形式準拠入力の必要性を動機づける。
- 従来の変異ベースファジングを補完する生成系AIベースのミューテータを提案する。
- AIミューテータのハイパーパラメータを体系的に研究し、ベストプラクティスを特定する。
- 多様なターゲットでアプローチを評価し、カバレッジの向上とシード貢献を測定する。
- 再現性のためのオープンソースの ChatFuzz とデータセット。
提案手法
- AIベースのChat MutatorをAFL++に統合し、ChatFuzzを拡張レイヤーとして形成する。
- ファuzzer からのシード入力を用いてChatGPTエンドポイントを促してバリエーションを生成する。
- AIの応答を新しいシードに解析し、それらをカバレッジテストのためにファuzzerへ再入力する。
- モデルエンドポイント(チャット形式 vs コンプリート形式)とハイパーパラメータの調整(プロンプト設計、max_tokens、n、temperature)を用いて実験する。
- 複数のベンチマークからの12プログラムに対して、エッジカバレッジの向上、シードの多様性、構文的妥当性を評価する。
実験結果
リサーチクエスチョン
- RQ1ターゲットプログラム上で、ChatFuzzはAFL++よりどの程度のエッジカバレッジの改善を達成するか?
- RQ2AIベースのミューテータは、異なる入力形式にわたって高品質で構文適合性のあるシードを生成できるか?
- RQ3AIモデルの選択とハイパーパラメータはファジングの性能とSeed取り込み率にどう影響するか?
- RQ4入力構文の複雑さが異なるプログラム全体で、ChatFuzzは脆弱性検出に有効か?
主な発見
- ChatFuzz は 12 プログラム全体で AFL++ に対する平均エッジカバレッジを 12.77% 向上させる。
- AIミューテータはファuzzerキュー内のシードの約 12.77% を平均的に寄与し、いくつかのプログラムではより高い割合を示す(例: mujs, ossfuzz, lua で >30%)。
- The ChatGPT-based mutator yields higher seed quality (unique and syntactically valid seeds) with the chat model (CT) than the completion model (CP), though CP can generate more seeds overall.
- Format-aware prompts and including sample input in prompts significantly boost coverage compared to prompts without input.
- ChatFuzz variants with the CT endpoint achieve notable coverage gains compared to AFL++, and format-agnostic variants still outperform AFL++ by around 6% on average.
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。