ソフトウェア サプライ チェーンのセキュリティ

Google Cloud には、デベロッパー、DevOps、セキュリティ チームがソフトウェア サプライ チェーンのセキュリティ体制を強化するために使用できる Google Cloud プロダクトに、包括的でモジュール式の一連の機能とツールが用意されています。

ソフトウェア サプライ チェーン

ソフトウェアのサプライ チェーンは、組織の内外でソフトウェアの開発と提供に貢献するすべてのコード、人、システム、プロセスで構成されます。このプログラムには、次の内容が含まれます。

  • 作成したコード、その依存関係、およびソフトウェアの開発、ビルド、パッケージ化、インストール、実行に使用する内部および外部ソフトウェア。
  • システム アクセス、テスト、レビュー、モニタリングとフィードバック、コミュニケーション、承認のプロセスとポリシー。
  • ソフトウェアとその依存関係の開発、ビルド、保存、実行に信頼できるシステム。

ソフトウェアのサプライ チェーンは広範囲にわたり複雑であることから、ユーザーに提供するソフトウェアに不正な変更を導入する方法は多数あります。これらの攻撃ベクトルは、ソフトウェア ライフサイクル全体にわたります。SolarWinds ビルドシステムに対する攻撃など、一部の攻撃はターゲット化されていますが、他の脅威は間接的なものか、プロセス中の弱点または怠慢を通じてサプライ チェーンに侵入する攻撃です。

たとえば、2021 年 12 月に Google Open Source Insights チームが行った Apache Log4j の脆弱性の評価では、Maven Central 内で影響を受けたパッケージが 17,000 件以上あることが判明しました。これらのパッケージのほとんどは、脆弱性のある log4j-core パッケージに直接依存しませんでしたが、そのパッケージを必要とする依存関係がありました。

開発手法とプロセスもソフトウェア サプライ チェーンに影響します。コードレビューの欠如や本番環境へのデプロイに関するセキュリティ基準などのプロセスギャップによって、不正なコードがサプライ チェーンに意図せずに入り込む可能性があります。同様に、依存関係管理がないと、開発、ビルド、デプロイに使用する外部ソースやソフトウェア パッケージの脆弱性のリスクが高まります。

Google Cloud でソフトウェア サプライ チェーンを保護する

Google Cloud が提供:

次の図は、ソフトウェア サプライ チェーンを保護するために連携する Google Cloud サービスを示しています。これらのコンポーネントの一部またはすべてをソフトウェア サプライ チェーンに統合して、セキュリティ体制を強化できます。

Google Cloud ソフトウェア サプライ チェーンのコンポーネント

開発環境を保護する

Cloud Workstations は、Google Cloud 上でフルマネージド開発環境を提供します。IT 管理者とセキュリティ管理者は、開発環境のプロビジョニング、スケーリング、管理、保護を行うことができます。デベロッパーは、一貫した構成とカスタマイズ可能なツールを使用して開発環境にアクセスできます。

Cloud Workstations は、アプリケーション開発環境のセキュリティ体制を強化することで、セキュリティをシフトレフトします。セキュリティ機能には、VPC Service Controls、非公開の上り(内向き)または下り(外向き)ネットワーク、強制イメージ更新、Identity and Access Management アクセス ポリシーなどがあります。Cloud Workstations は、Chrome Enterprise Premium と組み合わせることで、追加のデータ損失防止機能を提供します。

ソフトウェア サプライを保護する

ソフトウェアのサプライ、つまり、ビルド アーティファクトとアプリケーションの依存関係を保護することも、ソフトウェア サプライ チェーンのセキュリティを強化するうえでの重要なステップです。オープンソース ソフトウェアが普及すると、この問題は特に難しい課題となります。

  • Assured Open Source Software は、Google が検証してテストしたオープンソース パッケージを提供します。これらのパッケージは Google の安全なパイプラインを使用して構築されており、脆弱性を発見するために定期的にスキャン、分析、テストが行われます。

  • Artifact Registry は、すべてのビルド アーティファクトと依存関係に対応するユニバーサル パッケージ マネージャーです。すべてのアーティファクトと依存関係を一元化することで、ソフトウェア サプライ チェーン内のコードをより詳細に把握し、管理できるようになります。

    • リモート リポジトリには、事前に設定された外部ソース(Docker Hub、Maven Central、Python Package Index(PyPI)、Debian、CentOS など)からのアーティファクトと、サポートされている形式のユーザー定義のソースが保存されます。リモート リポジトリでアーティファクトをキャッシュに保存すると、ダウンロード時間が短縮され、パッケージの可用性が向上します。また、スキャンが有効になっている場合は脆弱性スキャンも含まれます。
    • 仮想リポジトリは、同じ形式のリポジトリを 1 つのエンドポイントに統合し、アップストリーム リポジトリ全体の検索順序を制御できるようにします。プライベート パッケージに優先順位を付けることで、依存関係の混乱攻撃のリスクを軽減できます。
    • アクセス制御、VPC Service Controls サービス境界、組織のポリシーなどのセキュリティ機能を構成して、アーティファクトを保護することもできます。詳細については、Artifact Registry のドキュメントをご覧ください。
  • Artifact Analysis は、Artifact Registry 内のアーティファクトの脆弱性を事前に検出します。

