Google Cloud Platform

Grafeas 登場 : ソフトウェア サプライチェーンの監査、統制のためのオープンソース API

大規模なソフトウェアの構築にはソフトウェア サプライチェーンの強力な統制が必要であり、強力な統制のためには良質なデータが必要です。Google はこのたび、JFrog、Red Hat、IBM、Black Duck、Twistlock、Aqua Security、CoreOS の各社とともに、ソフトウェア サプライチェーンの監査と統制の統一的な方法を提供するオープンソース API、Grafeas を発表しました。

Grafeas(ギリシャ語の “書記”)は、成長し続けるソフトウェア開発チームとパイプライン全体にわたって組織のポリシーを追跡し、徹底させるために必要となる正しい情報の一元的な供給源となるものです。ビルド、監査、コンプライアンス ツールは、Grafeas API を介することで、あらゆるタイプのソフトウェア コンポーネントに関する包括的なメタデータの格納やクエリ、取得を行うことができます。

Google は、Grafeas プロジェクトの一環として、より安全なソフトウェア サプライチェーン ポリシーの徹底に役立つ Kubernetes ポリシー エンジンの Kritis も提供します。Kritis(ギリシャ語の “判事”)を使えば、企業は Grafeas に格納されているコンテナ イメージ プロパティ(たとえば、ビルド証明やテスト ステータス)のアテステーションに基づき、デプロイ時に Kubernetes クラスタのコンテナ プロパティをリアルタイムで強制することができます。

私たち Shopify は、本番環境に送り込むすべてのコンテナを監視、統制する包括的な方法を探していました。私たちは毎営業日に 6,000 ものビルドを出荷し、33 万種以上のコンテナ イメージを含むレジストリを保守しています。弊社の Kubernetes パイプラインに Grafeas と Kritis を導入すれば、弊社で作るすべてのコンテナ イメージの脆弱性とビルドの情報を自動的に保存し、Shopify ビルド コンテナのポリシーを徹底させることができます。弊社の Kubernetes クラスタは、ビルダーが署名したイメージしか実行しません。Grafeas と Kritis は、デベロッパーをコード開発に専念させつつ、今まで以上のセキュリティ保護に本当に役に立ちます。より多くの企業が Grafeas と Kritis をプロジェクトに組み込むことを期待しています。Jonathan Pulsifer 氏、Shopify のシニア セキュリティ エンジニア(Shopify のブログもご覧ください)

大規模なガバナンスが抱える課題

ソフトウェア サプライチェーンを保護していくことは、規模の大小を問わず、企業にとって非常に厄介な仕事になっています。その背景には、以下のようなトレンドがあります。

  • 拡大し、細分化されるツールセット : 組織の規模や業務内容が拡大していくと開発言語やツールの使用が増え、その開発ライフサイクルを把握してコントロールし続けることが難しくなります。
  • オープンソース ソフトウェアの採用 : オープンソース ソフトウェアはデベロッパーの生産性を高めますが、同時に監査や統制も複雑にします。
  • 管理の分散化と継続的デリバリ : 技術部門に自律性を与え、ソフトウェアを継続的に出荷するようになると(“push on green”)、開発のスピードは上がりますが、ベスト プラクティスや標準の遵守は難しくなります。
  • ハイブリッド クラウドへのデプロイ : オンプレミス、プライベートおよびパブリック クラウドのクラスタを併用してそれぞれの長所を手に入れようとする企業が増えていますが、そうした多様な環境の運用状況を 360 度の視点で把握することは容易ではありません。
  • マイクロサービス アーキテクチャ : 大規模なシステムをコンテナ ベースのマイクロサービスに分割すると、すべての部品を追跡することが難しくなります。
その結果、企業はベンダーごとに異なる形式のメタデータを大量に作り出し、それをさまざまな場所に格納するようになりました。そうした企業の CIO たちは、統一的なメタデータ スキーマと正しい情報の一元的な供給源がない状況下で、ソフトウェア サプライチェーンの統制という困難に取り組んでいます。彼らは、「ソフトウェア コンポーネント X は今、デプロイされているのか」「本番デプロイされたコンポーネントは、すべて必須のコンプライアンス テストに合格しているのか」「脆弱性 Y は、本番コードのどれかに影響を与えているのか」といった基本的な問いに答えることにも苦労しているのです。

Grafeas のアプローチ

Grafeas は、ソフトウェア サプライチェーンの円滑な管理に必要なメタデータを構造化して一元管理する知識ベースを提供します。Grafeas には、Google が数百万のリリースと数十億のコンテナを通じて構築してきた社内セキュリティとガバナンス ソリューションのベスト プラクティスが反映されています。それは次のとおりです。

  • 止むことのない高度な脅威に対する予防的なセキュリティ体制を確立するため、コンテナなどのイミュータブルなインフラストラクチャを使うこと
  • 本番デプロイを保護するため、包括的なコンポーネントのメタデータとセキュリティ アテステーションに基づいて、ソフトウェア サプライチェーンにセキュリティ コントロールを組み込むこと
  • 共通仕様とオープンソース ソフトウェアを基軸としてシステムの柔軟性を保ち、開発ツールの相互運用性を確保すること
