[論文レビュー] APFuzz: Towards Automatic Greybox Protocol Fuzzing
APFuzzは自動状態表現学習とLLMベースの入力構造学習を導入し、標準的なファジング benchmarksにおいてAFLNETおよび同等手法と比較してカバレッジとクラッシュ検出を改善するスマートなグレイボックスファジングを実現します。
Greybox protocol fuzzing is a random testing approach for stateful protocol implementations, where the input is protocol messages generated from mutations of seeds, and the search in the input space is driven by the feedback on coverage of both code and state. State model and message model are the core components of communication protocols, which also have significant impacts on protocol fuzzing. In this work, we propose APFuzz (Automatic greybox Protocol Fuzzer) with novel designs to increase the smartness of greybox protocol fuzzers from the perspectives of both the state model and the message model. On the one hand, APFuzz employs a two-stage process of static and dynamic analysis to automatically identify state variables, which are then used to infer an accurate state model during fuzzing. On the other hand, APFuzz introduces field-level mutation operations for binary protocols, leveraging message structure awareness enabled by Large Language Models. We conduct extensive experiments on a public protocol fuzzing benchmark, comparing APFuzz with the baseline fuzzer AFLNET as well as several state-of-the-art greybox protocol fuzzers.
研究の動機と目的
- 灰色ボックスプロトコルファジングにおける手動状態モデリングを置換する自動で正確な状態表現学習を促進する。
- ソースコードから状態変数を特定するための静的+動的分析の二段階パイプラインを開発する。
- バイナリプロトコルのフィールドレベルのメッセージ構造を学習するために大規模言語モデルを活用する。
- フィールドベースの変異を有効化し、有効性とカバレッジを向上させる入力を生成する。
提案手法
- 静的分析を用いた候補状態変数を収集し、ノイズを除去する軽量動的分析を組み合わせた二段階の状態変数同定。
- 実行中の状態変数使用を追跡する動的計測(LLVMベース)を実施し、状態系列を構築する。
- フィードバックから状態モデルを更新し、新しい状態を露呈する inputs やカバレッジを増加させる入力を保持するインストゥルメントファジングループ。
- バイナリプロトコルメッセージのフィールドレベル構造を抽出するLLMベースのシード解釈(フィールド名、ビット開始、ビット長)。
- 学習されたビット範囲に基づくフィールドベースの突然変異演算子を、既存のバイトレベル・メッセージレベルの変異(Deterministic、Classical、Field-Based)と統合。
- シード選択・変異・状態更新・フィードバックを協調させるアルゴリズムフレームワーク(Algorithm 1)を用い、段階的な状態モデル推定を実現。

実験結果
リサーチクエスチョン
- RQ1RQ1: seedsのバイナリメッセージ形式はLLMベースのアプローチで正確に解釈できるか?
- RQ2RQ2: 状態変数は自動的に特定可能か( manual intervention なしで)?
- RQ3RQ3: APFuzzは効果と効率の観点でAFLNETおよび最先端のグレイボックスプロトコルファジングと比較してどうか?
主な発見
- APFuzzは静的および軽量動的分析を通じてプロトコル状態変数を自動的に学習し、効率的な状態追跡を可能にする。
- LLMベースのシード解釈によりバイナリメッセージのフィールドレベル理解が得られ、バイナリプロトコル全体にわたるフィールドベースの変異を可能にする。
- APFuzzはProFuzzBenchベンチマークにおいて、AFLNET、StateAFL、NSFuzz、ChatAFL、HNPFuzzer、SGFuzz、他のベースラインと比較してコードおよび状態のカバレッジ向上とクラッシュ検出を示す。
- フィールドベースの変異アプローチは構造認識ファジングをバイナリプロトコルへ拡張し、より有効なテストケースを生成し、より深い状態空間を探索する。

より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。