Fuzzing
ファジング(Fuzzing)は、ランダム/半ランダムな入力を自動生成してプログラムに与え、クラッシュや異常を監視することで脆弱性を発見する技術である。
目的
未知の脆弱性を自動的に発見する。パーサーやプロトコル実装のセキュリティテストに広く使用される。
メカニズム
ランダムまたは変異させた入力を生成して対象に与え、クラッシュ/ASAN レポート/タイムアウトを監視する。カバレッジガイド型ファジング(libFuzzer/AFL)はカバレッジフィードバックで入力生成を誘導する。構造認識ファジングは入力形式を理解する。
ユースケース
- バグや脆弱性の発見
- パーサーのセキュリティテスト
- プロトコルの堅牢性