読む・知る
Trivy の紹介
このソフトでできること
- コンテナイメージに含まれる対応パッケージの脆弱性情報を確認する。
- 手元のプロジェクトを検査し、対応する依存関係ファイルを調べる。
- 検査対象とスキャナーを選び、設定上の問題やシークレットなどを調べる。
- 対応する形式でSBOMを作成し、ソフトウェアの構成を確認する。
SBOMはソフトウェアに含まれる部品情報を整理したものです。すべての機能がどの対象にも同じ範囲で使えるわけではありません。検査前に、使うファイルやパッケージ形式が対応しているか確認します。 公式の機能案内 ・ ファイルシステム検査
主な特徴
対象に合わせて検査方法を選べる
コンテナイメージならimage、ローカルのファイルやプロジェクトならfsなど、対象に合わせたコマンドを選びます。イメージを取得して調べることと、公開Webサイトへリクエストを送って検査することは異なります。Trivyを導入しただけで、インターネット上のPHPサイトを網羅的に調べられるわけではありません。
PHPのComposerプロジェクトにも対応
PHPでは、composer.lockやinstalled.jsonから依存パッケージを検出できます。依存関係のツリーを正確に表示する場合は、同じ場所にcomposer.jsonも必要です。公式の対応表では開発用依存関係が既定で除外されるため、検査範囲を理解して使います。 PHPの対応範囲
修正後の再確認にも使える
問題が報告されたら、パッケージやベースイメージを更新し、再ビルドした対象を改めて検査できます。レポートを記録しておくと、どの構成をいつ確認したか追いやすくなります。ただし、検査対象のイメージと、本番で動いているコンテナが一致していることは別途確認が必要です。
対応OSと料金
| 項目 | 内容 |
|---|---|
| Windows | 公式Releaseで64ビット向けZIPを案内 |
| macOS | 公式導入文書にHomebrewの手順を掲載 |
| Linux | 公式パッケージやReleaseの配布物を案内 |
| 操作方法 | 主にコマンドライン |
| 本体の料金 | 無料 |
| ライセンス | Apache-2.0 |
OSに加え、CPUと配布形式を確認します。インストール文書には公式とコミュニティ提供の方法が区別されているため、利用する経路を確認してください。コマンドやレポートは英語の項目名も参照して操作します。 公式インストール文書
TrivyのオープンソースCLIとAquaの商用サービスは別です。本体の利用に商用プラットフォームの契約が必須という意味ではありません。再配布や改変ではApache-2.0のライセンスと表示条件を確認します。 公式ライセンス
使い方
1 公式の導入先とセキュリティ情報を確認する
公式文書からOSに合った配布物を選び、案内されたチェックサムや署名の確認手順を使います。古いブログに掲載された固定版や、出所を確認できないミラーからの導入は避けます。導入後は次のように起動を確認できます。
trivy --version 2 手元のプロジェクトの依存関係を調べる
自分が管理するプロジェクトのディレクトリへ移動し、脆弱性検査を選んで実行します。
trivy fs --scanners vuln . PHPプロジェクトでは、対象にcomposer.lockなどの対応ファイルが含まれるかを確認します。初回やデータ更新時には、脆弱性データベースなどを取得する通信が発生します。独自のシークレット検査などまで同時に行いたい場合は、公式文書でスキャナーの選択を確認してください。 ファイルシステムの公式手順
3 コンテナイメージを調べる
trivy image --scanners vuln IMAGE IMAGEは、そのまま実行する名前ではなく、自分が管理する実際のイメージ名や固定したダイジェストへ置き換える部分です。可変タグだけでなく、調べたイメージを後で特定できる情報も記録しておきます。レジストリからの取得が必要な構成では、認証や通信先も確認します。 イメージ検査の公式手順
4 結果を読み、更新した対象を再検査する
対象パッケージ、導入済みバージョン、脆弱性情報、修正版の情報などを確認します。修正が提供されている場合は、アプリケーションとの互換性を確認して更新・再ビルドし、再検査します。修正版がない項目や、検出対象外の構成は別に扱い、単に警告を非表示にして完了としないようにします。
安全性と注意点
ダウンロード元と署名を確認する
Trivyの公式公告には、2026年3月の供給網への攻撃が記録されています。CLIの特定版、GitHub Actionsのタグ、特定のコンテナ配布物が対象となったため、CLI、Action、イメージを同じバージョン管理と考えず、利用する配布物ごとに確認する必要があります。
導入時は 公式のセキュリティ公告 と 事件に関する公告 を確認し、現在の配布物と検証手順を使います。過去の事件で案内された一時的な回避版を、現在の推奨版として固定しないでください。
検出結果の範囲を理解する
ソースから独自にビルドしたPHPと、対応するOSパッケージのPHPでは、取得できるバージョン情報や検出範囲が異なります。データベースに情報がない問題や、解析対象外の構成もあります。警告が表示されないことだけで、PHP本体の修正完了やシステム全体の安全性は判断できません。
プロジェクトや認証が必要なイメージを扱う場合は、設定したデータの取得元・送信先も確認します。外部の検査サービスへ機密コードを送る使い方と、手元のCLIでの検査を混同しないようにします。
向いている人
- コンテナイメージの更新前後で、依存パッケージを確認したい人。
- PHPのComposerプロジェクトなど、対応する依存関係を検査したい人。
- 検査結果を読み、パッケージ更新や再ビルドまで進められる開発・保守担当者。
向いていない人
- WebサイトのURLを入力するだけのGUI診断ツールを探している人。
- 検出された問題の修正も自動的にすべて任せたい人。
- 検査範囲を確認せず、警告がないことを安全保証として使いたい人。
関連ソフト
PHP の実行環境の更新は、その配布元に従って行います。ComposerはPHPライブラリの管理、ZAPはWebアプリケーションの通信や動作を調べるツールで、Trivyとは役割が異なります。
FAQ
無料で使えますか
オープンソースのTrivy CLIは無料です。商用サービスの利用条件は別に確認します。
PHP本体の脆弱性をすべて検出できますか
保証できません。パッケージの形式や取得できる情報によって検出範囲が変わります。配布元の修正公告や、実際の実行環境も確認してください。
PHPやコンテナの更新も実行してくれますか
ここで紹介する検査コマンドは更新作業の代わりにはなりません。レポートを確認し、更新・再ビルド・実行環境への反映を別途行います。
公式ダウンロード
公式の旧版シークレット検査GIFから抽出した参考フレーム。現在のPHP検査・本記事の実測ではありません。
編集部作成の操作説明図。実行画面・実測結果ではありません。
