ossfuzz は何をしますか?
OSS-Fuzzは、オープンソースプロジェクトに無料の継続的ファジングを提供します。継続的ファジングインフラを構築する際やプロジェクトを登録する際に使用します。
概要
OSS-Fuzzは、Googleが運営するサービスで、オープンソースプロジェクトに対して自動化されたファジング(ファズテスト)を提供します。これにより、プロジェクトは大規模なインフラを管理することなく、バグやセキュリティ脆弱性を発見できます。このスキルは、プロジェクトをOSS-Fuzzに登録し、ファジングを効果的に実行するための手順をガイドします。
サポート対象
- 言語: C, C++, Rust, Python, Java, Go など
- プラットフォーム: Linux (Docker ベース)
- CI/CD 統合: GitHub Actions, Google Cloud Build
セットアップ手順
- リポジトリの準備: プロジェクトリポジトリに
Dockerfileとファジングターゲットを追加します。 - ビルド設定:
build.shスクリプトを作成し、ファジングターゲットをコンパイルします。 - プロジェクトの登録: Google OSS-Fuzz リポジトリ にプルリクエストを送信します。
- 継続的ファジング: 登録後、自動的にファジングが開始され、結果は OSS-Fuzz ダッシュボード で確認できます。
使用例
# プロジェクトのクローン
$ git clone https://github.com/google/oss-fuzz
# ファジングターゲットのビルド
$ cd oss-fuzz
$ python infra/helper.py build_fuzzers --sanitizer address my_project
# ファジングの実行
$ python infra/helper.py run_fuzzer my_project my_fuzzer
注意事項
- ファジングターゲットは安定して動作する必要があります。
- プロジェクトは独自の Issue トラッカーを持っていることが推奨されます。
- OSS-Fuzz は無料ですが、リソースに制限がある場合があります。