プラットフォーム
CRACIの仕組み
CRACIはGitHub Actionsのビルドを実行し、各ビルドが取り込むものを記録します。脆弱性トラッキングからCRAのエビデンスまで、それ以外のすべてはこの記録の上に成り立っています。
更新日
要点
多くのセキュリティツールは、事後にコードやマニフェストを確認し、ビルドにおそらく含まれていたものを推測します。CRACIはビルドランナーそのものなので、ビルドが実際に取得したものを、取得したその瞬間に把握できます。その記録が、図にあるすべての要素、つまりパッケージ分析、攻撃防止、脆弱性分析、トレーサビリティ、コンプライアンスレポートの入力になります。
GitHubとGitHub Actionsはそのまま使えます。変更は各ワークフローの1行だけです。
ステップごとの解説
1. ソースコードとCI/CD:GitHubとGitHub Actions
コードはGitHubに置いたままです。CRACI GitHub Appをすべてのリポジトリ、または選択したリポジトリにインストールして組織を接続します。ワークフローは引き続きGitHub Actionsから実行され、その実行結果もGitHubに表示されます。現在サポートしているCI連携はGitHub Actionsで、ほかのCI/CDシステムへの対応はロードマップに掲載されています。
2. ビルド:CRACI Secure Build Service
ジョブはCRACIランナー上の分離された仮想マシンで実行されます。ランナーは1〜32コンピュートユニット(1ユニットあたり1 vCPU、3 GBのRAM)でスケールし、ネイティブのx86-64とARM64に対応し、GitHub互換のUbuntuイメージまたはCRACIの軽量イメージを使用します。使用量は秒単位で計測されます。
CRACIでのビルドは、GitHubの標準ホストランナーと比べて約2倍の速さで実行されます。1分あたりのコストも低く、標準的な2 vCPUのLinuxランナーはGitHubの$0.006に対して1分あたり$0.004です(約33%安価)。合わせると、GitHubで10分かかるビルドはCRACIでは約5分で完了し、コストは約67%低くなります。さらにCRACIは、ジョブごとに1分単位で切り上げるのではなく秒単位で課金するため、短いジョブを多数含むパイプラインほど節約額が大きくなります。 GitHubホステッドランナーとの詳しい比較を見る.
3. サプライチェーンの検出:CRACI Package Analytics
ジョブの実行中、パッケージを認識するプロキシがパッケージソースへの通信を監視し、npm、PyPI、RubyGems、Cargo、Go、Nix、OCI、apt、apk、Gitの各ソースに加え、YoctoとOpenEmbeddedのダウンロードプリセットにわたって、ビルドが取り込むすべての外部依存関係を記録します。エビデンスはCIキャッシュと一緒に引き継がれるため、キャッシュから復元されたパッケージも記録に残ります。
ここがほかのSBOMツールとの違いです。ほかのツールはロックファイルやビルドの出力を読み取り、何が入ったかを推定します。CRACIは通信を見ているため、どのロックファイルにも記載されない隠れた依存関係も記録します。npm installのフックがダウンロードするコード、Rustのビルドスクリプトがビルド時に取得するファイル、コンテナビルドのベースイメージのレイヤーなどです。
各ジョブとキャッシュには、CompleteからNot recordedまでの完全性の状態が付くため、作成されたSBOMをどこまで信頼できるかがわかります。SBOMは推移的依存関係を含めてCycloneDXまたはSPDXでエクスポートできます。
4. 継続的なサプライチェーンセキュリティ:CRACI Attack Prevention
通信を記録するのと同じレイヤーが、通信の制御も行います。エグレスポリシーは、ジョブがアクセスできるホストを決めます。デフォルト拒否またはデフォルト許可を選べ、一般的なソフトウェアソース向けの組み込みプリセットと、自社のソース向けのカスタムルールを使えます。ポリシーはジョブ開始前に検証され、フェイルクローズで動作し、違反があればCRACIがアラートを送ります。侵害された依存関係やビルドツールが外部と通信しようとしても、ランナーで阻止されます。
このポリシーは既知の悪意あるホストを探すのではなく、ビルドに必要なものだけを許可するため、誰も見たことのない攻撃にも有効です。Shai-Huludのようなワームが先にビルドに到達しても、シークレットを外部に送信しようとする試みは同じように阻止されます。
5. 継続的なサプライチェーン対応:CRACI Vulnerability Analysis
記録されたパッケージは既知の脆弱性と照合され、監視対象のSBOMは継続的に再評価されるため、出荷後に公開された脆弱性も把握できます。組織レベルのビューでは、どのビルドやリポジトリが脆弱な依存関係を共有しているかがわかり、セキュリティチームは各検出結果をトリアージして、修正を担当するチームに送ることができます。サードパーティのベンダーからのSBOMも追加できるため、購入したコンポーネントも自社のビルドが取り込むコンポーネントと並べて監視できます。
Using SBOMs for improved cybersecurity
ビルド時SBOMがリリース後の脆弱性監視にどうつながるかを解説します。これはまさにCRACIのSBOM生成と脆弱性トラッキングが担う役割です。
Kubernetes Community Days Helsinki 2026でのPetteri Pulkkinen、Erika Marttinen、SBOMbastic: Getting Ready for Upcoming EU Cybersecurity Regulation in Software Supply Chainsの22:11~23:27。
6. サプライチェーンの追跡:CRACI Digital Inventory
すべてのビルドにSBOMと接続先のネットワークトレースがあり、CRACI APIからSBOM、ネットワークトレース、来歴を取得できます。新たな脆弱性や侵害されたパッケージがニュースになったとき、どのビルドが影響を受けているかを1か所で答えられます。
7. サプライチェーンのレポート:CRACI Compliance Reporting
その過程で収集されたエビデンスは、それを求める顧客、ベンダー、当局に届けられます。SBOMはコンポーネントで見つかった脆弱性を含めてCycloneDXまたはSPDXでエクスポートでき、APIからSBOM、ネットワークトレース、来歴を取得でき、お客様が提出するCRAの脆弱性通知の内容をCRACIが準備します。
その背景にある規則として最もよく知られているのはCyber Resilience Actですが、それだけではありません。どのフレームワークでも求められることは同じです。ソフトウェアに何が含まれているかを把握し、その脆弱性を発見して対処するプロセスを持つことです。
- 欧州サイバーレジリエンス法(CRA):EUで販売されるデジタル要素を含む製品について、SBOMと脆弱性への対処を求め、2026年9月から報告義務が始まります。
- NIS2:必須事業体および重要事業体に対し、サプライチェーンのセキュリティと、脆弱性の対処および開示を求めます。
- ISO/IEC 27001:SBOMを名指ししてはいませんが、附属書Aの管理策は資産目録(5.9)、ICTサプライチェーンにおけるセキュリティ(5.21)、技術的脆弱性の管理(8.8)を求めています。ビルド時SBOMと継続的な監視は、この3つすべてのエビデンスになります。コンプライアンスのエビデンスとしてのSBOMをご覧ください。
- 米国FDA:コネクテッド医療機器の市販前申請にSBOMを求め、リリース後に脆弱性を監視し対処する計画も求めています。
- 米国大統領令14028:連邦政府に販売するベンダー向けのソフトウェアサプライチェーンに関するガイダンスで、製品ごとのSBOMと脆弱性開示プロセスを求めています。
CRACIは、これらのフレームワークが想定するSBOMと継続的な脆弱性監視、そしてコンプライアンス上の主張を裏付けるエビデンスを提供します。各フレームワークへの準拠は引き続きお客様のプロセスですが、そのうちエビデンスの部分はCRACIが自動化します。
8. デプロイ:ステージングと本番
ステージング環境と本番環境に届くものは、お客様のネットワークポリシーのもとでビルドされ、ビルド中に記録されたSBOMを持ち、リリース後も新たな脆弱性について監視されています。
さらに詳しく
- CI/CD連携
- SBOM生成
- 脆弱性トラッキング
- CRAのエビデンスとSBOMのエクスポート
- CRACIドキュメント(GitHub組織の接続方法や最初のワークフローの移行方法を含む)
- スタックの中でのCRACIの位置付けは、CRACIが置き換えるもの、併用するものをご覧ください。