[論文レビュー] Learn&Fuzz: Machine Learning for Input Fuzzing
本論文では、サンプルPDF入力から生成的確率文法を自動で学習するための、新しい機械学習手法であるLearn&Fuzzを提案する。この手法は、整形式のPDFオブジェクトの統計的構造を学習し、そのモデルを用いて知能的なファズィングを実行することで、ランダムなファズィングやベースラインの学習ベースファズィング手法と比較して、Microsoft EdgeのPDFパーサーにおけるコードカバレッジと脆弱性発見の両面で顕著な向上を達成する。
Fuzzing consists of repeatedly testing an application with modified, or fuzzed, inputs with the goal of finding security vulnerabilities in input-parsing code. In this paper, we show how to automate the generation of an input grammar suitable for input fuzzing using sample inputs and neural-network-based statistical machine-learning techniques. We present a detailed case study with a complex input format, namely PDF, and a large complex security-critical parser for this format, namely, the PDF parser embedded in Microsoft's new Edge browser. We discuss (and measure) the tension between conflicting learning and fuzzing goals: learning wants to capture the structure of well-formed inputs, while fuzzing wants to break that structure in order to cover unexpected code paths and find bugs. We also present a new algorithm for this learn&fuzz challenge which uses a learnt input probability distribution to intelligently guide where to fuzz inputs.
研究の動機と目的
- PDFのような複雑なフォーマットにおける文法ベースファズィングのための入力文法を手作業で作成するプロセスの非効率さとエラーのリスクを解消すること。
- 整形式の入力構造を学習するのと、予期しないコードパスを引き起こすために不正な入力を注入するという二つの目標の間にある葛藤を明らかにすること。
- プログラムのインストルメンテーションを一切行わず、生のサンプル入力から統計的入力モデルを自動で学習するエンドツーエンドの手法を開発すること。
- 学習された確率的モデルが、ランダムまたはヒューリスティックベースの手法よりもファズィングをより効果的にガイドできるかどうかを評価すること。
提案手法
- サンプル入力のコーパスからPDFオブジェクト構造の統計的で生成的なモデルを学習するために、系列対系列(seq2seq)再帰的ニューラルネットワークを採用する。
- 生のPDFテキスト上で、非教師ありでエンドツーエンドに訓練を行い、有効な入力シーケンスの確率分布を学習する。
- 訓練されたseq2seqモデルからサンプリングすることで、構文的・意味的規則性を保持した新しい整形式PDFオブジェクトを生成する。
- 学習された確率分布を用いて、どこにどのように変異を加えるかをガイドする、新しい「学習+ファズ」アルゴリズムを適用する。この手法では、統計的に妥当でありながら構造的に多様な変異を優先する。
- 整形式性(カバレッジの向上のため)と変異(バグ発見のため)の両方をバランスさせる、学習済みモデルを統合したファズィングパイプラインを構築する。
- Microsoft EdgeのPDFパーサーを用いて評価し、コードカバレッジと脆弱性発見率を測定する。
実験結果
リサーチクエスチョン
- RQ1ニューラルネットワークベースのモデルは、生のサンプル入力から、PDFオブジェクトのような複雑で平坦な入力フォーマットの統計的構造を効果的に学習できるか?
- RQ2学習された入力確率分布を、整形式性と構造的変異の両方をバランスさせる形でファズィングをガイドするためにどう活用できるか?
- RQ3入力構造の正確な学習と、パーサー内で予期しないコードパスを引き起こす入力を生成するという二つの目標の間には、どのようなトレードオフがあるか?
- RQ4ランダムファズィングや他の学習ベースファズィング手法と比較して、学習+ファズアプローチはコードカバレッジと脆弱性検出の両面で優れているか?
- RQ5ニューラルモデルの統計的性質が、学習とファズィングの目的の間に内在する根本的な矛盾をどのように緩和できるか?
主な発見
- seq2seqモデルは、生のPDF入力から生成的で確率的な文法を効果的に学習し、フォーマットの文法的ルールに準拠した多数の新しい整形式PDFオブジェクトを生成した。
- 学習済みモデルは、ランダムファズィングとベースラインの学習ベースファズィング手法と比較して、Microsoft EdgeのPDFパーサーにおけるコードカバレッジをより高めた。
- 学習された確率分布を用いて変異をガイドする本手法の「学習+ファズ」アルゴリズムは、多様なコードパスを効果的に走査する点で、他のファズィング戦略を上回った。
- 本手法は、多様なキー・バリュー対やネスト型を含む、PDFオブジェクトの複雑で平坦な構造を、ニューラルネットワークによる統計的モデリングで効果的に捉えることができることを示した。
- 本手法は、エラー処理やエッジケースのコードパスを走査する点で、脆弱性発見の観点から顕著な改善を達成した。
- 結果から、整形式構造の学習と不正な入力の注入という二つの目標の間に根本的な葛藤が存在することが確認されたが、本手法のガイドド変異により、この葛藤が効果的に緩和された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。