Trivyとは?
Trivyは、あなたが出荷するものからセキュリティ上の問題を探す単一のGoバイナリです。対象はコンテナイメージ、ファイルシステム、リモートのGitリポジトリ、仮想マシンイメージ、Kubernetesクラスターです。スキャナーはOSパッケージと言語の依存関係にある既知の脆弱性(CVE)、Terraform、Dockerfile、Helmチャート、Kubernetesマニフェストの設定ミス、ハードコードされたシークレット、ソフトウェアライセンスを見つけ、SBOMも書き出します。
AI固有の機能はありませんが、AIスタックの大半は普通のソフトウェアです。CUDAとPythonの上に作ったモデル配信用イメージ、数百のパッケージを並べた依存ファイル、そしてそれをデプロイするTerraformやHelmです。Trivyはこの3つを同じコマンドラインで調べ、シークレットスキャナーにはHugging Faceのアクセストークン用のルールがあります。別のプラグインtrivy-mcpはTrivyをMCPサーバーとして動かし、コーディングエージェントからスキャンを依頼できるようにします。
TrivyはApache-2.0で、Aqua Securityが保守しています。同社はそのフォークを基にした商用プラットフォームを販売しています。公式GitHub Action(trivy-action)、Kubernetesオペレーター、VS Code拡張などと連携します。
Trivyは使う価値が あるか?
Trivyは、AIシステムのうちモデル以外の部分を調べる無料スキャナーとして最も守備範囲が広いツールです。1つのバイナリで、vLLMやPyTorchのイメージのCVE、Pythonのロックファイルにある脆弱なパッケージ、Terraformで公開のまま残されたS3バケット、誤ってコミットされたAPIキーまでカバーします。GitHubのスターは約39,100、数週間ごとにリリースがあり(v0.76.2は2026年11月5日に公開)、多くのCIパイプラインで標準になっています。JSON、SARIF、CycloneDXの出力はたいていのダッシュボードに取り込めます。
AIの仕事で役立つ習慣は、自分のコードだけでなく配信用イメージもスキャンすることです。GPU用のベースイメージは大きく、古いパッケージが紛れ込みやすく、Trivyはそれをレイヤーごとに報告します。一方、モデルの重みにpickleの悪用コードがないかは調べず、プロンプトのテストやエージェントの評価もしません。それはgarak、PyRIT、スキルスキャナーの役目です。trivy-mcpプラグインを使えば、Claude Desktop、Cursor、VS Codeから自然な言葉でファイルシステム、イメージ、リポジトリのスキャンを頼めます。ただし規模は小さく(スター58)、2025年12月17日のv0.0.20以降リリースがなく、Aquaのキーを使うと結果をAquaのプラットフォームに送ります。
注意点:Trivyは、のちにLiteLLMを襲ったTeamPCPキャンペーンの入口でした。Aquaのアドバイザリー(CVE-2026-33634)によると、2月下旬に特権トークンを手に入れた攻撃者は、3月1日の公表後の認証情報ローテーションが一斉に行われなかったため、アクセスを保ち続けました。2026年3月19日、攻撃者は悪意あるTrivy v0.69.4を公開し、GitHub、GHCR、ECR Public、Docker Hub、debとrpmのリポジトリで約3時間配布されました。さらにtrivy-actionの77個のタグのうち76個(約12時間)とsetup-trivyの7個すべてのタグ(約4時間)を強制プッシュで書き換え、CIランナーのメモリをダンプしてシークレットを偽ドメインに送るコードに差し替えました。3月22日には別途盗んだ認証情報でイメージ0.69.5と0.69.6をDocker Hubに上げ、約10時間公開されていました。悪意あるコードがTrivyのメインブランチに入ったことはありません。LiteLLMは、3月24日に自社リリースの汚染に使われたPyPIトークンは、自社CIパイプラインで動いていたTrivyを通じて奪われたと説明しています。
Aquaは不正な成果物を削除し、trivy-actionのタグをvの接頭辞付きで元のコミットを指す形で再公開し、Docker Hubのlatestタグを0.69.3に戻し、侵害の痕跡情報と署名の確認手順を公開して、インシデント対応企業のSygniaを起用しました。別のフォークからビルドしている商用プラットフォームは影響を受けていないとしています。ここから導かれるのは、CIで使うセキュリティツール全般の原則です。アクションは完全なコミットSHAに、イメージはダイジェストに固定し、スキャナーをジョブ内のすべてのシークレットを読めるコードとして扱うことです。
結論:スキャナーは退屈であることで居場所を得るもので、Trivyは良い意味で退屈です。速く、広く、無料です。GrypeとSnykも似た範囲をカバーしますが、3月の事件は乗り換えではなく固定を勧める理由です。
真価を発揮する場面
Kubernetes上でvLLMを運用するMLプラットフォームエンジニア
配信用イメージがクラスターに届く前に、含まれるCVEを把握したい
CIでビルドしたイメージにtrivy imageを実行し、修正版のあるHIGHとCRITICALで失敗させ、SARIFをGitHub code scanningにアップロードします。無料です。脆弱性データベースはキャッシュしない限り実行ごとにダウンロードされます。
AWSでRAGアプリを出す2人のスタートアップ
Terraformが適用する前に、公開バケットや開いたセキュリティグループを見つけたい
Terraformのフォルダーにtrivy configをかければ数秒で設定ミスを指摘し、trivy fs --scanners secretはHugging Faceのトークンを含むコミット済みのキーを探します。アカウントもライセンスも不要です。
2026年3月の事件を受けたセキュリティ責任者
可変タグを二度と信用せずにTrivyをCIで使い続けたい
trivy-actionを完全なコミットSHAに、イメージをダイジェストに固定し、Aquaのアドバイザリーにある方法でcosignを使ってリリース署名を確認し、2026年3月19日と20日にパイプラインが露出させた可能性のあるシークレットをすべてローテーションします。