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

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 仕様に従って、ソフトウェア ビルドプロセスの成熟度を示します。 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 を構成できます。

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

  • Cloud Build でビルド
  • 指定した重大度を超える脆弱性は含まれません。 アプリケーションに適用されない特定の脆弱性がある場合は、それらを許可リストに追加できます。

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

料金

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

次のステップ