比較
CRACI vs Trivy
Trivyは汎用性の高いスキャナーで、指定した対象からSBOMも出力します。CRACIはビルドの実行中にSBOMを記録して監視を続けるため、自社でビルドするソフトウェアについてはスキャンを置き換えます。
更新日
結論
Trivyは、無料で使えるセキュリティツールの中でも特に有用なものの1つです。コンテナイメージ、ファイルシステム、リポジトリ、仮想マシンイメージ、Kubernetesを対象に、脆弱性、設定ミス、シークレット、ライセンスをスキャンし、副次的にSBOMも出力します。CRACIはGitHub Actionsのランナーで、各ビルドが取得したものを記録し、ビルドの接続先を制御し、出荷したものの脆弱性を追跡し続けます。根本的な違いは、Trivyがファイルからコンポーネント一覧を推定するのに対し、CRACIはそれを観測する点です。自社でビルドするソフトウェアのSBOMと依存関係の脆弱性については、CRACIがTrivyを置き換えます。Trivyがスキャンするそれ以外の対象には、以下の一覧から役割ごとにツールを選んでください。
| 機能 | CRACI | Trivy |
|---|---|---|
| ビルドの実行 | ジョブはCRACIランナー上で実行 | ステップまたはCLIとして実行 |
| ビルドから記録した依存関係 | 実際の取得を観測(キャッシュされたパッケージを含む) | ロックファイルまたはインストール済みパッケージのメタデータを読み取る |
| CycloneDXとSPDXのSBOM | すべてのビルドで生成、ジョブとキャッシュごとに完全性を表示 | 任意のスキャン対象から--formatで出力 |
| ランナーでのエグレスポリシー | デフォルト拒否または許可、フェイルクローズ | 対象範囲外 |
| 署名付きの来歴 | 署名付きの来歴なし | Cosignとの組み合わせでアテステーション |
| 出荷済みSBOMの監視 | 監視対象のSBOMを継続的に再評価 | 任意のスケジュールでtrivy sbomを再スキャン |
| トリアージと担当チームへの割り当て | ビルドとリポジトリをまたいで対応 | 実行ごとのスキャン結果 |
| 重大度のしきい値でCIを失敗させる | ポリシーゲートが検出結果に基づきビルドをブロック。しきい値は未記載 | --exit-codeと--severity |
| IaC、シークレット、ライセンスのスキャン | スキャナーを内蔵 | |
| 任意のイメージ、リポジトリ、クラスターのスキャン | 自ら実行するビルドを記録 | イメージ、ファイルシステム、リポジトリ、VM、Kubernetes |
| GitHub Actions以外 | 現在はGitHub Actions。GitLab CIとJenkinsはロードマップに掲載 | 任意のCIまたはローカルCLI |
| CRAのエビデンス | CycloneDXまたはSPDXのSBOM、APIによる記録、CRA通知の内容の準備に対応。レポートのエクスポートはなし | スキャン結果を自社で収集し、エビデンスに仕上げる必要があります。 |
| 料金 | 1vCPU分あたり$0.002(2 vCPUは$0.004)、秒単位で課金。月額料金なし、SBOMごとの課金なし | Apache-2.0のオープンソースで無料。 |
- 対応
- 一部対応
- 非対応
- ロードマップに掲載
Trivyの代替ツールが検討される理由
-
2026年3月のサプライチェーン侵害。Aqua Securityのアドバイザリ(CVE-2026-33634)は、2026年3月19日の悪意あるTrivy v0.69.4リリースと、改ざんされた
trivy-actionおよびsetup-trivyのタグ、続く3月22日の悪意あるDocker Hubイメージについて説明しています。注入されたコードはCIランナーから認証情報を窃取しました。Aquaは安全なバージョンを公開し、アクションを完全なコミットSHAに固定することを推奨しています。 - スキャンはトラッキングではない。Trivyは実行時に見つけたものを報告します。リポジトリやリリースをまたいで検出結果、担当者、ステータスを管理し、新しいアドバイザリが出るたびに出荷済みソフトウェアを再確認するのは、利用者に委ねられています。
- SBOMはファイルから推定される。ビルド前のスキャンはロックファイルを読み取ります。リポジトリにロックファイルがコミットされていなければ読み取れるものはほとんどなく、実際のインストールで解決されるバージョンはビルド時に決まります。
- 深さより幅。1つのバイナリで多くの役割をカバーします。Infrastructure as Codeやコンテナイメージなど、特定の領域でより多くを必要とするチームは、その役割を専用ツールに移すことがよくあります。
パイプラインがダウンロードして実行するスキャナーは、それ自体がソフトウェアサプライチェーンの一部であり、ジョブのシークレットのすぐそばで動きます。CRACIではランナーがSBOMを記録するため、自社でビルドするソフトウェアについてはダウンロードすべきスキャナーステップがありません。ランナーのエグレスポリシーで、ジョブ内の各ステップが到達できるホストを制限でき、各ジョブのネットワークトレースも記録されます。Aquaが推奨するアクションのコミットSHAへの固定は、CRACIでも同様に有効です。
Trivyが担う役割別の代替ツール
- 自社でビルドするソフトウェアのSBOMと依存関係の脆弱性:CRACI。ビルドからSBOMを記録し、再評価を続け、検出結果を担当チームに割り当てます。
- コンテナイメージとファイルシステムのスキャン:Grype。Anchoreのオープンソース脆弱性スキャナーで、コンテナイメージ、ファイルシステム、SBOMに対応し、優先順位付けにEPSSとKEVのデータを使います。SBOMにはSyftと組み合わせます。CRACIとSyft・Grypeの比較をご覧ください。
- Infrastructure as Code:CheckovはTerraform、OpenTofu、CloudFormation、Kubernetes、Helm、Dockerfile、Bicep、ARMテンプレートをスキャンし、シークレットとオープンソースパッケージもチェックします。KICSはTerraform、Kubernetes、Docker、CloudFormation、Ansible、Helm、Pulumiなどに対応します。どちらもApache-2.0のオープンソースです。
- シークレット:Gitleaksは、Gitリポジトリやファイル内のパスワード、APIキー、トークンを検出します。MITのオープンソースです。
- 修正アドバイス付きの商用スキャナー:CRACIとSnykの比較とSCAツールの比較をご覧ください。
各選択肢の詳細とGrype vs Trivyについては、Trivyの代替ツールの完全ガイドをご覧ください。
Trivyの強み
Trivyは自らを「包括的で汎用性の高いセキュリティスキャナー」と説明しており、その表現は正確です。1つのバイナリで、本来なら別々のツールが必要な複数の役割をカバーします。
- 多様な対象。コンテナイメージ、ファイルシステム、リモートGitリポジトリ、仮想マシンイメージ、Kubernetes。
- 多様なスキャナー。OSパッケージとソフトウェア依存関係、既知の脆弱性、Infrastructure as Codeの設定ミス、シークレット、ソフトウェアライセンス。
-
SBOMの入力と出力。
trivy fs --format cyclonedxまたは--format spdx-jsonでSBOMを出力し、trivy sbomで既存のSBOMの脆弱性をスキャンします。 - どこでも動作。Apache-2.0のオープンソースで、CLIとして動作し、GitHub ActionとKubernetesオペレーターも用意されています。
CRACIは、IaC、シークレット、クラスターのスキャンを一切行いません。Terraformプランのチェック、コミットされたトークンの検出、自社でビルドしていないサードパーティイメージのスキャンが必要なら、Trivyか上記のツールが適しています。
Demo: generating an SBOM and scanning it with Trivy
TrivyでSBOMを生成し、そこに記載されたコンポーネントの既知の脆弱性を報告するライブデモです。
Kubernetes Community Days Helsinki 2026でのPetteri Pulkkinen、Erika Marttinen、SBOMbastic: Getting Ready for Upcoming EU Cybersecurity Regulation in Software Supply Chainsの23:28~25:35。
CRACIが異なる点
Trivyはファイルを読み、CRACIはビルドを観測する
Trivyのドキュメントは、その方法を明確に説明しています。「対象がコードリポジトリのようなビルド前のプロジェクトの場合、Trivyはロックファイルなど、ビルドに使われるファイルを解析します」。コンテナイメージのようなビルド後の対象では、代わりにインストール済みパッケージのメタデータとバイナリを読み取ります。Node.jsのリポジトリなら、package-lock.json、yarn.lock、pnpm-lock.yaml、bun.lockが対象です。
この設計は合理的ですが、予測可能な限界があります。expressjs/express 5.2.1はロックファイルをコミットしておらず、anthropics/claude-codeリポジトリには依存関係マニフェストが一切ありません。そのため、どちらもビルド前のスキャンではTrivyが読み取れるものがありません。これはTrivyの失敗ではなく、ドキュメントどおりの動作です。実際のインストールで解決されるバージョンは、ビルド時に決まります。
CRACIは逆側から始めます。ジョブはruns-on: craciで実行され、パッケージを認識するプロキシが、ジョブがnpm、PyPI、RubyGems、Composer、Cargo、Go、Nix、OCI、apt、apk、Gitの各ソースとダウンロードプリセットから取り込むものを記録します。CIキャッシュから復元されたパッケージは、エビデンスを引き継ぎます。SBOM(CycloneDXまたはSPDX)は、ロックファイルの有無にかかわらず、ビルドが実際に使ったものを記述します。
記録が不完全なときはそう示す
CRACIのすべてのジョブとキャッシュには、完全性の状態があります。Complete、Complete with connections、Incomplete、Unavailable、Not recordedのいずれかです。空または内容の乏しいSBOMは、依存関係の少ないプロジェクトと同じに見えるのではなく、そのとおりに表示されます。
ビルドを制御する
CRACIはジョブを実行するため、ネットワークのエグレスポリシーを適用できます。デフォルト拒否またはデフォルト許可で、24種類の組み込みソフトウェアソースプリセットを備え、ジョブ開始前に検証され、フェイルクローズで動作します。エグレス制御はTrivyの対象範囲外です。APIはSBOM、ネットワークトレース、来歴を返します。CRACIは来歴に署名しません。署名については、Trivyのドキュメントが2つのツールを使う流れを示しています。TrivyがSBOMを書き出し、Cosignがそれをアテステーションとして署名します。
監視を続ける
Trivyは実行したときにスキャンします。CRACIはビルドとリポジトリをまたいで脆弱性を集約し、監視対象のSBOMを再評価し続けます。セキュリティチームは検出結果をトリアージし、修正を担当するチームに割り当てられます。ベンダーのSBOMも自社のビルドと並べて監視されます。CRACIのポリシーゲートはビルドをブロックできます。しきい値アラートはロードマップに掲載されています。
どこに何がデプロイされているかのインベントリ
CRACIのインベントリビューは、どのソフトウェアバージョンがどの製品にデプロイされているかを、グローバルに正確に示します。新たな脆弱性が公開されたとき、リリースノートやスプレッドシートからつなぎ合わせなくても、影響を受けるバージョンを使っている製品がわかります。
Trivyからの移行
CRACIでは、出荷するビルドについて、生成すべきSBOMも保守すべき依存関係スキャンもありません。ランナーがビルドの実行中にSBOMを記録し、ビルドの完了後もCRACIが新たな脆弱性がないか確認を続けます。
CRACIがしないことも明確にしておきます。Infrastructure as Code、Kubernetesクラスター、仮想マシンイメージはスキャンせず、シークレットや設定ミスも探さず、自社でビルドしていないイメージやソフトウェアもスキャンしません。しきい値アラートはロードマップに掲載されています。現在対応しているのはGitHub Actionsのみで、GitLab CIとJenkinsはロードマップに掲載されています。これらのいずれかでTrivyに頼っているなら、その用途にはTrivyを使い続けてください。
Cyber Resilience Actへの対応
CRAは製造業者に対し、SBOMを含めて各製品のコンポーネントを文書化し、出荷したものの脆弱性に対処して報告することを求めています。Trivyは脆弱性や設定ミスの発見とSBOMの生成で役立ちますが、リリースからSBOMまでのエビデンスの記録は自社で構築する必要があります。CRACIはビルドごとにSBOMを記録して成果物と結び付け、SBOMをCycloneDXまたはSPDXでエクスポートし、CRAの脆弱性通知の内容を準備します(提出はお客様が行います)。企業がより広範なCRAコンプライアンスプロセスに必要とするソフトウェアサプライチェーンの可視性とエビデンスのかなりの部分を自動化します。CRAとはとビルド時SBOM生成をご覧ください。
CRACIは現在、Linuxランナー上のGitHub Actionsに対応しています。GitLab CI、Jenkins、その他のCIシステムはロードマップに掲載されています。料金と脆弱性トラッキングをご覧ください。
CRACI vs Trivy:よくあるご質問
無料の選択肢、2026年3月の侵害、CRACIが置き換えるもの
Trivyの代替ツールとして最適なものは何ですか?
Trivyのどの役割を置き換えるかによって異なります。GitHub ActionsでビルドするソフトウェアのSBOMと依存関係の脆弱性については、CRACIがビルドからSBOMを記録し、その後も追跡を続けます。コンテナイメージのスキャンでは、Grypeがオープンソースの近い選択肢です。Infrastructure as Codeには、オープンソースのCheckovとKICSがあります。シークレットにはGitleaksがあります。Trivyのすべてを1つで置き換えられるツールはありません。
Trivyの無料の代替ツールはありますか?
あります。Grype(イメージ、ファイルシステム、SBOM)、CheckovとKICS(Infrastructure as Code)はApache-2.0のオープンソースで、Gitleaks(シークレット)はMITのオープンソースです。CRACIは有料製品で、ビルド分単位で課金され、月額料金はありません。
2026年3月の侵害後も、Trivyを安全に使えますか?
Aqua Securityのアドバイザリ(CVE-2026-33634)は、2026年3月19日の悪意あるTrivy v0.69.4リリースと、改ざんされたtrivy-actionおよびsetup-trivyのタグ、さらに3月22日の悪意あるDocker Hubイメージについて説明しています。Aquaは安全なバージョンを公開し、漏えいした可能性のあるシークレットのローテーションと、GitHub Actionsを完全なコミットSHAに固定することを推奨しています。ご利用のバージョンについてはアドバイザリをご確認ください。
TrivyとGrypeの違いは何ですか?
どちらもApache-2.0のオープンソーススキャナーです。Grypeはコンテナイメージ、ファイルシステム、SBOMの脆弱性に特化しており、SBOM生成にはSyftと組み合わせて使います。Trivyは1つのバイナリでより多くの対象とスキャナーをカバーし、Infrastructure as Code、シークレット、ライセンス、仮想マシンイメージ、Kubernetesにも対応します。
CRACIはTrivyを置き換えられますか?
GitHub ActionsでビルドするソフトウェアのSBOMと依存関係の脆弱性については、置き換えられます。CRACIはビルドの実行中にSBOMを記録し、脆弱性データと照らして再評価を続けます。CRACIは、Infrastructure as Code、Kubernetesクラスター、仮想マシンイメージ、シークレット、設定ミス、自社でビルドしていないイメージはスキャンしません。これらにはTrivyや他のスキャナーを引き続きお使いください。
CRACIはTerraformなどのInfrastructure as Codeをスキャンしますか?
いいえ。CRACIはビルドが取得するものを記録し、出荷するものの脆弱性を追跡します。TerraformなどのInfrastructure as Codeには、Trivyの設定ミススキャナーか、CheckovやKICSなどの専用ツールをお使いください。
Trivyの出力の隣に、記録されたSBOMを
デモをご予約いただければ、お客様のGitHub ActionsワークフローをCRACIで実行し、そのSBOMを同じコミットに対するTrivyのレポートと比較します。
デモを予約