OSV-Scanner

プロジェクトが使っている依存ライブラリを読み取り、OSV.dev の脆弱性データベースと照らし合わせる Google 製のコマンドラインツール。

cat osv-scanner/meta.yml確認日 2026-10-24

安全性

影響範囲 手元だけ自分の端末の中で完結し、外には何も送らない
管理者権限
不要
検証環境
不要

使い方

用途
防御
難易度
初級
形態
コマンドライン
対応環境
Linux / macOS / Windows / Docker

信頼性

リポジトリ
google/osv-scanner
ライセンス
自由に使えるApache-2.0
GitHub
スター11,2642026-10-25 時点
メンテ状況
更新が続いている最終更新 2026-10-24
目次
  1. はじめに
  2. OSV-Scanner でできること
  3. OSV.dev に送るもの
  4. 安全な試し方:自分のプロジェクトを調べる
  5. 主な使い方
  6. Trivy との違い
  7. 注意点
  8. 次に読む
  9. 出典

OSV-Scanner は、プロジェクトの package-lock.json や go.mod などから依存ライブラリの一覧を読み取り、既知の脆弱性があるものを教えてくれるツールです。自分のプロジェクトのフォルダを指定して 1 回実行するだけで結果が出ます。

この記事は、npm や pip などのパッケージを使って開発している人に向けています。読み終えると、次のことができるようになります。

  • 自分のプロジェクトの依存ライブラリに既知の脆弱性がないか調べる
  • OSV-Scanner が外部に何を送るのかを理解し、必要ならオフラインで使う
  • コミット前に自動で調べる(pre-commit)

OSV-Scanner でできること

OSV-Scanner の動きは 2 段階です。まず、プロジェクトやコンテナイメージから使っているパッケージを取り出します。次に、そのパッケージを脆弱性データベースの OSV.dev と照らし合わせます。

サブコマンド 調べるもの
scan source ソースコードのフォルダ。scan だけでもこれになります
scan image コンテナイメージ
fix 脆弱性を直すためのバージョンアップ案を出します(実験的な機能)

対応する言語は C/C++、Go、Java、JavaScript、Python、Rust など、パッケージマネージャーは npm、pip、yarn、Maven、Go modules、Cargo などです。対応している lockfile の一覧は公式ドキュメントにあります。

しないことOSV-Scanner は脆弱性のあるパッケージを教えるだけで、自動では直しません(fix コマンドを使ったときを除きます)。また、照らし合わせるのはデータベースに載っている既知の脆弱性だけです。自分で書いたコードのバグは見つけません。

OSV.dev に送るもの

公式 README によると、通常の実行では OSV.dev の API に次の情報を送ります。

  • パッケージの名前
  • バージョン
  • エコシステム(npm、PyPI など)
  • C/C++ のコードを調べるときのファイルのハッシュ値

依存関係の解決やライセンスの確認には deps.dev の API も使い、パッケージ名、バージョン、エコシステムを送ります。どちらの場合も、ソースコードそのものは送りません。

社外に依存ライブラリの一覧を出したくないときは、オフラインモードを使います。--offline を付けると、手元にダウンロードしたデータベースだけで照合し、プロジェクトや依存関係の情報をどこにも送りません。

安全な試し方:自分のプロジェクトを調べる

  1. リリース一覧から、使っている OS 用のファイルをダウンロードします。Windows では winget install Google.OSVScanner、macOS では brew install osv-scanner でも入ります。

  2. 自分のプロジェクトのフォルダを指定して実行します。-r を付けると、サブフォルダの中まで調べます。

    osv-scanner scan source -r ./my-project
  3. 結果の表を見ます。OSV URL の列に脆弱性の詳細ページ、FIXED VERSION の列に修正済みのバージョンが出ます。-- と表示されていれば、まだ修正版がありません。

外部に何も送らずに試したいときは、次のように実行します。1 回目にデータベースをダウンロードし、以降は手元のデータだけで照合します。

osv-scanner --offline --download-offline-databases ./my-project

主な使い方

