比較
CRACI vs Checkmarx One
Checkmarx Oneは、コードと依存関係をさまざまな角度からテストします。CRACIはビルドを実行し、実際に取得したものを記録します。両者はパイプラインの異なる部分をカバーしており、両方が必要なチームの多くは両方を使うことになるでしょう。
更新日
結論
Checkmarx Oneは、静的解析、ソフトウェアコンポジション解析(SCA)、シークレット検出、IaC、APIセキュリティ、コンテナセキュリティ、悪意のあるパッケージからの保護、態勢管理を1か所にまとめたアプリケーションセキュリティプラットフォームです。CRACIはGitHub Actions互換のCIランナーで、ビルドが取り込むすべての外部依存関係を記録し、その記録からSBOM、来歴、コンプライアンスのエビデンスを生成します。Checkmarx Oneは多数のエンジンを備えたスキャナーで、CRACIは記録するツールです。両者が重なるのはSBOMと脆弱性トラッキングで、それ以外はほとんど重なりません。
概要
| 機能 | CRACI | Checkmarx One |
|---|---|---|
| ビルド実行中に依存関係を観測 | ランナー上のパッケージを認識するプロキシ | アップロードされたソースアーカイブを分析 |
| 完全性の状態付きのビルド時SBOM | ジョブごと・キャッシュごとに5つの状態 | スキャン結果からCycloneDXまたはSPDX |
| ビルドジョブのエグレスポリシー | デフォルト拒否または許可、フェイルクローズ | ビルドを実行しない |
| 悪意のあるパッケージの検出 | CVEのある既知のリリースを検出。エグレスポリシーで取得元を制限 | ビルドを自動的にブロック可能 |
| 到達可能性による優先順位付け | Exploitable Path分析 | |
| SAST、シークレット、IaCのスキャン | Checkmarx Oneの一部 | |
| APIセキュリティとDAST | Checkmarx Oneの一部 | |
| ライセンスポリシー | ライセンスポリシーのルールでビルドをブロック可能 | ポリシーでアラートやビルドの中断が可能 |
| CIジョブの実行 | ジョブはCRACIランナー上で実行 | 既存のCIに組み込む |
| 対応CIシステム | 現在はGitHub Actions。GitLab CIとJenkinsはロードマップに掲載 | Jenkins、TeamCity、Azure DevOps、GitLabなど |
| 料金 | vCPU 1分あたり$0.002(2 vCPUは$0.004)、秒単位の従量課金。月額料金なし、SBOMごとの課金なし | 開発者数、アプリケーション数、利用量に基づく見積もり。2026年9月時点で料金は非公開。 |
- 対応
- 一部対応
- 非対応
- ロードマップに掲載
Checkmarx Oneの強み
幅広さ。Checkmarx Oneは、自社コード(SAST)、シークレット、Infrastructure as Code、API、コンテナ、オープンソースの依存関係、リポジトリの健全性、AIコンポーネントをカバーし、検出結果をASPMレイヤーにまとめます。アプリケーションセキュリティテストを1つのベンダーにまとめたい場合、CRACIはその代わりにはなりません。CRACIはコードのテストを一切行いません。
重要な脆弱性の見極め。Checkmarx SCAはExploitable Path分析を使って、サードパーティライブラリ内の脆弱なクラスや関数のうち、自社コードが呼び出す可能性のあるものを特定します。プライベートパッケージを含む直接および推移的依存関係を、深さの制限なくスキャンします。重大度、到達可能性、悪意のあるコード、ライセンスに関するポリシーで、アラートの送信、プルリクエストの阻止、ビルドの中断ができます。
悪意のあるパッケージ。Checkmarxは、タイポスクワッティング、依存関係の混乱(dependency confusion)、侵害されたアカウントを網羅する、悪意のあるオープンソースパッケージの大規模な独自データベースを保守しており、依存関係ツリーにそうしたパッケージが現れるとビルドを自動的にブロックできます。
SBOMと連携。Checkmarx OneはSBOMレポートをCycloneDX 1.7またはSPDX 2.3でエクスポートし、CycloneDXではオプションでVEXのトリアージデータを含められます。SBOMの取り込みも可能です。Jenkins、TeamCity、GitHub Actions、Azure DevOps、Maven向けのプラグインがあり、GitLab、Bitbucket Pipelines、CircleCI、Bamboo、AWS CodeBuildではCLIを使用します。Code Repository Integrationのプロジェクトでは、修正済みのパッケージバージョンを含むプルリクエストを自動で作成できます。リリースノートでは、提供開始時の対象としてnpmのpackage.jsonマニフェストが挙げられていました。
CRACIの違い
スキャナーが見るものと、ビルドが行ったこと
Checkmarx One GitHub ActionはCheckmarx CLIをラップしたもので、CLIはソースリポジトリのzipアーカイブを作成し、スキャンのためにアップロードします。代わりにSCA Resolverを使えば、自社のパッケージマネージャーでオンプレミスで依存関係とフィンガープリントを抽出し、ソースコードなしで分析に送ることもできます。いずれの場合も、分析の出発点はプロジェクト、つまりそのコード、マニフェスト、そこから解決される依存関係ツリーです。
CRACIはビルドから始めます。CRACIはランナーそのものであるため、パッケージを認識するプロキシが、ジョブがパッケージソースから実際にダウンロードするものを観測します。対象はnpm、PyPI、RubyGems、Composer、Cargo、Go、Nix、OCI、apt、apk、Gitの各ソースとダウンロードプリセットです。これにはツールチェーン、ベースイメージ、リリースのダウンロード、CIキャッシュから復元されたパッケージも含まれます。各SBOMには、ジョブごと・キャッシュごとに完全性が示されます。状態はComplete、Complete with connections、Incomplete、Unavailable、Not recordedのいずれかです。
検出だけでなく制御も
ビルドはCRACI上で実行されるため、エグレスポリシーを設定できます。デフォルト拒否またはデフォルト許可で、24種類の組み込みソフトウェアソースプリセットと、npm、PyPI、apt、apk、Goプロキシ、Nix、Cargo、OCIレジストリ、Git向けの型付きカスタムソースを備えています。ポリシーはジョブの開始前に検証され、フェイルクローズで動作します。Checkmarxはパッケージをその性質で判断し、CRACIはビルドが取得できる場所を制限します。CRACIは評判に基づいて悪意のあるパッケージを検出することはないため、2つのレイヤーは互いに補完し合います。
来歴と監視
APIはSBOM、ネットワークトレース、来歴を返します。CRACIはビルドとリポジトリをまたいで脆弱性を集約し、監視対象のSBOMを再評価し続けます。
どこに何がデプロイされているかのインベントリ
CRACIのインベントリビューでは、どのソフトウェアバージョンがどの製品にデプロイされているかを、グローバルに正確に把握できます。新たな脆弱性が見つかったとき、リリースノートやスプレッドシートからつなぎ合わせることなく、影響を受けるバージョンを使用している製品を確認できます。
両方を使うべき場合
- セキュリティテストとリリースのエビデンス。プルリクエストではCheckmarx Oneでコード、シークレット、IaC、依存関係のリスクを確認し、リリースビルドのランナーにはCRACIを使って、各ビルドのSBOMと来歴データを保持します。
- 多層的なサプライチェーン防御。Checkmarxの悪意のあるパッケージからの保護が不正なパッケージを検出し、CRACIのエグレスポリシーがビルドを承認済みのソースにとどめ、各取得を記録します。
- GitHub Actions以外のパイプライン。Checkmarx Oneは現在、Jenkins、TeamCity、Azure DevOps、GitLabに対応しています。CRACIが現在対応しているのはGitHub Actionsのみで、GitLab CIとJenkinsはロードマップに掲載されているため、それらのパイプラインはまず移行する必要があります。
Cyber Resilience Actへの対応
Checkmarxは、AppSec Program Maturity Assessment(APMA)の一環としてCRA評価を提供しています。これは、コネクテッド製品に対するCRAの要件に照らして、セキュリティ・バイ・デザインの実践と脆弱性管理を評価するものです。同社のブログでは、AppSecがCRAコンプライアンスの技術的な実装レイヤーになりつつあると論じ、特にAI-BOMによるAIコンポーネントの文書化に注目しています。
CRACIはビルドからのエビデンスを加えます。各リリースに何が入ったか、記録がどの程度完全か、そしてその後の継続的な監視であり、SBOMはCycloneDXまたはSPDXでエクスポートできます。企業がより広範なCRAコンプライアンスのプロセスで必要とするソフトウェアサプライチェーンの可視性とエビデンスのかなりの部分を自動化します。どちらのツールも、それだけで製品をコンプライアンスに適合させるものではありません。CRAコンプライアンスとCRAのエビデンスをご覧ください。
Checkmarx OneとあわせてCRACIを導入する
CRACIが置き換えるのはランナーであり、GitHub Actionsではありません。ワークフローでruns-onをcraciに変更しても、実行結果は引き続きGitHubのUIに表示されます。Checkmarx One GitHub Actionはステップとしてワークフローに残ります。まずはリリースパイプラインを1つ選び、同じコミットについてCRACIのSBOMとCheckmarx OneのSBOMレポートを比較してください。
3つ以上のツールを比較検討していますか?Checkmarxの代替ツールでは、9つの選択肢を並べて比較しています。
CRACIは現在GitHub Actionsに対応しています。GitLab CI、Jenkins、その他のCIシステムはロードマップに掲載されています。詳しくはビルド時SBOM生成と脆弱性トラッキングをご覧ください。