CI/CD パイプラインを保護する

不正な行為者は、CI / CD パイプラインを不正使用することでソフトウェア サプライ チェーンを攻撃できます。次のプロダクトは、CI/CD パイプラインの保護に役立ちます。

  • Cloud Build は、Google Cloud インフラストラクチャでビルドを実行します。セキュリティ機能には、きめ細かい IAM 権限、VPC Service Controls、分離されたエフェメラルなビルド環境などがあります。ソフトウェア サプライ チェーンのセキュリティに固有の機能には、次のようなものがあります。

    • コンテナ イメージの SLSA レベル 3 のビルドのサポート。
    • コンテナ化されたアプリケーションの認証済みで改ざん不可能なビルドの来歴を生成できる。
    • ビルドされたアプリケーションのセキュリティ分析情報。モニタリング対象には以下が含まれます。

      • SLSA ビルドレベル。SLSA 仕様に従って、ソフトウェア ビルドプロセスの成熟度を示します。
      • ビルド アーティファクトの脆弱性。
      • ビルドの来歴。ビルドに関する検証可能なメタデータのコレクションです。これには、ビルドされたイメージのダイジェスト、入力ソースの場所、ビルド ツールチェーン、ビルドステップ、ビルド時間などの詳細情報が含まれます。

    ビルドされたアプリケーションのセキュリティ分析情報を表示する手順については、アプリケーションをビルドしてセキュリティ分析情報を表示するをご覧ください。

  • Cloud Deploy は、定義した順序で、一連のターゲット環境へのアプリケーションの配信を自動化します。これは Google Kubernetes Engine、GKE Enterprise、Cloud Run に対する直接の継続的デリバリーをサポートし、ワンクリックでの承認とロールバック、エンタープライズ セキュリティおよび監査、組み込みの配信指標が利用できます。また、デプロイされたアプリケーションのセキュリティ分析情報を表示します。

本番環境のアプリケーションを保護する

Google Kubernetes Engine(GKE)Cloud Run は、ランタイム環境のセキュリティ体制を保護するのに役立ちます。どちらも、実行時にアプリケーションを保護するセキュリティ機能を備えています。

  • GKE は、コンテナのセキュリティ対策を評価し、クラスタ設定、ワークロード構成、脆弱性に関する積極的なガイダンスを提供します。GKE には、セキュリティ対策を改善するために役立つ推奨事項を提供するセキュリティ ポスチャー ダッシュボードが含まれています。GKE セキュリティ対策ダッシュボードでセキュリティ分析情報を表示する手順については、GKE にデプロイしてセキュリティ分析情報を表示するをご覧ください。

  • Cloud Run には、SLSA ビルドレベルのコンプライアンス情報、ビルドの来歴、実行中のサービスで見つかった脆弱性などのソフトウェア サプライ チェーンのセキュリティ分析情報を表示するセキュリティ パネルが含まれています。Cloud Run のセキュリティ分析情報パネルでセキュリティ分析情報を表示する手順については、Cloud Run にデプロイしてセキュリティ分析情報を表示するをご覧ください。

ポリシーを使用して信頼チェーンを構築する

Binary Authorization は、イメージを証明するデジタル ドキュメントである証明書を収集することで、ソフトウェア サプライ チェーンに沿った信頼チェーンの確立、維持、検証に役立ちます。

証明書は、特定の必要なプロセスが正常に実行され、関連するイメージがビルドされたことを示します。収集された証明書に基づいて、Binary Authorization は信頼ベースのポリシーの定義、検証、適用に役立ちます。イメージがデプロイされるのは、証明書が組織のポリシーに準拠している場合のみです。ポリシー違反が検出された場合に通知するように Binary Authorization を構成できます。

たとえば、証明書はイメージが次のいずれかであることを示します。

GKE と Cloud Run で Binary Authorization を使用できます。

料金

各 Google Cloud サービスには独自の料金があります。詳細については、ご希望のサービスに関する料金ドキュメントをご覧ください。

次のステップ