やりたいこと コマンド
lockfile を 1 つだけ調べる osv-scanner scan -L package-lock.json
結果を JSON で出す osv-scanner scan -L package-lock.json --format json
結果をファイルに保存する osv-scanner scan -L package-lock.json --output-file scan-results.txt
結果を HTML にしてブラウザで見る osv-scanner scan -L package-lock.json --serve
コンテナイメージを調べる osv-scanner scan image my-image-name:tag
依存ライブラリのライセンスを確かめる osv-scanner --licenses path/to/repository

--serve は、HTML のレポートを手元のポート 8000 で表示します。

終了コードは、脆弱性がなければ 0、見つかれば 1、調べるファイルが見つからなければ 128 です。CI で使うときの判定に使えます。

pre-commit にも対応しています。.pre-commit-config.yaml に https://github.com/google/osv-scanner/ のフック osv-scanner を追加すると、コミット前に依存ライブラリを調べられます。

Trivy との違い

Trivy も依存ライブラリの脆弱性を調べられます。大きな違いは、照合のしかたと調べる範囲です。

OSV-Scanner Trivy
照合のしかた 通常は OSV.dev の API に問い合わせる。--offline で手元のデータベースを使う 脆弱性データベース(trivy-db)を手元にダウンロードして照合する
調べる範囲 依存ライブラリの脆弱性とライセンスが中心 脆弱性に加えて、設定ミス、秘密情報、ライセンスも調べる

依存ライブラリだけを手早く調べたいなら OSV-Scanner、コンテナや設定ファイルもまとめて調べたいなら Trivy、という使い分けができます。

注意点

  • 調べる対象は、自分のプロジェクトか、調べる許可を得たプロジェクトに限ってください。
  • fix コマンドは、信頼できないプロジェクトで使わないでください。公式ドキュメントは、パッケージマネージャーがスクリプトを実行したり、プロジェクトに書かれた外部のレジストリにつないだりすることがあると注意しています。
  • 社外秘のプロジェクトでは、パッケージ名とバージョンが OSV.dev に送られることを確かめてから使ってください。送りたくなければ --offline を使います。

次に読む

出典

  1. 公式リポジトリ README(データの送信先とプライバシー)github.com/google/osv-scanner
  2. ドキュメント:インストールgoogle.github.io/osv-scanner/installation/
  3. ドキュメント:使い方google.github.io/osv-scanner/usage/
  4. ドキュメント:オフラインモードgoogle.github.io/osv-scanner/usage/offline-mode/
  5. ドキュメント:出力形式と終了コードgoogle.github.io/osv-scanner/output/
  6. Trivy 公式リポジトリ READMEgithub.com/aquasecurity/trivy
  7. Trivy ドキュメント:データベースtrivy.dev/docs/latest/guide/configuration/db/

確認日 2026-10-24

似たツール

Gitleaks

影響範囲 手元だけ
gitleaks/gitleaks

Git リポジトリやファイルに紛れ込んだパスワード、API キー、トークンなどの秘密情報を見つけるコマンドラインツール。

用途
防御
形式
コマンドライン
難易度
初級
ライセンス
自由に使えるMIT
分類
脆弱性スキャン
更新が続いているスター30,315最終更新 2026-10-23
Gitleaksの解説を読む

Trivy

影響範囲 手元だけ
aquasecurity/trivy

コンテナイメージやコード、Kubernetes の脆弱性・設定ミス・埋め込まれた秘密情報を見つけるスキャナー。

用途
防御
形式
コマンドライン
難易度
初級
ライセンス
自由に使えるApache-2.0
分類
脆弱性スキャン/コンテナ・クラウド
更新が続いているスター38,703最終更新 2026-10-23
Trivyの解説を読む

Vuls

影響範囲 外に届く
future-architect/vuls

サーバーに入っているパッケージを調べ、既知の脆弱性(CVE)に当たるものを一覧にする脆弱性スキャナー。エージェントを入れずに使えます。

用途
防御
形式
コマンドライン
難易度
中級
ライセンス
条件つきGPL-3.0
分類
脆弱性スキャン
更新が続いているスター12,302最終更新 2026-10-21
Vulsの解説を読む