Grafeas は、上記のベスト プラクティスをソフトウェア開発環境に適用することの支援を目的に、以下の機能とデザイン ポイントに基づいて一から設計されています。

  • 包括性 : Grafeas は、ソフトウェア コンポーネントのユニークな識別情報(たとえばコンテナのイメージ ダイジェスト)に対応させた形で構造化メタデータを格納するため、コンポーネントのレジストリを並置する必要がなく、コンポーネントに関するメタデータをさまざまなリポジトリから格納できます。
  • ハイブリッド クラウドとの相性の良さ : ハイブリッド クラウド デプロイの一元的かつ汎用のコンポーネント リポジトリとして JFrog Artifactory を使用できるのと同様に、Grafeas API は一元的で汎用的なメタデータ ストアとして使用できます。
  • プラガブル : Grafeas を使用すると、メタデータの新しいプロデューサ、コンシューマを簡単に追加できます(たとえば、脆弱性スキャナを追加または変更する場合や、新しいビルド システムを追加する場合)。
  • 構造化 : 一般的なメタデータ タイプ(脆弱性、ビルド、アテステーション、パッケージ インデックス メタデータなど)に対するメタデータ スキーマが構造化されているので、新しいメタデータ タイプとプロバイダを追加でき、Grafeas 対応ツールはすぐにそれらの新ソースに対応できます。
  • 強力なアクセス制御 : Grafeas のもとでは、メタデータの複数のプロデューサやコンシューマのアクセスを慎重に制御できます。
  • 豊かなクエリ能力 : Grafeas を使用すると、すべてのコンポーネントのあらゆるメタデータを簡単に照会できるため、各コンポーネントのモノリシックなレポートを読み取る必要はありません。

細分化されたメタデータの統合と一元管理

ソフトウェア サプライチェーンの各ステージ(コーディング、ビルド、テスト、デプロイ、運用)では、さまざまなツールがさまざまなソフトウェア コンポーネントについてのメタデータを生成します。たとえば、デベロッパーのアイデンティティ情報、コードのチェックインおよびビルド日時、検出された脆弱性、合格または不合格になったテストなどです。

こうしたメタデータは Grafeas に取り込まれます。次の図は、ソフトウェア開発、テスト、運用チーム、さらには CIO にメタデータの可視性を提供する Grafeas のユース ケースを示しています。

QKTwC4FDghoUy6DOrWEL_B2V5kDBiMHUaNsEy5Ne5Ge7D2naygkI5W1dtAayfxOfskRnKgeg4_L9s29dP5JSD9t-CdIYZ1aUUE0cbfgSXvOstkDuXpGoWbdL0rWh0w9ryCoNIgTb2nar.PNG

メタデータの包括的かつ統一的なビューを提供するため、私たちは Grafeas を開発し、ベンダー間のコラボレーションと互換性確保を促進しています。また、Grafeas をオープンソースとしてリリースし、エコシステム全体にわたってコントリビューターと協力しながらプラットフォームの発展のために作業を行っています。

  • JFrog は、JFrog Xray API に Grafeas を組み込もうとしており、一方の環境(たとえば Xray のオンプレミス環境)のメタデータをもう一方の環境(たとえば Google Cloud Platform)で使えるようなハイブリッド クラウド ワークフローをサポートします。詳細は JFrog のブログをご覧ください。
  • Red Hat は、OpenShift における Red Hat Enterprise Linux コンテナのセキュリティ機能と自動化を Grafeas で拡張することを予定しています。詳細は Red Hat のブログをご覧ください。
  • IBM は、IBM Cloud の IBM Container Service の一部として Grafeas と Kritis を提供することと、Google の Vulnerability Advisor と DevOps ツールを Grafeas API に統合することを計画しています。詳細は IBM のブログをご覧ください。
  • Black Duck は、Google Container RegistryGoogle Container Engine にエンタープライズ レベルの改良されたオープンソース セキュリティを導入するため、Grafeas の Google アーティファクト メタデータ API 実装を組み込む作業を Google と共同で進めています。詳細は Black Duck のブログをご覧ください。
  • Twistlock は、Grafeas と統合され、詳細な脆弱性およびコンプライアンス データをオーケストレーション ツールに直接パブリッシュし、コンテナ操作に関する洞察と信頼性を顧客に提供します。詳細は Twistlock のブログをご覧ください。
  • Aqua Security は、Grafeas と統合され、脆弱性や違反情報をパブリッシュし、コンポーネント メタデータ情報に基づいてランタイム セキュリティ ポリシーを徹底させます。詳細は Aqua Security のブログをご覧ください。
  • CoreOS は、企業向け Kubernetes プラットフォームである Tectonic のイメージ セキュリティ スキャニングとアプリケーション ライフサイクル ガバナンスを拡張するため、Grafeas と Tectonic の統合を検討しています。
すでに一部のコントリビューターは、Grafeas の近日中のリリースと統合を計画しています。

  • JFrog による Grafeas API の Xray 実装
  • Grafeas の Google アーティファクト メタデータ API 実装と、Google Container Registry の脆弱性スキャニング
  • JFrog Xray と Googleアーティファクト メタデータ API の双方向メタデータ同期
  • Black Duck の Grafeas および Google アーティファクト メタデータ API の組み込み
この勢いに乗り、2018 年の初めには、ほかにも多数のコントリビューションが Grafeas プロジェクトでなされることを期待しています。

さあ、あなたもこの世界へ

ソフトウェアの構築とデプロイの方法が根本的に変わろうとしています。大企業がコンテナ、マイクロサービス、オープンソース、ハイブリッド クラウドのメリットを享受するつもりなら、ソフトウェア開発プロセスを下支えする強力なガバナンス レイヤが必要なのです。

最後に、Grafeas プロジェクトについてさらに詳しく知り、コントリビュートするための方法を紹介します。

ぜひ、ご参加ください!

* この投稿は米国時間 10 月 12 日、Developer Platforms の Product Manager である Stephen Elliott と、Container Security の Product Manager である Jianing Guo によって投稿されたもの(投稿はこちら)の抄訳です。

- By Stephen Elliott, Product Manager, Developer Platforms and Jianing Guo, Product Manager, Container Security