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

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 サービスには独自の料金が設定されています。詳細については、関心のあるサービスの料金ドキュメントをご覧ください。

次のステップ