Trivy

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

cat trivy/meta.yml確認日 2026-10-25

安全性

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

使い方

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

信頼性

リポジトリ
aquasecurity/trivy
ライセンス
自由に使えるApache-2.0
GitHub
スター38,7032026-10-25 時点
メンテ状況
更新が続いている最終更新 2026-10-23
目次
  1. はじめに
  2. Trivy でできること
  3. インストール
  4. 安全な試し方:手元のプロジェクトを調べる
  5. 結果を絞り込む
  6. 注意点
  7. 次に読む
  8. 出典

Trivy を使うと、自分たちが使うコンテナイメージやソースコードに、既知の脆弱性や API キーなどの秘密情報が紛れていないかを調べられます。調べる相手は自分の手元にあるファイルなので、最初の 1 本として試しやすいツールです。

この記事は、Docker や npm などで依存ライブラリを使って開発している人に向けています。読み終えると、次のことができるようになります。

  • 手元のプロジェクトにある依存ライブラリの脆弱性を一覧にする
  • 深刻度で結果を絞り、修正版があるものから手を付ける
  • コンテナイメージを調べる

Trivy でできること

Trivy は「どこを調べるか(ターゲット)」と「何を探すか(スキャナー)」を組み合わせて使います。

調べる場所 探すもの
コンテナイメージ OS パッケージと依存ライブラリの一覧(SBOM)
ファイルシステム(手元のフォルダ) 既知の脆弱性(CVE)
Git リポジトリ(リモート) IaC の設定ミス
仮想マシンのイメージ 秘密情報(API キーなど)
Kubernetes ソフトウェアのライセンス

左右の列は 1 対 1 ではありません。たとえば手元のフォルダに対して、脆弱性・秘密情報・設定ミスをまとめて探せます。

しないことTrivy は既知の問題を探す道具です。見つかった脆弱性が自分の使い方で本当に悪用できるかまでは判断しません。また、相手のサーバーへ攻撃を送ることもありません。

インストール

公式のインストールページに方法がまとまっています。代表的なものは次のとおりです。

  • macOS・Linux:Homebrew で brew install trivy
  • Debian・Ubuntu、RHEL・CentOS:公式のパッケージリポジトリを追加して入れる
  • Windows:リリースページから trivy_<バージョン>_windows-64bit.zip を入手し、展開する
  • Docker:公式イメージ aquasec/trivy を使う

インストールしたら trivy --version でバージョンが表示されるか確かめます。

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

  1. 調べたいプロジェクトのフォルダに移動します。

  2. 次のコマンドで、脆弱性・秘密情報・設定ミスをまとめて調べます。

    trivy fs --scanners vuln,secret,misconfig .
  3. 初回は脆弱性のデータベースをダウンロードするので、少し時間がかかります。終わると、見つかった問題が表で表示されます。

Trivy が外に出す通信は、主にこのデータベースと設定ミスのチェック定義の取得です。どちらも mirror.gcr.io か ghcr.io から取ってきます。2 回目からは手元のキャッシュを使い、--skip-db-update を付ければデータベースを更新しません。依存関係を特定するために API へ問い合わせることもあり、これは --offline-scan で止められます。

結果を絞り込む

最初の結果は件数が多くなりがちです。次のオプションで、今すぐ手を付けるものに絞ります。

オプション すること
--severity HIGH,CRITICAL 深刻度が HIGH と CRITICAL のものだけ表示する
--ignore-unfixed 修正版が出ているものだけ表示する
--exit-code 1 問題が見つかったら終了コード 1 で終わる(CI で失敗させたいとき)
-f json -o 結果.json 結果を JSON でファイルに保存する

コンテナイメージは trivy image <イメージ名> で調べます。たとえば trivy image --severity HIGH,CRITICAL python:3.4-alpine は、古い Python イメージの深刻な脆弱性だけを表示します。

注意点

  • 2026 年 3 月に、Trivy の配布物そのものが改ざんされました。 盗まれた認証情報で、悪意のある v0.69.4 のリリースと、GitHub Actions の trivy-action・setup-trivy のタグ、Docker Hub の v0.69.5 と v0.69.6 のイメージが公開されました。どれも数時間から半日ほどで取り除かれています。その期間にこれらを使った CI や端末がある場合は、公式アドバイザリ(GHSA-69fq-xp46-6x23)で影響を確かめ、そこから触れられた秘密情報を入れ替えてください。今後も、バージョンを固定し、イメージはダイジェストで指定すると、差し替えの影響を受けにくくなります。
  • 見つかった件数だけで慌てないでください。実際に使っている機能か、外から届く場所にあるかで、急ぐべきかが変わります。
  • 秘密情報のスキャンで見つかったキーは、リポジトリから消すだけでは足りません。履歴に残るので、キー自体を無効にして作り直します。

次に読む

出典

  1. 公式リポジトリ(README)github.com/aquasecurity/trivy
  2. ドキュメント:インストールtrivy.dev/docs/latest/getting-started/installation/
  3. ドキュメント:結果の絞り込みtrivy.dev/docs/latest/guide/configuration/filtering/
  4. ドキュメント:データベースtrivy.dev/docs/latest/guide/configuration/db/
  5. ドキュメント:trivy filesystem のオプションtrivy.dev/docs/latest/guide/references/configuration/cli/trivy_filesystem/
  6. セキュリティアドバイザリ GHSA-69fq-xp46-6x23(2026 年 3 月のサプライチェーン侵害)github.com/advisories/GHSA-69fq-xp46-6x23

確認日 2026-10-25

似たツール

Gitleaks

影響範囲 手元だけ
gitleaks/gitleaks

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

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

OSV-Scanner

影響範囲 手元だけ
google/osv-scanner

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

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

Prowler

影響範囲 外に届く
prowler-cloud/prowler

AWS、Azure、Google Cloud などのクラウドの設定を読み取り、セキュリティの基準に合っていない箇所を一覧にする監査ツール。

用途
診断・監査
形式
コマンドライン
難易度
中級
ライセンス
自由に使えるApache-2.0
分類
コンテナ・クラウド
更新が続いているスター15,094最終更新 2026-10-25
Prowlerの解説を読む