Chainloop:ソフトウェアサプライチェーン向けオープンソースのエビデンスストア兼ポリシーエンジン

Chainloopは、ソフトウェアサプライチェーンのためのオープンソースのエビデンスストアです。コマンドラインツールがGitHub Actions、GitLab、Jenkins、あるいはDagger のパイプライン内で動作し、ビルドの成果物を取得してコンテンツアドレス指定型のストレージにアップロードし、それぞれのファイルを署名付きのin-toto attestation内で参照します。in-totoとは、ビルドのどのステップを誰が実行したかを記録するための仕様で、これにより後からその記録を検証できます。

コンプライアンス・セキュリティチームは、どの継続的インテグレーション(CI)プロバイダーが生成したものであっても、それらすべてがすでに署名済みの状態で集約されるコントロールプレーンを手に入れられます。

Image

この仕組みが埋めているギャップは、それを持たないパイプラインを見ればすぐに分かります。あるビルドは、リリースに含まれるすべての依存関係を列挙した部品表(SBOM)、静的解析ツールの検出結果を記録したSARIFファイル、カバレッジレポート、コンテナイメージの参照情報、そしてセキュリティ部門が昨年購入した商用ツールによるスキャン結果を生成します。

それぞれのファイルはバラバラの場所に保存されます。どれもそれらを生成したコミットと紐づける署名がないため、半年後に顧客から「あるリリースにどのバージョンの圧縮ライブラリが含まれていたか」と問われたとき、担当者はビルドログを掘り返して、検証のしようがない答えを組み立てるしかなくなります。

契約(コントラクト)が強制力を持つ

Workflow Contract(ワークフロー契約)は、ビルドが何を提出すべきかを宣言します。具体的には、どの成果物を、どのビルド情報とともに、どの環境でワークフローを実行しなければならないかを定めます。

この契約はコンプライアンス・セキュリティチームが記述し、Chainloopは成果物とattestationの作成がその契約を満たしているかをチェックします。つまり、部品表(SBOM)の出力を止めてしまったパイプラインは、その時点で契約違反となります。Open Policy Agentが使用する言語で書かれたRegoポリシーも同じ契約に紐づけられます。これらは自動的に評価され、その結果は署名・保存される前のattestationに書き込まれるため、あるビルドに対する判定結果は、後から誰かが編集できるダッシュボード上ではなく、署名済みの記録そのものの中に残ります。

17種類の名前付きエビデンス形式が第一級のサポート対象となっており、実際にカバーされる形式の総数はそれ以上にのぼります。CycloneDXおよびSPDXの部品表(SBOM)、OpenVEX、4種類のCSAF文書形式、SARIF、ZAPのDAST結果、BlackDuckのSCA出力、PrismaCloud Twistcliのスキャン結果、GitLabのセキュリティレポート、JUnitの結果、JaCoCoのXMLカバレッジ、Helmチャート、コンテナイメージの参照情報などが含まれます。それ以外のものは、カスタムエビデンス形式(たとえばJSON形式の承認レポートなど)、あるいはキーバリュー形式のメタデータとして、4つの汎用カテゴリのいずれかに分類して取り込めます。

署名方式も一つに限定されていません。エビデンスはSigstore経由、あるいはAWS KMSやKeyfactorを含む組織独自のPKI経由でも署名可能です。これは、鍵を社内で管理し続ける必要がある組織にとって重要なポイントです。

2つの利用者、1つの統合ポイント

成果物とエビデンスは、OCIレジストリやクラウドのBLOBストレージへ振り分けたり、部品表(SBOM)解析のためにDependency-TrackやGuacへ送信したり、Jira、Discord、Slackへ通知したりできます。解析用のバックエンドを切り替えても、パイプライン側はcrafting toolとしかやり取りしないため、パイプライン自体に変更を加える必要はありません。

コンプライアンス・セキュリティチームは契約を定義し、ポリシーを作成し、これらの連携を設定し、コントロールプレーンへのアクセス権を管理します。一方、開発チームに対しては別のアプローチが用意されています。

各種規制が求めていること

FedRamp、米国の大統領令14028号、EUのサイバーレジリエンス法(Cyber Resilience Act)、そしてデジタルオペレーショナルレジリエンス法(DORA)は、いずれも「何が出荷されたか」という問いを、誰かが期限内に答えなければならない問いへと変えてしまいます。本プロジェクトでは、サイバーレジリエンス法向けと、Chainloopが単一の信頼できる情報源としてレベル3への準拠を目指しているサプライチェーンフレームワーク「SLSA」向けのガイドを公開しています。FedRampガイドについても、公開予定として掲載されています。

コマンドラインツールは、デフォルトではホスト型のChainloopインスタンスを参照する設定になっています。これは試用には便利な反面、エビデンスが自社のインフラの外に出ることを意味します。Helmチャートを自社のKubernetesクラスタ上で実行すれば、コントロールプレーンを再び社内に戻すことができます。

ChainloopはGitHubにて無料で公開されています。

翻訳元: https://www.helpnetsecurity.com/2026/08/10/chainloop-open-source-supply-chain-security/

ソース: helpnetsecurity.com