OSV-Scanner 調査レポート
1. 基本情報
- ツール名: OSV-Scanner
- ツールの読み方: オーエスブイスキャナー
- 開発元: Google / OpenSSF
- 公式サイト: https://google.github.io/osv-scanner/
- 関連リンク:
- カテゴリ: 開発者ツール
- 概要: OSV-Scannerは、プロジェクトの依存関係に含まれる既存の脆弱性を検出するオープンソースのセキュリティツールです。高品質なOSV.devデータベースを活用し、誤検知を減らして実用的な警告を提供します。
2. 目的と主な利用シーン
- 解決する課題: アプリケーションやコンテナの依存パッケージに含まれる既知の脆弱性の迅速かつ正確な特定。
- 想定利用者: 開発者、セキュリティエンジニア、DevSecOpsチーム
- 利用シーン:
- CI/CDパイプラインでのソースコードやコンテナの自動脆弱性スキャン。
- ローカル環境での依存パッケージのセキュリティ監査とライセンス確認。
- 脆弱性の修正計画の立案と自動修復(Guided Remediation)の適用。
3. 主要機能
- ディレクトリの再帰的スキャン:
package.json、go.mod、pom.xmlなどのサポートされているパッケージマニフェストやロックファイルを検出し、依存関係の脆弱性を調査します。 - コンテナイメージのスキャン: コンテナのベースイメージや含まれるパッケージ(Alpine、Debian、Ubuntuなど)のレイヤーごとの脆弱性を検出します。
- コール分析(Call Analysis): 脆弱性のある関数がプロジェクト内で実際に呼び出されているかを分析し、誤検知を削減します。
- ライセンススキャン: プロジェクトの依存関係のライセンス情報をチェックし、許可されたライセンス(SPDX形式)に準拠しているか確認します。
- オフラインスキャン: インターネット接続なしで、ローカルにダウンロードしたOSVデータベースを使用してスキャンを実行できます。
- 自動修復機能(Guided Remediation): 依存関係の深さ、最小深刻度、修正戦略、投資対効果などの基準に基づき、パッケージバージョンのアップグレードを提案します。
4. 開始手順・セットアップ
- 前提条件:
- OSに対応したプレビルドバイナリのダウンロード、またはGo環境 (
go install) が必要。 - アカウント作成やクレジットカードの登録は不要。
- OSに対応したプレビルドバイナリのダウンロード、またはGo環境 (
-
インストール/導入:
# Goを使用したインストール例 go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest - 初期設定:
- インストール後、特別な初期設定なしですぐにコマンドを利用可能。
- クイックスタート:
- カレントディレクトリをスキャンする場合:
osv-scanner scan source -r .
- カレントディレクトリをスキャンする場合:
5. 特徴・強み (Pros)
- OSV.devデータベースの活用: OSVデータベースはオープンソースエコシステム(Gitを含む)を広くカバーしており、各アドバイザリが権威あるソースから提供されているため、高品質です。
- 誤検知の少なさ: コール分析機能を備えており、実際に使用されている関数に基づく警告を行うため、ノイズが少なく実用的です。
- 多様なエコシステムのサポート: npm、pip、maven、cargo、go modules、composerなど11以上の言語エコシステムと19以上のロックファイルタイプに対応しています。
6. 弱み・注意点 (Cons)
- SaaS型一元管理機能の不在: OSSツールであるため、組織全体でのスキャン結果のダッシュボードや一元管理機能は標準では提供されていません。
- 自動修復機能のリスク: Guided Remediation(自動修復機能)は、未信頼のプロジェクトに対して実行するとパッケージマネージャーのスクリプトがトリガーされるリスクがあるため、信頼できるコードにのみ使用する必要があります。
- 日本語対応: UI(CLI)および公式ドキュメントは英語ベースであり、日本語による公式サポートは提供されていません。
7. 料金プラン
| プラン名 | 料金 | 主な特徴 |
|---|---|---|
| OSS版 | 無料 | 完全無料のオープンソースソフトウェア。機能制限なし。 |
- 課金体系: 無料
- 無料トライアル: 完全無料で利用可能。
8. 導入実績・事例
- 導入企業: OpenSSFやGoogleの支援を受けており、多くのオープンソースプロジェクトで採用されています。
- 導入事例: GitHub Actions等のCI/CDパイプラインに組み込まれ、プルリクエスト時の脆弱性チェックとして広く利用されています。
- 対象業界: ソフトウェア開発、クラウドネイティブ技術を利用するあらゆる業界。
9. サポート体制
- ドキュメント: 公式サイトにて、詳細なインストール手順、使用方法、機能解説が提供されています。
- コミュニティ: GitHubリポジトリ上でのIssuesを通じた活発なディスカッションと機能要望が行われています。
- 公式サポート: オープンソースプロジェクトであるため、専任のカスタマーサポート(SLAあり)は提供されません。
10. エコシステムと連携
10.1 API・外部サービス連携
- API: 脆弱性情報を取得するために OSV.dev API を利用し、依存関係解決やライセンススキャンには deps.dev API を利用しています。
- 外部サービス連携: GitHub Actions 用の公式アクション (
github.com/google/osv-scanner-action相当) が提供されており、容易にCIパイプラインに統合可能です。
10.2 技術スタックとの相性
| 技術スタック | 相性 | メリット・推奨理由 | 懸念点・注意点 |
|---|---|---|---|
| GitHub Actions | ◎ | 公式アクションが提供されており、簡単にワークフローへ統合可能 | 特になし |
| Go | ◎ | Go製ツールであり、Goモジュールのスキャンに強力に対応 | 特になし |
| npm / Yarn | ◎ | JavaScriptエコシステムのロックファイル解析や修復機能に優れている | 特になし |
| Docker | ◎ | レイヤーを意識したコンテナイメージのスキャンが可能 | 特になし |
11. セキュリティとコンプライアンス
- 認証: ツール自体の実行に認証は不要です。
- データ管理: スキャン時、パッケージ名、バージョン、エコシステム、ファイルハッシュが OSV.dev API および deps.dev API に送信されますが、ソースコード自体は送信されません。オフラインモード (
--offline) を使用することで、ネットワーク通信を完全に遮断してスキャンすることも可能です。 - 準拠規格: 開発元のGoogleやOpenSSFのセキュリティプラクティス(SLSA Level 3 等)に準拠してリリースが行われています。
12. 操作性 (UI/UX) と学習コスト
- UI/UX: CLIツールとして直感的で分かりやすいコマンド体系(
osv-scanner scan,osv-scanner fixなど)を採用しています。インタラクティブモードも備えており、修復の選択が容易です。 - 学習コスト: 基本的なスキャンコマンドは非常にシンプルであり、ドキュメントも整備されているため、学習コストは低いです。
13. ベストプラクティス
- 効果的な活用法 (Modern Practices):
- CI/CDパイプラインに組み込み、コードのコミットやプルリクエストごとに自動で依存関係の脆弱性スキャンを行う。
- オフラインモードやコール分析を活用して、環境に合わせたセキュアかつノイズの少ないスキャンを実現する。
- 陥りやすい罠 (Antipatterns):
- 信頼できないサードパーティのプロジェクトに対して、内容を確認せずに
osv-scanner fix(自動修復)を実行してしまうこと(任意のスクリプトが実行されるリスクがあります)。
- 信頼できないサードパーティのプロジェクトに対して、内容を確認せずに
14. ユーザーの声(レビュー分析)
- 調査対象: GitHub (スター数、Issue等の動向)
- 総合評価: 非常に高い注目を集めている(GitHubにて約9.4kスター)
- ポジティブな評価:
- 「高品質なOSV.devデータベースを直接活用できるため、結果の信頼性が高い」
- 「オフラインスキャンやライセンススキャンなど、実務で求められる機能が充実している」
- 「誤検知が少なく、コール解析による通知が実用的」
- ネガティブな評価 / 改善要望:
- 「特定のニッチなパッケージマネージャーへの対応を望む声がある」
- 「商用SaaSのようなGUIベースのダッシュボードが欲しい」
- 「より詳細な修復ガイダンスへの改善要望」
- 特徴的なユースケース:
- インターネット接続が制限されたセキュアな開発環境で、オフラインデータベースを利用した脆弱性スキャンを実施する。
15. 直近半年のアップデート情報
- 2026-03-25: v2.3.5 リリース(バグ修正および各種スキャン精度の向上)
- 2025-12-XX: v2 ベータリリースと自動修復(Guided Remediation)機能の追加
- 2025-10-XX: コール分析とライセンススキャン機能の強化
(出典: GitHub Releases )
16. 類似ツールとの比較
16.1 機能比較表 (星取表)
| 機能カテゴリ | 機能項目 | OSV-Scanner | Trivy | Grype | Syft |
|---|---|---|---|---|---|
| 基本機能 | 脆弱性スキャン | ◎ OSV.dev DB利用 |
◎ コンテナ、IaC等に幅広く対応 |
◯ 脆弱性マッチング |
× SBOM生成特化 |
| カテゴリ特定 | コンテナスキャン | ◯ ベースOSと依存関係に対応 |
◎ 高機能・高速 |
◯ 高速なローカルスキャン |
- |
| エンタープライズ | オフライン対応 | ◎ DBダウンロート可 |
◯ DBのキャッシュ可 |
◯ オフラインスキャン可 |
- |
| 非機能要件 | オープンソース | ◎ 機能制限なし |
◎ OSS版あり |
◎ OSS版あり |
◎ 機能制限なし |
16.2 詳細比較
| ツール名 | 特徴 | 強み | 弱み | 選択肢となるケース |
|---|---|---|---|---|
| OSV-Scanner | OSV.devをバックエンドとする公式スキャナー | 統一されたOSVフォーマットによる高品質なデータ、コール分析による誤検知削減機能 | エンタープライズ向けのダッシュボードや一元管理機能がない | 依存関係の脆弱性において、誤検知を減らし、かつ高品質なオープンソースデータを利用したい場合。 |
| Trivy | 幅広い対象をスキャンできる多機能スキャナー | セットアップが容易で多様な対象(コンテナ、Git、IaC)を高速にスキャン可能 | OSS版は同時実行やエンタープライズ機能に制限がある | CI/CDでコンテナやIaCの脆弱性スキャンを簡単に自動化したい場合。 |
| Grype | 脆弱性スキャナー(Anchore製) | 高速な脆弱性マッチング、Syftとの連携が強力 | スキャン結果のコンテキスト情報(コール分析等)はOSV-Scannerに譲る | SBOMベースで高速に脆弱性を確認したい場合。 |
| Syft | SBOM 生成ツール | コンポーネントの透明性確保、SBOM生成に特化 | 脆弱性スキャン自体は行わない | ソフトウェアの構成要素をリスト化して把握したい場合。 |
17. 総評
- 総合的な評価:
- OSV-Scannerは、GoogleやOpenSSFによって主導されるOSV.devデータベースの強みを最大限に活かした脆弱性スキャナーです。コール分析や自動修復(Guided Remediation)、オフラインスキャンなど、開発現場のニーズに応える強力な機能を備えており、オープンソースのセキュリティツールとして非常に高く評価できます。
- 推奨されるチームやプロジェクト:
- オープンソースライブラリを多用する開発チーム、セキュリティエンジニア、コンテナベースの開発を行っているプロジェクト。
- 選択時のポイント:
- オープンソースの依存パッケージの脆弱性を正確かつノイズ少なく特定したい場合にはOSV-Scannerが非常に適しています。一方、IaCのセキュリティチェックや統合的なリスク管理プラットフォームが必要な場合は、Trivyや商用のASPMツールなどとの併用を検討すると良いでしょう。