
このフレームワークは、様々な大規模言語モデル(LLM)を使用して、実際の C/C++/Java/Python プロジェクト向けのファズターゲットを生成し、OSS-Fuzz プラットフォーム を介してベンチマークします。
詳細は AI-Powered Fuzzing: Breaking the Bug Hunting Barrier で確認できます:

現在サポートされているモデルは次のとおりです:
生成されたファズターゲットは、本番環境の最新データに対して4つのメトリクスで評価されます:
OSS-Fuzz 内の既存の人手によるファズターゲットに対するランタイム行カバレッジ差分以下は2024年1月31日のサンプル実験結果です。 この実験には、297のオープンソースプロジェクトからの 1300以上のベンチマーク が含まれていました。

全体として、このフレームワークはLLMを活用して、160のC/C++プロジェクトに対して有効なファズターゲット(ゼロ以外のカバレッジ増加を生成するもの)を生成することに成功しています。既存の人手によるターゲットと比較した最大の行カバレッジ増加は29%です。
これらのレポートには未公開の脆弱性が含まれる可能性があるため、公開されていないことに注意してください。
このフレームワークの実行方法と結果に基づくレポートの生成方法については、詳細な使用ガイドを参照してください。
統合エージェント実行フレームワークを使用すると、完全な実験を実行せずに個々のエージェントを実行または評価することもできます。 個々のエージェントまたは一連のエージェントを実行する方法の詳細な手順については、フレームワークのドキュメントを参照してください。
研究やオープンソースコミュニティとのコラボレーションに興味がありますか? お気軽にIssueを作成するか、[email protected] までメールでお問い合わせください。

これまでに、このフレームワークによって構築された自動生成ターゲットによって発見された30件の新しいバグ/脆弱性を報告しています:
これらのバグは、新しく生成されたターゲットによってのみ発見できたものです。既存のOSS-Fuzzターゲットでは到達できませんでした。
| プロジェクト | 総カバレッジ獲得率 | 総相対獲得率 | OSS-Fuzz-gen 総カバー行数 | OSS-Fuzz-gen 新規カバー行数 | 既存カバー行数 | プロジェクト総行数 |
|---|---|---|---|---|---|---|
| phmap | 98.42% | 205.75% | 1601 | 1181 | 574 | 1120 |
| usbguard | 97.62% | 26.04% | 24550 | 5463 | 20979 | 3564 |
| onednn | 96.67% | 7057.14% | 5434 | 5434 | 77 | 210 |
| avahi | 82.06% | 155.90% | 3358 | 2814 | 1805 | 3046 |
| pugixml | 72.98% | 194.95% | 9015 | 6646 | 3409 | 7662 |
| librdkafka | 66.88% | 845.57% | 5019 | 4490 | 531 | 1169 |
| casync | 66.75% | 903.23% | 1171 | 1120 | 124 | 1678 |
| tomlplusplus | 61.06% | 331.10% | 4755 | 3652 | 1103 | 5981 |
| astc-encoder | 59.35% | 177.88% | 2726 | 1745 | 981 | 2940 |
| mruby | 48.56% | 0.00% | 34493 | 34493 | 0 | 71038 |
| arduinojson | 42.10% | 85.80% | 3344 | 1800 | 2098 | 4276 |
| json | 41.13% | 66.51% | 5051 | 3339 | 5020 | 8119 |
| double-conversion | 40.40% | 88.12% | 1663 | 779 | 884 | 1928 |
| tinyobjloader | 38.26% | 77.01% | 1157 | 717 | 931 | 1874 |
| glog | 38.18% | 58.69% | 895 | 331 | 564 | 867 |
| cppitertools | 35.78% | 45.07% | 253 | 151 | 335 | 422 |
| eigen | 35.38% | 190.70% | 2643 | 1947 | 1021 |
* "プロジェクト総行数" は、OSS-Fuzz の既存の人手によるファズターゲットによってコンパイルおよびリンクされたテスト対象プロジェクトのソースコードを測定したものです。
* "総カバレッジ獲得率" は "プロジェクト総行数" を分母として計算されます。"総相対獲得率" は、以前のカバー行数と比較したカバレッジの増加です。
* 新しいファズターゲットをコンパイルする際に、テスト対象プロジェクトからの追加コードが含まれる場合があり、その結果、高いパーセンテージの獲得率になることがあります。
引用の詳細については、このGitHubページの右側にある 'Cite this repository' ボタンをクリックしてください。
| 遠隔到達、低カバレッジ |
pjsip | 範囲外読み取り | Vertex AI | デフォルト | ファズキーワード + 簡単なパラメータによる低カバレッジ、遠隔到達 |
pjsip | 範囲外読み取り | Vertex AI | デフォルト | ファズキーワード + 簡単なパラメータによる低カバレッジ、遠隔到達 |
gpac | 範囲外読み取り | Vertex AI | デフォルト | ファズキーワード + 簡単なパラメータによる低カバレッジ、遠隔到達 |
gpac | 範囲外読み取り/書き込み | Vertex AI | デフォルト | すべて |
gpac | 範囲外読み取り | Vertex AI | デフォルト | すべて |
gpac | 範囲外読み取り | Vertex AI | デフォルト | すべて |
sqlite3 | 範囲外読み取り | Vertex AI | デフォルト | すべて |
htslib | 範囲外読み取り | Vertex AI | デフォルト | すべて |
libical | 範囲外読み取り | Vertex AI | デフォルト | すべて |
croaring | 範囲外読み取り | Vertex AI | Test-to-harness | すべて |
openssl | CVE-2024-9143 - 範囲外読み取り/書き込み | Vertex AI | デフォルト | すべて |
liblouis | 未初期化メモリの使用 | Vertex AI | Test-to-harness | テスト識別子 |
libucl | 範囲外読み取り | Vertex AI | デフォルト | ファズキーワード + 簡単なパラメータによる低カバレッジ、遠隔到達 |
openbabel | 解放後使用 | Vertex AI | デフォルト | ファズキーワード + 簡単なパラメータによる低カバレッジ、遠隔到達 |
libyang | 範囲外読み取り | Vertex AI | デフォルト | すべて |
openbabel | 範囲外読み取り | Vertex AI | デフォルト | すべて |
exiv2 | 範囲外読み取り | Vertex AI | デフォルト | すべて |
| 非公開 | Java RCE (メンテナのトリアージ待ち) | Vertex AI | デフォルト | 遠隔到達、低カバレッジ |
| 非公開 | 正規表現DoS (メンテナのトリアージ待ち) | Vertex AI | デフォルト | 遠隔到達、低カバレッジ |
| 非公開 | 範囲外読み取り | Vertex AI | デフォルト | すべて |
| 非公開 | 範囲外書き込み | Vertex AI | デフォルト | すべて |
| 非公開 | 範囲外読み取り | Vertex AI | デフォルト | すべて |
| 非公開 | 範囲外読み取り | Vertex AI | デフォルト | すべて |
| 非公開 | 解放後使用 | Vertex AI | Agent prompt | すべて |
| 5503 |
| glaze | 34.55% | 30.06% | 2920 | 2416 | 8036 | 6993 |
| rapidjson | 31.83% | 148.07% | 1585 | 958 | 647 | 3010 |
| libunwind | 30.58% | 83.25% | 2899 | 1342 | 1612 | 4388 |
| openh264 | 30.07% | 50.14% | 6607 | 5751 | 11470 | 19123 |