比較
CI/CDセキュリティツールの比較
CI/CDセキュリティツールは4つのグループに分かれます。コードを読み取るスキャナー、その周りのパイプラインを強化するツール、ランナーを監視するエージェント、そしてビルドを制御・記録するランナーです。各グループがカバーする範囲と、CRACIの位置付けを紹介します。
更新日
各比較では、他製品の強み、CRACIとの違い、両方を併用すべきケースを説明しています。すべてのカテゴリーはすべての比較をご覧ください。
パイプラインに専用のセキュリティツールが必要な理由
CI/CDパイプラインは認証情報を保持し、インターネットからコードを取得し、顧客が実行するアーティファクトを生成します。そのため、パイプラインはそれ自体が攻撃の標的になります。ビルドがダウンロードするものや生成するものを変更できる攻撃者は、ソースコードに一切触れる必要がありません。コードスキャナーはこうした脅威を想定して作られていません。読み取るのはリポジトリであって、ビルドではないからです。
CI/CDセキュリティツールは、このギャップをさまざまな方向から埋めます。パイプラインの構成をチェックするもの、ジョブの実行中にランナー上で起きることを監視するもの、ランナーそのものを制御するものがあります。ツールがどのグループに属するかは、機能一覧以上に多くを物語ります。グループによって、ツールが何を見られて、何を止められるかが決まるからです。
CI/CDセキュリティツールの種類
コードを読み取るスキャナー
静的解析(SAST)、シークレットスキャン、ソフトウェアコンポジション解析(SCA)は、ソースファイル、マニフェスト、ロックファイルといったリポジトリを読み取ります。たとえばGitHub Advanced Securityは、CodeQLのコードスキャンとシークレットスキャン、プッシュ保護、そしてGitHub Advisory DatabaseからのDependabotアラートを組み合わせています。これらのツールはビルドの実行前に問題を見つけます。ビルドが実際に何を取得し、どこに接続したかは見えません。
ビルドを取り巻くパイプラインを強化するツール
ポスチャーとガバナンスのツールは、パイプラインの構成をチェックします。CycodeはCI/CDのセキュリティポリシー、構成、ガバナンスを監視します。StepSecurityは使用しているサードパーティ製アクションのインベントリを保持し、新しいアクションには承認ワークフローを設け、アクションをコミットSHAに固定し最小権限のGITHUB_TOKEN権限を設定するプルリクエストを作成します。これらのツールはパイプラインを悪用されにくくしますが、対象は実行中のビルドではなく、ビルドの定義です。
ランナーを監視するエージェント
ランタイムエージェントは、引き続き使用するランナー上で、ジョブの中で動作します。StepSecurity Harden-Runnerは、外向きの接続、プロセス、ファイル書き込みを監視し、それぞれを原因となったワークフローステップに結び付け、許可リスト外のエグレスをブロックできます。CycodeのCimonは、eBPFを使ってカーネルレベルでプロセスの実行、ネットワークエグレス、ファイルアクセスを監視し、ランタイムで観測したSBOMを生成し、SLSAの来歴に署名します。エージェントは既存のインフラに追加されるものなので、多くのCIシステムやホスト型ランナーで動作します。
ビルドを制御・記録するランナー
CRACIは最後のアプローチを取ります。ランナーそのものを置き換えるのです。ジョブはruns-on: craciでCRACI上で実行され、実行結果は引き続きGitHubに表示されます。エグレスポリシーはランナーの一部であり、ジョブ開始前に検証され、フェイルクローズで動作します。パッケージを認識するプロキシが、CIキャッシュから復元されたパッケージを含め、ジョブが取得したすべてのパッケージを記録するため、各ジョブは完全性の状態付きのSBOM、ネットワークトレース、来歴データを生成します。
並べて比較
| 機能 | CRACI | StepSecurity Harden-Runner | Cycode (Cimon) | GitHub Advanced Security |
|---|---|---|---|---|
| 実行場所 | ランナーそのもの | 自社で維持するランナー上のエージェント | 既存CI内のエージェント | GitHub上のリポジトリをスキャン |
| ビルドのエグレス制御 | デフォルト拒否または許可、フェイルクローズ | ブロックモードでの許可リスト | 許可ホストを指定する防止モード | |
| ブロック前の監査モード | 監視モードまたはドライランモード | ジョブごとのベースライン | 検出モード | エグレス制御なし |
| プロセスとファイルの監視 | eBPF | 記載なし | ||
| ビルドから記録したSBOM | ジョブごと、完全性の状態付き | 接続先、プロセス、ファイルを記録 | 実行時に観測したSBOM | マニフェストからのグラフと送信されたビルドデータ |
| 署名付きビルド来歴 | 署名付き来歴なし | 記載なし | SLSA Provenance v1.0 | 成果物の構成証明(Artifact attestations) |
| SAST | 記載なし | CodeQL | ||
| シークレットスキャン | 記載なし | Secret Protection | ||
| 対応CI | 現在はGitHub Actions。GitLab CIとJenkinsはロードマップに掲載 | GitHub Actions、GitLab CI、Azure DevOps | GitHub Actions、Azure Pipelines、Jenkins、GitLab CI、Buildkite、Harness | GitHub、およびAzure DevOps(別途購入) |
- 対応
- 一部対応
- 非対応
- ロードマップに掲載
「記載なし」は、ベンダーの公開ページで確認できなかったことを意味します。各列の詳細は、CRACIとStepSecurityの比較、CRACIとCycodeの比較、CRACIとGitHub Advanced Securityの比較をご覧ください。
どのツールがどのCI/CDリスクをカバーするか
OWASP Top 10 CI/CD Security Risksは、パイプラインで起こりうる問題を示すリストとして最も広く使われています。10のリスクは次のとおりです。
- CICD-SEC-1: Insufficient Flow Control Mechanisms(不十分なフロー制御メカニズム)
- CICD-SEC-2: Inadequate Identity and Access Management(不適切なIDとアクセスの管理)
- CICD-SEC-3: Dependency Chain Abuse(依存関係チェーンの悪用)
- CICD-SEC-4: Poisoned Pipeline Execution (PPE)(汚染されたパイプラインの実行)
- CICD-SEC-5: Insufficient PBAC (Pipeline-Based Access Controls)(不十分なパイプラインベースのアクセス制御)
- CICD-SEC-6: Insufficient Credential Hygiene(不十分な認証情報の衛生管理)
- CICD-SEC-7: Insecure System Configuration(安全でないシステム構成)
- CICD-SEC-8: Ungoverned Usage of 3rd Party Services(管理されていないサードパーティサービスの利用)
- CICD-SEC-9: Improper Artifact Integrity Validation(不適切なアーティファクトの完全性検証)
- CICD-SEC-10: Insufficient Logging and Visibility(不十分なログ記録と可視性)
10項目すべてをカバーする単一のツールはありません。CRACIの制御が適用されるのは次の4項目です。
| 機能 | リスクの内容 | CRACIの対応 |
|---|---|---|
| CICD-SEC-3: Dependency Chain Abuse | ビルドが悪意のあるパッケージや想定外のパッケージを取り込む | エグレスポリシーがジョブの取得元を制限し、ジョブのSBOMが取得したすべてのパッケージを記録 |
| CICD-SEC-7: Insecure System Configuration | パイプラインを実行するシステムの設定が脆弱 | ジョブは隔離された仮想マシンで実行され、適用できないポリシーはフェイルクローズで動作 |
| CICD-SEC-9: Improper Artifact Integrity Validation | 改ざんされたアーティファクトが正規のものとしてパイプラインを流れる | 署名付きの来歴はなし。APIが各ビルドの来歴データを返す |
| CICD-SEC-10: Insufficient Logging and Visibility | パイプライン内の攻撃が気付かれず、調査もできない | すべてのジョブのネットワークトレース、ポリシー違反時のアラート、SBOM・ネットワークトレース・来歴を返すAPI |
CICD-SEC-7について、CRACIがカバーするのはランナーです。リポジトリとGitHub Organizationの構成はお客様の管理下に残ります。それ以外について率直に言えば、CRACIはIDとアクセスの管理(CICD-SEC-2)や認証情報の衛生管理(CICD-SEC-6)には対処せず、フロー制御、パイプラインの権限、サードパーティサービスのガバナンス(CICD-SEC-1、5、8)も扱いません。GitHubのSecret ProtectionやCycodeのシークレット検出などのシークレットスキャン、そして前述のポスチャーツールが、それらのために作られています。
CI/CDセキュリティツールの選び方
- ランナーを置き換えるか、維持するか。GitHubホステッドランナー、セルフホストランナー、あるいは別のCIシステムを使い続けたいなら、ランタイムの制御を加えるにはエージェントが適しています。ランナーの変更を検討できるなら、CRACIのようなランナーは、エージェントを展開することなくエグレス制御とビルドの記録をもたらします。
- 現時点での監査モード。Harden-RunnerとCimonは、何かをブロックする前に通信を監視できます。CRACIのモニターモード、つまりドライランモードはロードマップに掲載されています。
- プロセスレベルのフォレンジック。インシデント中にどのプロセスがどのファイルを書き込んだかを知る必要があるなら、プロセスとファイルを監視するエージェントがそれをカバーします。CRACIはプロセスやファイル書き込みを監視しません。
- SBOMとCRAのエビデンス。各ビルドのパッケージレベルのSBOM、来歴、そしてCyber Resilience Actのためのエビデンスが必要なら、各ツールが何を記録し、出荷したものを監視し続けるかどうかを確認してください。CRACIはビルドの実行中にSBOMを記録し、新たな脆弱性が現れるたびに監視対象のSBOMを再評価し、SBOMをCycloneDXまたはSPDXでエクスポートします。
- CIプラットフォームとOS。CRACIは現在GitHub Actionsに対応しており、GitLab CIとJenkinsはロードマップに掲載されています。x86-64とARM64のLinuxで動作し、WindowsとmacOSはロードマップに掲載されています。他のCIシステムでビルドしている場合や、今すぐWindowsやmacOSのランナーが必要な場合は、まずエージェントの対応範囲を確認してください。
- コードとシークレット。ソースコードとシークレットのスキャナーは、どのランナーもカバーしない領域を扱います。CRACIにはSASTもシークレットスキャンもないため、それらは別途ご計画ください。
ランナー上のエージェントか、ランナーそのものか
エージェントは、他者が設計したインフラに追加されるものです。GitHubホステッドランナーでは各ジョブの冒頭のステップでインストールされ、何ができるかはそのインフラが許す範囲に左右されます。だからこそエージェントは、ホスト型ランナー、セルフホストのフリート、複数のCIシステムを同時にカバーでき、ビルドがそれらすべてに分散している場合には大きな利点になります。
自らポリシーを適用するランナーは、その逆の仕組みで動作します。CRACIではエグレスポリシーがジョブ開始前に検証され、未知のフィールドを拒否し、フェイルクローズで動作するため、適用できないポリシーによって保護されない実行が生じることはありません。ソースはエコシステムごとに型付けされ、24種類の組み込みのソフトウェアソースプリセットと、npm、PyPI、apt、apk、Goプロキシ、Nix、Cargo、OCIレジストリ、Git向けのカスタムソースを備えているため、記録はホストだけでなくパッケージ単位になります。CRACI上で実行されるジョブでは、ランタイムエージェントと並行して動くのではなく、それを置き換えます。CI/CD連携とビルド時SBOM生成について詳しくご覧いただくか、デモを予約して、エグレスポリシーのもとでGitHub Actionsのジョブが実行される様子をご確認ください。
CRACIと各ツールの比較
並べて比較
1つの製品ではなくカテゴリーを選ぶときのために、複数のツールを1ページにまとめています。
CI/CDセキュリティツールに関するよくあるご質問
CI/CDセキュリティツールとは何ですか?
CI/CDセキュリティツールは、ソースコードをリリース済みソフトウェアに変えるパイプラインを保護します。大きく4つのグループに分かれます。コードと依存関係を読み取るスキャナー(SAST、シークレットスキャン、SCA)、ビルドを取り巻くパイプライン構成を強化するツール、ジョブの実行中にランナーを監視するエージェント、そしてビルドそのものを制御・記録するランナーです。ツールがどのリスクに対処するかを確認する一般的な方法として、OWASP Top 10 CI/CD Security Risksがあります。
CI/CDセキュリティとSCAの違いは何ですか?
ソフトウェアコンポジション解析(SCA)は、マニフェストとロックファイルを読み取り、宣言された依存関係のうち既知の脆弱性があるものを示します。CI/CDセキュリティはパイプラインそのものを保護します。誰がパイプラインを変更できるか、ビルドが何にアクセスできるか、出荷するアーティファクトがビルドされたものと同じかどうか、です。CRACIはビルドを起点に動作します。CIキャッシュから復元されたパッケージを含め、各ジョブが実際に取得したパッケージを記録し、リリース後も新たな脆弱性について監視し続けます。
CRACIを使う場合、ランタイムエージェントは必要ですか?
エグレス制御やビルドの記録のためには不要です。CRACIではエグレスポリシーがランナーの一部であり、ジョブ開始前に検証され、フェイルクローズで動作するため、CRACI上で実行されるジョブについては、Harden-RunnerやCimonのようなエージェントをCRACIが置き換えます。失うのは、CRACIが提供していないプロセスとファイルの監視、そしてCRACIのロードマップに掲載されている監査モードです。プロセスレベルのフォレンジックが必須要件であれば、現時点では、引き続き使用するランナー上のエージェントでカバーできます。
CI/CDセキュリティツールで悪意のあるパッケージをブロックできますか?
一部のツールは、それぞれ異なる方法でブロックできます。エグレス制御は、ビルドがポリシー外のソースにアクセスするのを防ぐため、想定外のホストからのダウンロードは失敗します。パッケージのブロックリストやレジストリの制御は、既知の悪意あるバージョンのインストールそのものを防ぎます。CRACIは現在、エコシステムごとに型付けされたソースによって、ジョブごとにエグレスポリシーを適用しています。組織全体のパッケージブロックリストはCRACIのロードマップに掲載されています。
GitHub Actions以外でも使えるCI/CDセキュリティツールはどれですか?
2026年9月時点で、StepSecurityはGitHub ActionsとあわせてGitLab CIとAzure DevOpsを挙げており、CycodeのCimonはAzure Pipelines、Jenkins、GitLab CI、Buildkite、Harnessでも動作します。GitHub Advanced SecurityもAzure DevOps向けに販売されています。CRACIは現在GitHub Actionsに対応しており、GitLab CIとJenkinsはロードマップに掲載されています。