[論文レビュー] Faster Fuzzing: Reinitialization with Deep Neural Models
本稿では、生成対抗ネットワーク(GAN)を用いて、実際のAFLが生成した入力から得られる合成シードファイルを用いて、アメリカン・フラジー・ラップ(AFL)ファズファーベースの再初期化を強化する手法を提案する。同じCPU時間内において、GANベースの再初期化はランダムな再初期化と比較して、14.23%多くの一意なコードパスと6.16%多くの新しいパスを発見した。また、平均して13.84%長いパスを発見するなど、より深いコードパスの探索において優れた性能を示した。
We improve the performance of the American Fuzzy Lop (AFL) fuzz testing framework by using Generative Adversarial Network (GAN) models to reinitialize the system with novel seed files. We assess performance based on the temporal rate at which we produce novel and unseen code paths. We compare this approach to seed file generation from a random draw of bytes observed in the training seed files. The code path lengths and variations were not sufficiently diverse to fully replace AFL input generation. However, augmenting native AFL with these additional code paths demonstrated improvements over AFL alone. Specifically, experiments showed the GAN was faster and more effective than the LSTM and out-performed a random augmentation strategy, as measured by the number of unique code paths discovered. GAN helps AFL discover 14.23% more code paths than the random strategy in the same amount of CPU time, finds 6.16% more unique code paths, and finds paths that are on average 13.84% longer. Using GAN shows promise as a reinitialization strategy for AFL to help the fuzzer exercise deep paths in software.
研究の動機と目的
- 新しいおよび深いコードパスの発見を加速することで、AFLファズファーベースの効率を向上させること。
- 生成的深層モデル(GANやLSTM)が、AFLの再初期化におけるランダムなシード生成を上回るかを評価すること。
- 生成モデルから得られる合成シードファイルが、AFLのネイティブな変異ベースの探索を置き換えることなく、効果的にAFLを補完できるかを検証すること。
- コードパスの多様性および深さの観点から、GANベースの再初期化がランダムおよびLSTMベースの戦略に比べて果たすパフォーマンス向上を定量的に評価すること。
- 教師なし深層学習を用いて、最小限の手動入力やフォーマット解析なしにファズファーベースの効率をスケールアップできるかを検討すること。
提案手法
- 一意なコードパスを引き起こす入力データの分布を学習するために、AFLが生成したシードファイルを用いてGANを訓練する。
- 訓練済みのGANジェネレータを用いて、合成シードファイルを生成し、それらをAFLの作業ディレクトリに挿入する。
- コードパス発見レートおよび多様性の観点から、GANによって生成されたシードとランダムバイトサンプリングおよびLSTMによって生成されたシードを比較する。
- 24時間のファズファーベース実行中に、一意なコードパス数、パス長、発見までの時間といった指標を用いてパフォーマンスを測定する。
- Kerasを用いて、連結されたAFLシードファイルを用いてLSTMおよびGANモデルを訓練し、LSTM出力の多様性を向上させるために温度調整を実施する。
- AFLのコンパイラーインストルメンテーションおよび遺伝的変異フレームワークを適用し、局所最適解から脱出するため、定期的に合成シードを用いて再初期化を行う。
実験結果
リサーチクエスチョン
- RQ1GANによって生成されたシードファイルは、ランダムまたはLSTMベースの再初期化と比較して、AFLにおける一意なコードパス発見レートを向上させることができるか?
- RQ2深層生成モデルの使用により、テスト対象ソフトウェアにおけるより長い、より深くネストされたコードパスが発見可能になるか?
- RQ3GANおよびLSTMのトレーニング時間は、それらの合成シードを用いることで得られるファズファーベースの時間節約と比較してどの程度か?
- RQ4GANおよびLSTMから得られる合成シードファイルは、実際のAFLが生成した入力の統計的分布(コードパス長および分散)をどの程度反映しているか?
- RQ5教師なし深層学習モデルは、手動でのフォーマット解析やプログラム状態の公開を必要とせずに、AFLを効果的に補完できるか?
主な発見
- 24時間のファズファーベース実行において、GANベースの再初期化戦略は、ランダムな再初期化戦略と比較して、1秒あたり14.23%多くの一意なコードパスを発見した。
- GANによる再初期化は、初期のAFL実行に存在しなかったパス(新規パス)を、ランダム戦略と比較して6.16%多く発見した。これは、未到達のコード領域をより効果的に探索できていることを示している。
- GANによって生成されたシードを用いた場合のコードパスの平均長は、ランダム再初期化と比較して13.84%長く、より深いプログラム論理の到達が可能であることを示している。
- GANのトレーニングには約30分を要したが、LSTMモデルのトレーニングには14時間も要し、パス発見性能においても劣っていた。
- LSTMによって生成されたシードは、GANおよびランダム戦略の両方と比較して効果が低く、コードパス発見レートが28.7%低く、新規パスレートが29.5%低かった。
- GANおよびLSTMから得られる合成シードファイルは、ネイティブなAFLのコードパスの平均値および分散と一致しなかったため、AFLのネイティブな変異戦略の代替としてではなく、補完として使用すべきであることが示された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。