比較
CRACIとEndor Labsの比較
Endor Labsは、コードが実際に到達しうる脆弱性はどれかを問います。CRACIは、ビルドが実際に何を取り込んだかを問い、その答えを実行中に記録します。問いが異なり、多くのチームには両方の答えが必要です。
更新日
結論
Endor Labsは、到達可能性を軸に構築されたアプリケーションセキュリティプラットフォームです。ソースコードと依存関係を解析して、既知の脆弱性のうちアプリケーションが呼び出しうるものを判定し、それらを優先して修正できるよう支援します。自社コード、シークレット、コンテナ、悪意あるパッケージにも対応しています。
CRACIはGitHub Actions向けのCIランナーです。ジョブはその上で実行され、実行中に取得されるすべての外部依存関係を記録し、ネットワーク上の到達先を制御します。Endor Labsはどの検出結果が重要かを教えてくれます。CRACIは各リリースに何が入ったかの記録を提供します。両者は中核の役割が重ならず、組み合わせて使えます。
一覧で比較
| 機能 | CRACI | Endor Labs |
|---|---|---|
| ビルドの実行 | ジョブはCRACIランナーで実行 | 既存のCI内からスキャン |
| ビルドから記録される依存関係 | 観測した取得(CIキャッシュからのパッケージを含む) | ソースコードの解析でインベントリを作成 |
| ビルドのネットワークエグレスポリシー | デフォルト拒否または許可、フェイルクローズ | 対象範囲外:ビルドを実行しない |
| SBOMのエクスポート(CycloneDX、SPDX) | すべてのビルドで、ジョブごと・キャッシュごとの完全性付き | SBOM Hub、到達可能性に基づくVEX付き |
| 署名付きの成果物の来歴 | 署名付きの来歴なし | endorctl artifact signで来歴付き署名 |
| 継続的な監視 | 監視対象のSBOMを継続的に再評価 | 新たな脆弱性の公開に応じてリスクを更新 |
| 関数レベルの到達可能性 | 直接・推移的依存関係の静的プログラム解析 | |
| SAST、シークレット、コンテナ | AI SAST、シークレット検出、コンテナスキャン | |
| 悪意あるパッケージのブロック | 組織全体のパッケージブロックリスト | Package Firewall(レジストリの前段に置くプロキシ) |
| CIシステム | 現在はGitHub Actions。GitLab CIとJenkinsはロードマップに掲載 | GitHub Actions、GitLab、Jenkins、CircleCI、Buildkite、Bitbucket |
| 料金 | 1vCPU分あたり$0.002(2 vCPUは$0.004)、秒単位の従量課金。月額料金なし、SBOMごとの課金なし | 無料のDeveloperプランあり。CoreとProは貢献する開発者数に応じた料金で、営業経由(2026年9月時点)。 |
- 対応
- 非対応
- ロードマップに掲載
Endor Labsの強み
最大の特長は到達可能性です。Endor Labsは静的プログラム解析により、直接・推移的依存関係に対して関数レベルの到達可能性解析を行い、ソースから脆弱な関数までのコードパスをたどります。完全なビルドができない場合は、依存関係レベルの到達可能性や事前計算された到達可能性が、より粗い代替手段となります。Endor Labsによれば、コード内で呼び出せない脆弱性を除外することで、SCAの検出結果を92%削減できます。依存関係のアラートに埋もれているチームにとって、これは最も直接的な解決策です。
修正面も充実しています。アップグレード影響分析はアップグレード前に破壊的変更を探して修正リスクを評価し、自動プルリクエストがアップグレードを行い、アップグレードが現実的でない場合はEndor Patchesが上流のセキュリティ修正を現在使っているバージョンにバックポートします。
オープンソースの依存関係にとどまらず、AI SAST、シークレット検出、コンテナスキャン、悪意あるパッケージの検出、そしてアーティファクトリポジトリと公開レジストリの間にプロキシとして置くPackage Firewallも備えています。SBOM HubはCycloneDXとSPDXのSBOMを生成・取り込みし、到達可能性に基づくVEXドキュメントを作成し、新たな脆弱性の公開に応じてリスクを更新し続けます。Endor LabsはGitHub Actions、GitLab、Jenkins、CircleCI、Buildkite、Bitbucketと連携し、対応言語にはCとC++、Java、Go、Rust、Python、JavaScriptが含まれます。
CRACIは到達可能性、SAST、シークレット、コンテナスキャンのいずれも行いません。それらが必要なら、Endor Labsや同様のツールを引き続きお使いください。
CRACIの違い
ビルドこそが信頼できる情報源
Endor Labsはソースコードをインベントリの正解として扱い、マニフェストだけでは見落とす直接・推移的依存関係やファントム依存関係を捉えます。CRACIは別の出発点、つまりビルドそのものから始めます。ランナー上のパッケージ認識プロキシが、ジョブの実行中にパッケージソースへの通信を観測します。対象はnpm、PyPI、RubyGems、Composer、Cargo、Go、Nix、OCI、apt、apk、Gitの各ソースと、ダウンロードプリセットです。エビデンスはCIキャッシュと一緒に引き継がれるため、キャッシュから復元されたパッケージも記録から漏れません。ランナーが通信を見ているため、マニフェストに記載されたものだけでなく、インストールスクリプトやダウンロードステップが取り込んだ依存関係も観測されます。
各SBOMには、ジョブごと・キャッシュごとの完全性の状態(Complete、Complete with connections、Incomplete、Unavailable、Not recorded)が付きます。記録に欠落があれば、そのことが明示されます。
ビルドの到達先を制御
CRACIはランナーそのものなので、ジョブごとにエグレスポリシーを設定できます。デフォルト拒否またはデフォルト許可を選べ、24の組み込みソフトウェアソースプリセットと、レジストリやGit向けの型付きカスタムソースを使えます。ポリシーはジョブ開始前に検証され、フェイルクローズで動作します。Endor LabsのPackage Firewallは、アーティファクトリポジトリを通じて入るパッケージを選別します。CRACIのポリシーは、ビルドが行うすべての接続を制限します。異なるレイヤーであり、重ねて使うと効果的です。
出荷したものの来歴と監視
Endor Labsは成果物に署名しますが、CRACIは署名しません。CRACIのデータはビルドを観測したランナーから得られ、APIはSBOM、ネットワークトレース、来歴を返します。CRACIはビルドとリポジトリをまたいで脆弱性を集約し、監視対象のSBOMを継続的に再評価します。
どこに何がデプロイされているかのインベントリ
CRACIのインベントリビューは、どのソフトウェアバージョンがどの製品にデプロイされているかを、グローバルに正確に表示します。新たな脆弱性が見つかったとき、リリースノートやスプレッドシートをつなぎ合わせなくても、影響を受けるバージョンを使っている製品を確認できます。
どちらが適しているか
- 課題がアラートの多さである場合:まずEndor Labsから始めてください。到達可能性とアップグレード影響分析は、まさにその課題を狙ったものです。
- 課題がリリースの中身を証明することである場合:CRACIがビルドからそれを記録します。
- ビルドがダウンロードできるものが心配な場合:CRACIのエグレスポリシーはランナーを制限し、Endor LabsのPackage Firewallはパッケージを選別します。リスクが高いなら両方を使ってください。
- GitLab、Jenkins、CircleCIを使っている場合:Endor Labsは現在それらに対応しています。CRACIが対応しているのはGitHub Actionsのみのため、CRACIで実行するにはそれらのパイプラインをGitHub Actionsに移行する必要があります。GitLab CIとJenkinsはロードマップに掲載されています。
Cyber Resilience Actへの対応
Endor Labsは、SBOM Hubが対応するエビデンス要件の1つとしてEU Cyber Resilience Actを挙げており、そのVEX出力は、ある脆弱性が製品に影響しない理由の説明に役立ちます。CRACIは、企業がより広範なCRAコンプライアンスのプロセスで必要とするソフトウェアサプライチェーンの可視性とエビデンスのかなりの部分を自動化します。完全性を明示したビルド時SBOM、来歴データ、継続的な脆弱性トラッキング、CycloneDXまたはSPDXでのSBOMエクスポートです。どちらのツールも、それだけで製品を準拠させるものではありません。詳しくはCRAとはとCRAコンプライアンスをご覧ください。
Endor LabsとCRACIの併用
Endor Labsの設定は何も変える必要がありません。CRACI GitHub Appをインストールし、記録したいワークフローのruns-onをcraciに変更するだけです。実行結果はこれまでどおりGitHubのUIに表示され、endorctlのステップも他のステップと同じようにCRACIランナーで実行されます。ビルド時のSBOM生成とCI/CD連携について詳しくご覧ください。