比較
ソフトウェア構成分析(SCA)ツールおすすめ13選(2026年版)
ソフトウェア構成分析(SCA)ツールは、コードに含まれるオープンソースのコンポーネントを特定し、既知の脆弱性やライセンスリスクを指摘します。ここでは9つの商用SCAツールと4つの無料ツールを取り上げ、その違いと、ビルドをスキャンするのではなく記録するCRACIがそれらとどう組み合わさるかを解説します。
更新日
このページの対象読者
このページは、SCAツールを選定しているチームや、現在のツールがまだ合っているかを確認したいチーム向けです。CRACIは当社の製品であることを踏まえてお読みください。他の製品に関する記述はすべて各ベンダー自身のドキュメントに基づいており、ほとんどの製品にはより詳しいCRACIとの比較ページがあります。
最初にお伝えしておくと、CRACIは従来の意味でのSCAスキャナーではなく、記録ツールです。GitHub Actionsのジョブを実行し、ジョブが取得したものを記録します。SCAツールを置き換えるものではなく、SCAツールと並べて使うことを想定しています。
SCAツールの役割
ほとんどのSCAツールは同じ手順をたどります。違いは、それぞれの手順をどれだけうまくこなすかです。基本については、ソフトウェア構成分析とは、SCAスキャンの仕組み、SASTとSCAの違い、到達可能性分析をご覧ください。
- コンポーネントを特定する。マニフェストとロックファイルを読み取る、ソースコードを解析する、またはバイナリのフィンガープリントを取得して、直接の依存関係と推移的依存関係を列挙します。
- 脆弱性を照合する。各コンポーネントとバージョンを、NVD、GitHub Advisory Database、OSVなどのデータベースと照合します。
- ライセンスをチェックする。ポリシーに照らして確認します。
- 優先順位を付ける。重大度、EPSSなどのエクスプロイトデータ、そして多くのツールでは到達可能性によって検出結果をランク付けします。
- 修正する。アップグレードを提案するか、プルリクエストを作成します。
- 監視とレポート。新たな脆弱性を通知し、SBOMをエクスポートします。
最初の手順がその後のすべてを決めます。ツールが特定しなかったコンポーネントは、照合も、優先順位付けも、SBOMへの記載もできません。そのため、以下の表の最初の行では、各ツールのコンポーネントリストがどこから来るのかを問うています。基本については、ソフトウェア構成分析とは何かと、SASTとの違いをご覧ください。
選び方
機能一覧よりも、次の問いのほうが早くツールを見分けられます。
- マージ前か、リリース後か。SCAツールはプルリクエストやIDEで力を発揮します。出荷したリリースに何が含まれていたかが本当の問いなら、ビルドの記録が必要です。
- 依存関係だけか、自社のコードもか。これらの製品の多くは現在SASTを同梱しています。シークレット、IaC、コンテナ、クラウドを追加するものもあります。
- どれだけのアラートノイズを許容できるか。自社のコードが脆弱な関数を呼び出せるかを確認する到達可能性分析は、複数のベンダーが競い合う領域です。
- 不正なパッケージを入口で止める必要があるか。リポジトリファイアウォールやパッケージプロキシは、ダウンロード前にブロックします。スキャナーは事後に報告するだけです。
- どのCIを使っているか。ここで取り上げるSCAツールの多くは、さまざまなCIシステムに対応します。CRACIは現時点ではGitHub Actionsのみに対応しており、GitLab CIとJenkinsはロードマップに掲載されています。
- 使用している言語とビルドシステムに対応しているか。モノレポや、どのロックファイルにも記述されていないビルドの部分を含め、出荷するすべてのエコシステムを確認してください。
- 何を提出する必要があるか。顧客やEUのCyber Resilience ActがリリースごとのSBOMを求める場合は、形式、どのプランにエクスポートが含まれるか、リストが不完全なときにツールがそれを知らせるかを確認してください。
- どのように支払いたいか。開発者単位、コミッター単位、コントリビューター単位、プラン単位、または見積もり。
一覧比較
10列は1つの表に収まらないため、製品を2つに分けています。どちらの表も同じ行を使っています。「記載なし」は、引用したベンダーのページにどちらとも書かれていないことを意味します。料金は2026年9月時点のものです。
エンタープライズ向けSCA・AppSecスイート
| 機能 | CRACI | Sonatype | Black Duck | Mend.io | Checkmarx One |
|---|---|---|---|---|---|
| ビルド実行中に依存関係を記録 | ランナー上のパッケージを認識するプロキシ | ビルド出力をスキャン | コードとバイナリをスキャン | ビルド後にスキャン | アップロードされたソースアーカイブ |
| ビルドのネットワークエグレスポリシー | フェイルクローズ | ||||
| 成果物の署名付き来歴 | 署名付きの来歴なし | 記載なし | 記載なし | 記載なし | 記載なし |
| SBOMのエクスポート | 完全性を明示 | ||||
| 継続的な監視 | SBOM Manager | 記載なし | |||
| 到達可能性による優先順位付け | |||||
| 自社コードのSAST | 記載なし | Coverity | Mend SAST | ||
| ライセンスのスキャンまたはポリシー | ライセンスポリシーでビルドをブロック可能 | ||||
| 悪意のあるパッケージのブロック | パッケージのブロックリスト | Repository Firewall | フラグ付け | 検出 | ビルドをブロック可能 |
| GitHub Actions以外のCI | GitLab CIとJenkins | ||||
| 料金 | 1vCPU分あたり$0.002(2 vCPUは$0.004)、秒単位の従量課金。月額料金なし | Guide Proは年額$1,200から、Firewall Proは年額$4,800から | 見積もり | 開発者1人あたり年額最大$1,000 | 見積もり |
- 対応
- 一部対応
- 非対応
- ロードマップに掲載
開発者ファースト型・プラットフォーム型ツール
| 機能 | CRACI | Snyk | Endor Labs | Semgrep | GitHub (GHAS) | Aikido |
|---|---|---|---|---|---|---|
| ビルド実行中に依存関係を記録 | ランナー上のパッケージを認識するプロキシ | マニフェストとロックファイル | ソースコードを解析 | コードから依存関係を読み取る | マニフェストと送信されたデータ | マニフェストとロックファイル |
| ビルドのネットワークエグレスポリシー | フェイルクローズ | |||||
| 成果物の署名付き来歴 | 署名付きの来歴なし | 記載なし | endorctl | 記載なし | Artifact attestations | 記載なし |
| SBOMのエクスポート | 完全性を明示 | Enterpriseプランのみ | CycloneDX | SPDX | ||
| 継続的な監視 | 記載なし | Dependabotアラート | 記載なし | |||
| 到達可能性による優先順位付け | 関数レベル | 記載なし | ||||
| 自社コードのSAST | Snyk Code | AI SAST | Semgrep Code | CodeQL | ||
| ライセンスのスキャンまたはポリシー | ライセンスポリシーでビルドをブロック可能 | 記載なし | 記載なし | |||
| 悪意のあるパッケージのブロック | パッケージのブロックリスト | 記載なし | Package Firewall | 検出 | 記載なし | Safe Chain |
| GitHub Actions以外のCI | GitLab CIとJenkins | 記載なし | ||||
| 料金 | 1vCPU分あたり$0.002(2 vCPUは$0.004)、秒単位の従量課金。月額料金なし | 無料枠あり、Teamは月額$25から | 無料のDeveloperティアあり、有料ティアは営業経由 | コントリビューター10人まで無料、Teamsはコントリビューター1人あたり月額$30から | コミッター1人あたり月額$19と$30 | 無料プランあり、有料は月額$350から |
- 対応
- 一部対応
- 非対応
- ロードマップに掲載
各ツールの詳細
CRACI
CRACIはスキャナーではなく記録ツールです。GitHub ActionsのジョブはCRACIのランナー上で実行され、パッケージを認識するプロキシが各ジョブの取得したものを記録し、依存関係のエビデンスはCIキャッシュを通じて引き継がれます。その記録から、自らの完全性を示すCycloneDXまたはSPDX形式のSBOMを作成し、監視対象のSBOMを再評価し続け、各検出結果を修正を担当するチームに振り分け、ライセンスを理由にビルドをブロックできます。各リリースに何が含まれていたかを証明しなければならないチームに最適です。注意点:SAST、シークレット、IaCのスキャンや到達可能性分析はなく、現時点ではGitHub Actions上のLinuxジョブのみに対応しています(他のCIシステム、Windows、macOSはロードマップに掲載)。ビルド時SBOM生成
Snyk
Snykは開発者ファーストのプラットフォームで、SCAに加えてSnyk Code(SAST)、Snyk Container、Snyk IaCを提供し、IDE、CLI、SCM連携、CIで動作します。到達可能性、エクスプロイトの成熟度、EPSS、CVSSを使って依存関係の検出結果に優先順位を付け、アップグレードのプルリクエストを作成します。エディターの段階から開発者に問題を修正してほしいチームに最適です。注意点:依存関係ツリーはマニフェストとロックファイルから作成され、snyk sbomコマンドはEnterpriseプランでのみ利用できます。CRACIとSnykの比較
Sonatype
Sonatypeはオープンソースのガバナンスを軸に構築されています。Lifecycleはセキュリティとライセンスのポリシーを適用し(ライセンスポリシーは2,000以上のライセンスに対応)、ビルドの生成物にAdvanced Binary Fingerprintingを使い、Golden Pull Requestsを作成します。Repository Firewallはコンポーネントがリポジトリに入る前に隔離し、SBOM ManagerはインポートしたSBOMを監視します。リポジトリにゲートを設けたい大規模組織に最適です。注意点:製品構成が変わりつつあり、新規顧客は現在Sonatype Guideを購入します。CRACIとSonatypeの比較
Black Duck
Black Duckは、オープンソースがどこに潜んでいても見つけ出します。パッケージマネージャーのスキャン、シグネチャとスニペットのスキャン、ソースコードなしでの実行ファイルやファームウェアのバイナリ解析を備えています。KnowledgeBaseは2,750以上のライセンスを追跡し、Coverityが22言語のSASTを追加します。コピーやベンダリングされたオープンソースの長い歴史を持つコードや、サードパーティのバイナリのチェックに最適です。注意点:料金は見積もりベースで、Fix PRは直接の依存関係が対象です。CRACIとBlack Duckの比較
Mend.io
Mend AppSecは、推移的依存関係を通じてコールグラフを追跡するMend SCAと、30以上の言語に対応するMend SASTを組み合わせています。Mend Renovateは90以上のパッケージマネージャーで依存関係を最新に保ち、Renovate CLIは無料です。大量のバックログを抱え、優先順位付けと自動更新を一緒に求めるチームに最適です。注意点:Mend自身のドキュメントはビルド工程の後にスキャンすることを推奨しているため、精度はパイプラインのどこで実行するかに左右されます。CRACIとMend.ioの比較
Checkmarx One
Checkmarx Oneは幅広いAppSecプラットフォームで、SAST、SCA、シークレット、IaC、APIセキュリティ、DAST、コンテナ、悪意のあるパッケージからの保護を備え、その上にASPMレイヤーがあります。SCAは悪用可能なパスの分析を使い、ポリシーでビルドを失敗させることができます。アプリケーションセキュリティテストを1つのベンダーにまとめたい組織に最適です。注意点:GitHub Actionはスキャンのためにソースのzipアーカイブをアップロードし(代わりにSCA Resolverでオンプレミス解析も可能)、料金は見積もりです。CRACIとCheckmarx Oneの比較、Checkmarxの代替ツール
Endor Labs
Endor Labsは関数レベルの到達可能性分析を軸に構築されており、ソースから直接・推移的依存関係内の脆弱な関数までのコードパスを追跡します。アップグレードの影響分析、修正をバックポートするEndor Patches、AI SAST、シークレットとコンテナのスキャン、Package Firewall、成果物への署名も備えています。依存関係のアラートに埋もれているチームに最適です。注意点:完全なビルドができない場合は、より粗い依存関係レベルの到達可能性分析に切り替わります。CRACIとEndor Labsの比較
Semgrep Supply Chain
Semgrep Supply Chainは、SemgrepのAppSecプラットフォームにおけるSCA製品で、Semgrep Code(SAST)やSemgrep Secretsと並んで提供されています。検出結果を到達可能、条件付きで到達可能、到達不能に分類し、Semgrepによると誤検知を最大98%削減します。ロックファイルが不完全な場合は、Dynamic Dependency Resolutionがマニフェストの解析とパッケージマネージャーを組み合わせてリストを補完します。また、ポリシーに照らしたライセンスのチェック、悪意のある依存関係の検出、アップグレードのプルリクエストの作成、CycloneDX SBOMのエクスポートも行います。すでにSemgrepのルールを書いているチームや、小規模なチームに最適です(無料プランはコントリビューター10人まで対応)。注意点:有料製品は個別に価格設定されており、TeamsプランのSupply Chainはコントリビューター1人あたり月額$30からです。
GitHub Advanced Security
GitHubは現在、すべてのGitHubプランに含まれる依存関係グラフとDependabotに加えて、Secret ProtectionとCode Security(CodeQL、Copilot Autofix、依存関係レビュー)を販売しています。Artifact attestationsにより、SLSA v1.0 Build Level 2の署名付き来歴が加わります。すでにGitHubを使っており、プルリクエストの中でセキュリティを確保したいチームに最適です。注意点:依存関係グラフが記述するのはリポジトリのマニフェストとロックファイルであり、プライベートリポジトリで有料製品を使うにはTeamまたはEnterpriseプランが必要です。CRACIとGitHub Advanced Securityの比較
Aikido
Aikidoは、SCA、SAST、シークレット、IaC、クラウドポスチャー、コンテナ、DAST、ライセンススキャンを1つのダッシュボードにまとめています。SCAは関数レベルの到達可能性分析を使い、AutoFixがプルリクエストを作成し、無料のSafe ChainツールがnpmとPyPIのインストール時に既知のマルウェアをブロックします。幅広いカバレッジを素早く得たい小規模チームや、AppSecの検出結果からSOC 2やISO 27001のレポートを作成したいチームに最適です。注意点:これらのコンプライアンスレポートはAdvancedプランから利用でき、依存関係はマニフェストとロックファイルから取得されます。CRACIとAikidoの比較
無料のオープンソースSCAツール
予算が制約になる場合、4つのオープンソースツールでSCAの中核をカバーできます。いずれもApache-2.0ライセンスで無料です。自分たちで実行するため、監視、トリアージ、レポートの仕組みは自分たちで構築する必要があります。
| 機能 | スキャン対象 | 脆弱性データ | 知っておきたい点 |
|---|---|---|---|
| Trivy | イメージ、ファイルシステム、リポジトリ、VMイメージ、Kubernetes | ベンダーのアドバイザリ、GitHub Advisory Database、NVD | IaCの設定ミス、シークレット、ライセンスも検出 |
| Grype | イメージ、ファイルシステム、SBOM | ローカルにダウンロードする独自データベース | EPSS、KEV、リスクスコアリング、OpenVEXによるフィルタリング、--fail-onでビルドを失敗させる |
| OSV-Scanner | ロックファイル、コンテナイメージ、SBOM、ベンダリングされたC/C++コード | OSV.dev | オプションの呼び出し解析、npmとMaven向けのガイド付き修正 |
| OWASP Dependency-Check | プロジェクトの依存関係(Javaと.NETを完全サポート) | NVD(CPEで照合) | CLI、Maven・Gradle・Antプラグイン、CI連携 |
Aqua SecurityのTrivyは、リポジトリではロックファイルを、イメージではインストール済みパッケージのメタデータを読み取り、CycloneDXまたはSPDXのSBOMを出力します。CRACIとTrivyの比較。AnchoreのGrypeは、姉妹ツールのSyftが列挙したものをスキャンし、データベースのダウンロードを除いて完全にローカルで動作します。CRACIとSyft・Grypeの比較。GoogleのOSV-ScannerはOSV.devデータベースの公式クライアントで、19種類以上のロックファイルに対応しています。OWASP Dependency-CheckはCPEでコンポーネントを特定してNVDと照合するもので、Javaと.NETのプロジェクトに最も適しています。これらのスキャナーの背後にある無料のSBOM生成ツールがリポジトリをどう読み取り、なぜ結果が食い違うのかについては、オープンソースのSBOM生成ツールが見落とすものをご覧ください。
CRACIの位置付け
上記の他のツールはすべてスキャナーです。マニフェスト、ロックファイル、ソースアーカイブ、またはバイナリを読み取り、中身を割り出します。CRACIは記録ツールです。GitHub ActionsのジョブはCRACIのランナー上で実行され(runs-onをcraciに変更)、パッケージを認識するプロキシが、npm、PyPI、RubyGems、Composer、Cargo、Go、Nix、OCI、apt、apk、Gitの各ソースとダウンロードプリセットから各ジョブが取得したものを記録します。依存関係のエビデンスはCIキャッシュとともに引き継がれます。CRACIのインベントリビューでは、どのソフトウェアバージョンがどの製品にデプロイされているかを、グローバルに正確に把握できます。
その記録から、CRACIはジョブごと、キャッシュごとに自らの完全性を示すCycloneDXまたはSPDX形式のSBOMを作成します。フェイルクローズで動作するエグレスポリシーを適用し、API経由でSBOM、ネットワークトレース、来歴を返し、監視対象のSBOMを再評価し続け、セキュリティチームが検出結果をトリアージして、修正を担当するチームにそれぞれ振り分けられるようにします。すべてのコンポーネントに宣言ライセンスが付与されるため、コピーレフトやその他の制限的なライセンスを出荷前に把握でき、ライセンスポリシーに基づいてビルドをブロックできます。企業がより広範なCRAコンプライアンスのプロセスで必要とする、ソフトウェアサプライチェーンの可視性とエビデンスのかなりの部分を自動化します。
次のような場合、CRACIは適していません。
- SAST、シークレット、IaCのスキャンが必要な場合(いずれも行いません)
- 到達可能性分析を重視する場合(CRACIは提供していません)、または今すぐパッケージのブロックリストが必要な場合(ロードマップに掲載)
- パイプラインがGitLab、Jenkins、CircleCIで動作している場合、またはWindowsやmacOSのランナーが必要な場合(CRACIは現時点ではGitHub Actions上のLinuxジョブを実行します。他のCIシステム、Windows、macOSはロードマップに掲載)
そうした場合は、上記のツールからお選びください。各リリースに何が含まれていたかの証明も必要なら、CRACIをランナーとして運用し、SCAはプルリクエストで使い続けてください。スキャナーと記録ツールの違いについて詳しくは、CRACIとSCA・SBOMツールの比較とSBOMツールの比較をご覧ください。また、ビルド時SBOM生成や料金についてお読みいただくか、デモを予約してGitHub Actionsのビルドの記録をご確認ください。
CRACIが置き換えるもの、置き換えないものについては、CRACIが置き換えるものをご覧ください。
CRACIと各ツールの比較
- CRACI vs Snyk マニフェストが宣言するものか、ビルドが実際に行ったことか。
- CRACI vs Aikido 幅広いAppSecスイートか、決定論的なビルドのエビデンスか。
- CRACI vs Sonatype リポジトリでのゲートキーピングとSCAか、ビルドのエビデンスか。
- CRACI vs Black Duck コード、スニペット、バイナリのスキャンか、ビルドのエビデンスか。
- CRACI vs Mend.io 依存関係のスキャンか、依存関係の観測か。
- CRACI vs Checkmarx AppSecテストプラットフォームか、ビルド時のエビデンスか。
- CRACI vs Endor Labs 到達可能性分析か、ビルドの観測か。
- CRACI vs JFrog アーティファクト管理か、ビルドごとのエビデンスか。
- CRACI vs GitHub Advanced Security コード、シークレット、依存関係のスキャンか、ビルドのエビデンスか。
- CRACI vs Dependabot バージョン更新か、ビルドが使ったものの把握か。
並べて比較
1つの製品ではなくカテゴリーを選ぶときのために、複数のツールを1ページにまとめています。
SCAツール:よくあるご質問
ソフトウェア構成分析についてよくある質問に簡潔にお答えします
SCAツールとは何ですか?
ソフトウェア構成分析(SCA)ツールは、ソフトウェアに含まれるオープンソースやサードパーティのコンポーネントを特定し、NVD、GitHub Advisory Database、OSVなどの脆弱性データベースと照合して、既知の脆弱性やライセンスリスクを指摘します。ほとんどのSCAツールは、検出結果の優先順位付け、アップグレードの提案やプルリクエストの作成、SBOMのエクスポート、新たな脆弱性の継続的な監視も行います。
SCAスキャンとは何ですか?
SCAスキャンは、プロジェクトのマニフェスト、ロックファイル、インストール済みパッケージ、またはコンテナイメージを読み取り、どのコンポーネントが含まれているかを割り出して、脆弱性データやライセンスデータと照合します。ほとんどのツールはプルリクエストごとと定期的にスキャンを実行するため、すでに使っているバージョンに対する新たなアドバイザリも検出できます。
SCAとSASTの違いは何ですか?
SASTは、チームが書いたコードにインジェクションなどの欠陥がないかを解析します。SCAは、依存しているコンポーネントに既知の脆弱性やライセンスの問題がないかを解析します。このページの商用ツールの多くは現在両方を提供していますが、答える問いは異なります。
SCAとSBOMの違いは何ですか?
SCAはコンポーネントを特定して評価するプロセスです。SBOMはそれらのコンポーネントを機械可読形式で列挙したリストで、通常はCycloneDXまたはSPDX形式です。ほとんどのSCAツールはSBOMをエクスポートでき、SBOMの完全性は、それを作成した方法(マニフェストのスキャン、バイナリのスキャン、ビルドの記録)によって決まります。
おすすめの無料SCAツールは何ですか?
Trivy、Grype、OSV-Scanner、OWASP Dependency-Checkは無料のオープンソースです。商用ツールでは、Semgrepにコントリビューター10人までの無料プランがあり、Snyk、Endor Labs、Aikidoには無料枠があり、DependabotアラートはGitHubのすべてのプランに含まれています。無料ツールでは通常、監視、トリアージ、レポートは自分たちで行う必要があります。
SCAにおける到達可能性分析とは何ですか?
到達可能性分析は、自社のコードが依存関係内の脆弱な関数を実際に呼び出せるかどうかを確認するもので、到達できない検出結果の優先度は下がります。Snyk、Endor Labs、Mend、Checkmarx、Semgrep、Aikido、Sonatype、Black Duckはいずれも何らかの形でこれを提供しています。CRACIは提供していません。
CRACIはSCAツールですか?
従来の意味ではSCAツールではありません。SCAツールはファイルをスキャンして中身を割り出します。CRACIは記録ツールです。GitHub Actionsのジョブを実行して各ジョブが実際に取得したパッケージを記録し、自らの完全性を示すCycloneDXまたはSPDX形式のSBOMを作成し、新たな脆弱性について監視し続けます。チームは、プルリクエストとSASTをカバーするSCAツールと並べてCRACIを運用しています。