Cloud Storage の脅威モデル レポート

最終更新日: 2026 年 5 月 22 日

このドキュメントでは、Cloud Storage のデータの機密性、完全性、可用性に対する潜在的な攻撃ベクトルと緩和策について説明します。このレポートの範囲は、Cloud Storage 環境内で管理できるリスクに焦点を当てた、ユーザーの視点に限定されます。

これらの脅威モデルは、現在判明している攻撃ベクトル、アーキテクチャの前提、公開時のシステムの指定されたスコープに基づく確率的評価です。これらのモデルは網羅的なものではなく、Google Cloud のお客様のセキュリティとリスクの評価のベースラインとして、またリスク軽減の意思決定を導くことを目的としています。

このサービスに対して、次の脅威が特定されました。

脅威の詳細

以降のセクションでは、各脅威、その兆候、推奨される緩和策について説明します。

安全でないアクセス構成を使用した情報開示

アクセス制御が正しく構成されていないと、Cloud Storage オブジェクトに保存されているセンシティブ データが不正なユーザーに公開される可能性があります。アクセス制御の構成ミスは、最も一般的で影響の大きいクラウド セキュリティの問題の一つです。

STRIDE カテゴリ

情報開示

MITRE ATT&CK の戦術

コレクション

マニフェステーション
  • 公開バケットの公開: Cloud Storage バケットは、IAM 許可ポリシーで allUsers アカウントまたは allAuthenticatedUsers アカウントに Storage Object Viewer などのロールを付与することで公開されます。公開アクセスの防止が適用されていない場合、これらのロールはすべてのオブジェクトをインターネットに公開します。

  • 署名付き URL の漏洩: 一時的なベアラートークンとして機能する署名付き URL が、クライアントサイド コード、ログ、安全でない送信を通じて誤って漏洩します。URL を取得した外部ユーザーまたはアプリケーションは、URL 署名の有効期限が切れるまで、指定された Cloud Storage オブジェクトに権限(読み取りや書き込みなど)でアクセスできます。

  • IAM 権限が広すぎる: ユーザー アカウントやサービス アカウントなどの ID に、データの小さなサブセットへのアクセスのみが必要な場合に、多くのバケットにわたって広範な権限(storage.objects.getstorage.objects.list など)が付与されています。

  • ID 認証情報の漏洩: 攻撃者がユーザー アカウントまたはサービス アカウント キーの認証情報を取得し、Cloud Storage JSON API に対して認証を行い、漏洩した ID が閲覧を許可されているすべてのデータにアクセスします。

  • ロードバランサの構成ミス: バックエンドとして Cloud Storage バケットが構成されている Cloud Load Balancing インスタンスは、バケット自体が公開されていなくても、オブジェクトを公開するように誤って構成される可能性があります。この構成ミスにより、Cloud Storage IAM の直接制御をバイパスして、データへの代替アクセス パス(セキュリティが低い可能性がある)が作成されます。

  • CDN キャッシュの不適切な設定: Cloud Storage バケットが Cloud Load Balancing と Cloud CDN のバックエンドとして使用されている場合、構成が誤っていると、センシティブ データが Google のパブリック エッジ ロケーションにキャッシュ保存される可能性があります。バックエンド サービスが正しい Cache-Control ヘッダー(private や no-store など)を発行しない場合、CDN はキャッシュに保存されたコンテンツを承認されていないユーザーに提供し、バケットの IAM チェックをバイパスする可能性があります。

緩和策
  • storage.publicAccessPrevention 組織のポリシー制約を使用して、個々のストレージ バケットまたはプロジェクト、フォルダ、組織レベルで公開アクセスの防止を適用します。

  • 均一なバケットレベルのアクセスを使用して、権限を簡素化し、以前の ACL を回避します。

  • 顧客管理の暗号鍵(CMEK)を構成して、保存データを暗号化で保護します。

  • 署名付き URL の有効期限はできるだけ短くします。

  • 不正使用されたサービス アカウント キーや未使用のサービス アカウント キーを定期的に監査して削除します。

  • VPC Service Controls を実装してサービス境界を作成し、認証情報が盗まれた場合でもデータの引き出しを防ぎます。

  • Cloud Storage コンテンツを配信するロードバランサに Cloud Armor ポリシーが適用され、アクセスが制限されていることを確認します。

IAM の構成ミスによる権限昇格

特定の、一見無害な IAM 権限を持つ攻撃者は、権限を昇格させて、Cloud Storage バケットとそのデータに対する管理制御など、より広範なアクセス権を取得できます。この脅威は、意図したセキュリティ ポスチャーを回避し、最小権限の原則を破ります。

STRIDE カテゴリ

権限昇格

MITRE ATT&CK の戦術

権限昇格

マニフェステーション
  • ポリシーの直接変更: Cloud Storage バケットに対する storage.buckets.setIamPolicy 権限が付与されたユーザーやサービス アカウントなどの ID は、許可ポリシーを直接変更できます。この構成では、攻撃者が Storage Admin などの特権ロールを自分に付与できるため、バケットの構成とデータを完全に制御できます。

  • サービス アカウントの権限借用: サービス アカウントに対する iam.serviceAccounts.actAs 権限を含む roles/iam.serviceAccountUser などのロールを持つ ID は、サービス アカウントを Compute Engine インスタンスなどの他のリソースに関連付けて、関連付けられたサービス アカウントの ID でコードを実行できます。または、iam.serviceAccounts.getAccessToken などの権限を含む roles/iam.serviceAccountTokenCreator などのロールを持つ ID は、そのサービス アカウントのアクセス トークンを生成できます。ターゲット サービス アカウントに Cloud Storage リソースに対する昇格された権限がある場合、攻撃者はそれらの権限を実質的に継承します。

  • 署名付き URL の生成: サービス アカウントに対する iam.serviceAccounts.signBlob 権限を持つ ID は、V4 署名付き URL を生成できます。これらの URL を使用すると、攻撃者はサービス アカウントが読み取りまたは書き込みできるオブジェクトへの一時的なベアラー トークン アクセスを作成できます。これにより、より制限の厳しいネットワーク制御や、攻撃者自身の Cloud Storage 権限の欠如を回避できる可能性があります。

緩和策
  • 最小権限の原則に従います。絶対に必要な場合を除き、storage.buckets.setIamPolicyiam.serviceAccounts.actAsiam.serviceAccounts.signBlob などの権限をロールに追加しないでください。IAM 条件を使用して、権限を特定のリソースまたは期間に制限します。Cloud Asset Inventory などのツールを使用して許可ポリシーを定期的に監査し、過剰な権限を検出して削除します。

  • 署名付き URL を処理するアプリケーションが、署名付き URL をログに記録したり、サードパーティがスクレイピングできる方法で公開したりしないようにします。たとえば、Cloud CDN を使用して署名付き URL をキャッシュに保存する場合は、適切な Cache-Control ヘッダーを設定して、署名付き URL で非公開にして認証する必要がある機密オブジェクトが一般公開されないようにします。

過剰な権限を使用したデータの改ざんまたは破壊

十分な権限を持つ攻撃者は、Cloud Storage システム内のデータと構成を変更、破損、完全に削除し、データの完全性と可用性を損なう可能性があります。

STRIDE カテゴリ

改ざん

MITRE ATT&CK の戦術

影響

マニフェステーション
  • オブジェクトの直接操作: storage.objects.create または storage.objects.delete 権限を持つ ID は、個々の Cloud Storage オブジェクトを上書きまたは破棄できます。

  • ライフサイクル ポリシーの悪用: storage.buckets.update 権限を持つ攻撃者は、バケットのオブジェクトのライフサイクル管理構成を変更して、すべてのオブジェクトを直後または短期間で削除するルールを作成し、大量のデータを破壊する可能性があります。

  • バケットの削除: storage.buckets.delete 権限を持つ特権の高い攻撃者は、Cloud Storage バケット全体を削除し、関連付けられているすべてのオブジェクト、構成、ポリシーを即座に破棄できます。

  • 通知のハイジャック: storage.buckets.update 権限を持つ攻撃者は、Pub/Sub 通知構成を悪意のある方法で変更または削除できます。この攻撃により、これらのイベントに依存するダウンストリーム システムが機能しなくなったり、通知が攻撃者が制御するトピックにリダイレクトされたりする可能性があります。

緩和策
  • 不変ストレージまたは最小保持期間が必要な場合は、バケット全体のバケットロック、または個々のオブジェクトのオブジェクト ロックを構成します。

  • 重要なデータを含むバケットに対する誤操作や悪意のある書き換えからの復元を計画するために、オブジェクトのバージョニングと削除(復元可能)ポリシーを構成します。指定された削除(復元可能)期間を実装します。これにより、完全に削除される前にオブジェクトを検出して復元するのに十分な時間を確保できます。

  • 重要なデータを含むバケットでデータアクセス監査ログを有効にして、不規則なアクセス パターンのモニタリングに役立てます。

構成が誤っている Storage Transfer Service ジョブを使用したデータの引き出し

storagetransfer.transferjobs.create または storagetransfer.transferjobs.update 権限を持つ攻撃者は、Storage Transfer Service ジョブを作成または変更して、機密性の高い Cloud Storage バケットから別のプロジェクトの攻撃者が制御するバケットにデータをコピーできます。この攻撃ベクトルを使用すると、storage.objects.get などの直接 API 呼び出しに重点を置いた一般的なデータアクセス モニタリングをバイパスして、大量のデータをサイレントかつ継続的に漏洩させることができます。

STRIDE カテゴリ

情報開示

MITRE ATT&CK の戦術

データの引き出し

マニフェステーション

悪意のある転送ジョブの作成: storagetransfer.transferjobs.create または storagetransfer.transferjobs.update 権限を持つ攻撃者が、Storage Transfer Service ジョブを作成または変更して、機密性の高い Cloud Storage バケットから別のプロジェクトの攻撃者が制御するバケットにデータをコピーします。

緩和策
  • storagetransfer.transferjobs.createstoragetransfer.transferjobs.update の IAM 権限を厳密に制限します。これらの権限は、信頼できる管理アカウントで使用されるロールにのみ割り当てます。

  • VPC Service Controls の境界を実装して、境界内のサービスと境界外のサービス間の通信を制限します。

  • 転送ジョブの権限を付与するロールに IAM 条件を使用して、ソースバケットと宛先バケットを既知の承認済みロケーションに制限します。

  • Storage Transfer Service ジョブの作成と変更について、Cloud Audit Logs を定期的にモニタリングします。信頼できない宛先または外部宛先を指定するジョブのアラートを構成します。

依存関係の管理ミスによるデータアクセスの喪失

重要なサービス依存関係に対する攻撃や管理ミスにより、Cloud Storage のデータへの正当なアクセスが拒否され、ストレージ システム自体が直接侵害されていなくてもデータにアクセスできなくなる可能性があります。

STRIDE カテゴリ

改ざん

MITRE ATT&CK の戦術

影響

マニフェステーション
  • CMEK の使用不可: Cloud Storage バケットが CMEK を使用するように構成されている場合、基盤となる Cloud KMS 鍵を無効にするか削除すると、その鍵で暗号化されたすべてのオブジェクトに暗号的にアクセスできなくなります。Cloud Storage サービス エージェントは復号化を実行できないため、そのデータに対するサービスが完全に拒否されます。

  • 悪意のあるバケットロック: storage.buckets.update 権限を持つ攻撃者は、保持期間が長すぎるバケットロックを適用できます。このロックにより、データの正当な削除が妨げられ、不要なコストが大幅に蓄積される可能性があります。これは、サービス拒否(DoS)攻撃の一種です。

緩和策
  • Cloud KMS 管理に厳格な IAM 許可ポリシーと職務分掌を実装します。Cloud Storage バケットを管理する権限を持つ ID に、バケットが使用する Cloud KMS 鍵を管理する権限が付与されていないことを確認します。

  • Cloud KMS 鍵の削除防止メカニズムを使用します。

  • バケットロックでは、storage.buckets.update 権限を厳密に制御し、モニタリングを使用して予期しない構成変更に関するアラートを送信します。

十分なオブザーバビリティがないことによるアクティビティの難読化

監査とモニタリングが正しく構成されていない場合、攻撃者は検出されることなく Cloud Storage リソースに対して悪意のある操作を実行できます。オブザーバビリティが不十分だと、攻撃者が痕跡を隠蔽し、効果的なインシデント対応とフォレンジックが妨げられます。

STRIDE カテゴリ

否認

MITRE ATT&CK の戦術

防御回避

マニフェステーション
  • データアクセス ログが無効: 管理アクティビティ ログは常に有効ですが、オブジェクトの読み取りと書き込みを記録するデータアクセス ログはデフォルトで無効になっています。明示的に有効にしないと、攻撃者はバケット内のすべてのデータを引き出したり、改ざんしたりできます。これらのアクションに対する Cloud Audit Logs は生成されないため、侵害の検出や調査が困難になります。

  • ログシンクの操作: 十分な権限を持つ攻撃者は、Cloud Audit Logs を転送するログシンクを無効にしたり、再構成したりして、セキュリティ関連データのモニタリング システムへのフローを効果的に停止させることができます。

  • 指標モニタリングの怠慢: 攻撃者が、長期間にわたって少量のデータを徐々に引き出すなど、低速で緩やかなアクティビティを実行します。これらのアクションは、Cloud Audit Logs で重大度の高いアラートをトリガーしない可能性がありますが、Cloud Monitoring の指標(継続的な下り(外向き)トラフィックなど)に異常なパターンを作成します。これらの指標をモニタリングしないと、攻撃者が検出されないままになる可能性があります。

緩和策
  • 機密データまたは重要なデータを含むすべてのバケットに対して、データアクセス監査ログを有効にします。

  • ログが安全な一元管理ロギング プロジェクトに転送され、ログシンクの改ざんを防ぐために権限が厳密に制御されていることを確認します。

  • Cloud Monitoring または SIEM でログベースのアラートを構成して、異常なアクセス パターンや IAM 許可ポリシーの変更などの不審なアクティビティを積極的に検出します。

  • Cloud Monitoring の主要な指標に基づいてアラートを作成し、ベースラインの動作からの逸脱を検出します。

  • 組み込みの Storage Intelligence ダッシュボードとデータ セキュリティ ポスチャー管理の分析情報データを使用して、オブジェクト レベルのリスク エクスポージャーの継続的なモニタリングとセキュリティ ポスチャーの評価を行います。

Cloud Storage に保存されている不正なアーティファクトを使用したサプライ チェーン ポイズニング

攻撃者が、ソフトウェア アーティファクト(バイナリ、コンテナ イメージ、ビルド スクリプトなど)の保存に使用される Cloud Storage バケットに対する書き込みアクセス権(storage.objects.createstorage.objects.delete など)を取得すると、正規のアーティファクトを悪意のあるバージョンに置き換える可能性があります。このバケットのアーティファクトを信頼しているダウンストリームの CI/CD パイプライン、デベロッパー、エンドユーザーは、侵害されたコードを誤って実行し、サプライ チェーン攻撃が広範囲に及ぶ可能性があります。

STRIDE カテゴリ

改ざん

MITRE ATT&CK の戦術

初期アクセス

マニフェステーション
  • バイナリの置き換え: 攻撃者がリリース バイナリまたはライブラリをトロイの木馬化されたバージョンで上書きします。このアーティファクトがビルドにプルされるか、デプロイされると、攻撃者のコードが移行先の環境内で実行されます。

  • コンテナ イメージのポイズニング: コンテナ レジストリ(Artifact Registry など)のバックエンドとして使用されるバケットにアクセスできる攻撃者は、イメージレイヤを改ざんし、脆弱性やバックドアを挿入する可能性があります。

  • ビルド スクリプトの変更: 攻撃者が Cloud Storage に保存されているビルド スクリプト(cloudbuild.yamlMakefile など)を変更して、ビルドプロセス自体を変更します。攻撃者は、ビルド スクリプトを変更して、コンパイル中にシークレットを漏洩させたり、バックドアを埋め込んだりする可能性があります。

  • AI モデルのポイズニング: 攻撃者は、Cloud Storage 内の有効なモデル チェックポイントを、本番環境システムで読み込まれたときにコードを実行する悪意のあるチェックポイントに置き換える可能性があります。また、攻撃者がモデルのトレーニングに使用される Cloud Storage バケット内のデータを変更して、トレーニング済みモデルにバックドアや悪意のある動作を挿入する可能性もあります。

緩和策
  • 脆弱性スキャンとより優れたアクセス制御を提供する Artifact Registry などの専用のアーティファクト管理サービスを使用します。重要なソフトウェア アーティファクトの保存に標準の Cloud Storage バケットを使用しないでください。

  • すべてのビルド アーティファクトにデジタル署名を実装します。アーティファクトの署名を検証してからデプロイするように CI/CD パイプラインを構成し、アーティファクトの完全性と出所を確保します。

  • バケットでオブジェクトのバージョニングを構成して、悪意のあるデータで上書きされたオブジェクトを保持します。

Cloud Storage オブジェクトのフラッディングまたは下り(外向き)の不正使用による費用ベースのサービス拒否攻撃

一般公開されているバケットまたはセキュリティが不十分なバケットに対するオブジェクト作成権限を持つ攻撃者は、大量の小さなオブジェクトをアップロードし、クラス A オペレーションとストレージ料金による大きな経済的損失を引き起こす可能性があります。また、リクエスト元支払いが無効になっているバケットに対する読み取りアクセス権を持つ攻撃者は、大きなオブジェクトを繰り返しダウンロードし、過剰なネットワーク下り(外向き)料金を発生させ、課金上限により正当なユーザーのサービス可用性に影響を与える可能性があります。

STRIDE カテゴリ

サービス拒否攻撃

MITRE ATT&CK の戦術

影響

マニフェステーション
  • オブジェクト フラッディング: 攻撃者がスクリプトを使用して、バケット内に数百万個の小さなオブジェクトを迅速に作成し、運用コストを押し上げ、バケットの内容を一覧表示または処理するアプリケーションに影響を与える可能性があります。

  • 下り(外向き)の不正使用: 大規模な公開データセットをホストするバケットの場合、攻撃者がファイルを繰り返しダウンロードし、下り(外向き)帯域幅の費用によって経済的損失が発生します。この不正使用により、プロジェクトが課金割り当てに達し、サービス拒否攻撃が発生する可能性があります。

緩和策
  • 費用が事前定義された予算しきい値を超えたときに管理者に通知するように Cloud Billing アラートを構成すると、異常な支出を早期に検出できます。

  • 一般公開バケットの場合は、リクエスト元による支払いを有効にします。この機能により、データアクセスと下り(外向き)の費用がデータをダウンロードするユーザーに移行され、バケット オーナーに対する下り(外向き)ベースの費用攻撃が軽減されます。

  • Storage Insights を使用して、オブジェクト レベルのアクティビティをモニタリングします。Storage Insights は、費用予測に必要な可視性と、下り(外向き)不正使用の対象となる可能性のある高トラフィック オブジェクトの特定に必要な可視性を提供します。

Cloud Storage オブジェクトのバージョニングの不正使用によるデータの完全性の操作

オブジェクトのバージョニングは重要な防御策ですが、storage.objects.deletestorage.objects.create などの十分な権限を持つ攻撃者は、オブジェクトの履歴を操作してデータの完全性を損なう可能性があります。オブジェクトの現在のバージョンを削除して、古いバージョン(誤りや脆弱性がある可能性のあるバージョン)を「ライブ」バージョンにすることができます。オブジェクトはまだ存在するため、セキュリティ パッチのロールバック、バグの再導入、古い情報の復元をすぐに気づかれないように行うことができます。

STRIDE カテゴリ

改ざん

MITRE ATT&CK の戦術

影響

マニフェステーション
  • セキュリティ パッチの取り消し: 攻撃者がセキュリティ パッチを含むアプリケーション バイナリまたは構成ファイルの最新バージョンを削除し、システムが脆弱な以前のバージョンに戻ります。

  • リバージョンによるデータ破損: 状態または構成の保存に Cloud Storage を使用するシステムで、攻撃者が重要な構成オブジェクトを古い状態に戻し、サービス構成の誤りやデータ処理エラーを引き起こします。

  • AI モデルの完全性の操作: 攻撃者は、Cloud Storage バケットに保存されている AI モデルのチェックポイントを上書きまたは復元する可能性があります。

緩和策
  • オブジェクトの特定のバージョンに依存するアプリケーションを開発する場合は、名前だけでなく、一意の世代番号でオブジェクトを取得します。これにより、常に正しいバージョンが取得されます。

  • 不変ストレージが必要なデータには、定義済みの保持ポリシーでバケットロックを使用します。

  • 悪意のある削除に対する追加の防御レイヤとして、削除(復元可能)ポリシーを構成します。オブジェクトのバージョニングでは、バケットの削除を防止する保護は行われません。

Cloud Storage によってトリガーされる Dataflow パイプラインを使用したデータの引き出し

Cloud Storage バケット内のオブジェクトの作成時に自動的にトリガーするように Dataflow パイプラインが構成されている場合、そのバケットに書き込むことができる攻撃者はデータを不正に持ち出す可能性があります。Dataflow ジョブのサービス アカウントに、他の機密データにアクセスして外部の場所(別の Cloud Storage バケットや BigQuery など)に書き込む権限がある場合、攻撃者はパイプラインが機密データを読み取って攻撃者が制御する場所に書き込む入力ファイルを作成できます。

STRIDE カテゴリ

情報開示

MITRE ATT&CK の戦術

データの引き出し

マニフェステーション

プロジェクト間のデータ漏洩: 攻撃者がトリガー バケットにファイルをアップロードします。特権サービス アカウントで実行されている Dataflow パイプラインが、別のプロジェクトからセンシティブ データを読み取り、攻撃者の入力ファイルで指定された一般公開の Cloud Storage バケットに出力を書き込みます。

緩和策
  • Dataflow パイプラインとその Cloud Storage 依存関係を VPC Service Controls の境界内に配置して、パイプラインが承認されていない外部宛先にデータを送信しないようにします。

  • Dataflow ワーカー サービス アカウントに最小権限の原則を適用します。ソースからの読み取りと目的の宛先への書き込みに必要な特定の権限のみを付与する必要があります。

  • DATA_WRITE イベントのデータアクセス監査ログを有効にして、Dataflow パイプラインからの疑わしいアクティビティの監査に役立てます。

  • Cloud Storage バケットで均一なバケットレベルのアクセスを有効にして、一貫性のある IAM ベースのアクセス制御を確保します。

Cloud Storage での IaC 状態操作による整合性の侵害

Cloud Storage バケットを使用して Infrastructure as Code(IaC)状態ファイル(Terraform の terraform.tfstate ファイルなど)を保存する場合、状態バケットへの書き込み権限を持つ攻撃者は状態ファイルを改ざんできます。状態を変更することで、攻撃者は悪意のあるリソースを挿入したり、重要なセキュリティ構成を変更したり、次の IaC 実行時にリソースの破壊を引き起こしたりする可能性があります。この改ざんは、コード自体ではなく状態を標的とするため、コードレビュー プロセスを回避します。

STRIDE カテゴリ

改ざん

MITRE ATT&CK の戦術

影響

マニフェステーション

セキュリティ制御の無効化: 攻撃者が状態ファイルを変更して、ファイアウォール ルールまたは IAM 許可ポリシーの不正確な状態を表示します。次の Terraform 適用で、意図した安全な構成が正しく適用されない可能性があります。

緩和策
  • 状態ファイルを保存する Cloud Storage バケットでオブジェクト バージョニングを有効にします。オブジェクトのバージョニングを使用すると、誤って変更された場合や悪意のある変更が行われた場合に、状態ファイルを復元できます。

  • 状態ファイル バケットに厳格な IAM 制御を実装します。書き込みアクセス権を持つのは CI/CD サービス アカウントのみで、開発者は読み取り専用アクセス権のみを持つようにします。

Cloud Storage に保存されている起動スクリプトまたはブートストラップ スクリプトの権限昇格

Compute Engine インスタンスまたは GKE ノードが Cloud Storage バケットから起動スクリプトまたはブートストラップ スクリプトを pull すると、そのバケットへの書き込みアクセス権を持つ攻撃者がこれらのスクリプトを変更する可能性があります。これらのスクリプトは、多くの場合、高い権限(VM の root ユーザーやノードのサービス アカウントなど)で実行されるため、攻撃者はコマンドを挿入してバックドア ユーザーを作成したり、メタデータとアクセス トークンを流出させたり、悪意のあるソフトウェアをインストールしたりできます。これらのアクションにより、攻撃者は Cloud Storage オブジェクトの書き込み権限からコンピューティング リソースの完全な制御権限に権限を昇格させることができます。

STRIDE カテゴリ

権限昇格

MITRE ATT&CK の戦術

権限昇格

マニフェステーション
  • メタデータの漏洩: 攻撃者は、curl -H 'Metadata-Flavor: Google' http://metadata.google.internal/... などのコマンドを起動スクリプトに追加して、サービス アカウント トークンやその他のシークレットを盗みます。

  • リバースシェル: 攻撃者は、コンピューティング インスタンスから攻撃者が制御するサーバーにリバースシェルを開始するコマンドを挿入し、対話型アクセスを許可します。

緩和策
  • 起動スクリプトは、厳密に制御された専用の Cloud Storage バケットに保存します。承認された管理者または CI/CD パイプラインのみがスクリプトを変更できるように、最小権限の IAM 許可ポリシーを適用します。スタートアップ スクリプトに使用されるバケットにリソースタグを構成し、IAM タグベースの条件付きアクセスを使用してアクセスをさらに制限するデータ分類戦略を検討します。

  • Cloud Storage からスクリプトを pull するのではなく、カスタム マシンイメージにスクリプトを含めます。この戦略では、実行時の変更の影響を受けにくい不変のアーティファクトが作成されます。

Cloud Storage でホストされている ML トレーニング データを使用するサプライ チェーン バックドア

機械学習モデルのトレーニング データを含む Cloud Storage バケットに対する書き込み権限を持つ攻撃者は、データセットを汚染する可能性があります。攻撃者は、慎重に作成された悪意のあるデータを注入することで、トレーニング済みモデルにバックドアを作成できます。このバックドアにより、モデルは特定の入力を攻撃者に有利な方法で誤分類する可能性があります。また、一般的なデータに対しては正常に動作するため、検出を回避できます。たとえば、モデルが不正な取引を承認したり、セキュリティ チェックをバイパスしたりする可能性があります。

STRIDE カテゴリ

改ざん

MITRE ATT&CK の戦術

影響

マニフェステーション
  • 標的型誤分類: 攻撃者は、トレーニング済みの不正行為検出モデルが攻撃者の管理するアカウントからの取引を常に正当なものとして分類するようにする、有害なデータを挿入します。

  • モデル回避: 攻撃者が、マルウェア検出モデルのトレーニング データに、良性としてラベル付けされたマルウェアの例を混入させ、最終モデルが特定のツールを無視するようにします。

緩和策
  • トレーニング データを含む Cloud Storage バケットに強力なアクセス制御を実装します。これらのバケットへの書き込み権限を付与する際は、最小権限の原則を適用し、Policy Analyzer などのツールを使用して定期的に監査します。

  • ML トレーニング データに使用されるバケットにリソースタグを構成し、IAM タグベースの条件を追加してアクセスをさらに制限するデータ分類戦略を検討します。

  • トレーニング データに使用されるオブジェクトに対する不正な変更を監査します。DATA_WRITE イベントのオブジェクトのバージョニングを構成し、チェックサムを維持し、データアクセス監査ログを構成して、トレーニング データに関連するオブジェクト作成イベントの異常を監査します。

  • ML モデルを定期的に監査して検証し、予期しない動作がないか確認します。敵対的テスト手法を使用して、トレーニング中に導入された隠れたバックドアや脆弱性を探ります。

  • VPC Service Controls 境界を構成して、信頼できる境界外からトレーニング データやモデル作成に関わるその他のサービスなどの機密性の高いリソースへのアクセスを制限します。

Cloud Storage でのオブジェクト作成によってトリガーされるファンアウト ワークフローを使用したサービス拒否攻撃

ワークフロー(Cloud Run Functions や Workflows など)が Cloud Storage バケットでオブジェクトの作成をトリガーし、リソースを大量に消費するタスクを実行するように構成されている場合、storage.objects.create 権限を持つ攻撃者はサービス拒否攻撃を開始できます。短期間に大量のファイルをアップロードする(ファンアウト トリガーと呼ばれる)ことで、攻撃者はダウンストリーム サービスを急速にスケーリングさせ、過剰なリソースを消費させ、同時実行またはスケーリングの上限に達し、多大な費用を発生させ、最終的に正当なユーザーがサービスを利用できなくなる可能性があります。

STRIDE カテゴリ

サービス拒否攻撃

MITRE ATT&CK の戦術

影響

マニフェステーション
  • リソースの枯渇: 攻撃者が 10,000 個の小さなファイルをアップロードし、10,000 個の Cloud Run functions の並列呼び出しをトリガーして、プロジェクトの CPU 割り当て、メモリ、またはダウンストリーム API のレート制限を枯渇させます。

  • 費用ベースの DoS: ファンアウトにより、有料サービスで大量の実行がトリガーされ、高額な請求が発生し、アカウントの強制停止につながる可能性があります。これにより、サービスが事実上拒否されます。

緩和策
  • ワークフローをトリガーする Cloud Storage バケットに強力なアクセス制御を実装します。これらのバケットへの書き込み権限を付与する際は、最小権限の原則を適用し、Policy Analyzer などのツールを使用して定期的に監査します。

  • イベント ドリブン Cloud Run functions に同時実行の上限を設定して、並列実行の最大数を制御し、リソースの枯渇を防ぎます。

  • デバウンス メカニズムを実装し、メイン処理ロジックを呼び出します。デバウンス メカニズムの例としては、レート制限付きで Cloud Tasks キューにタスクを追加する方法があります。このメカニズムは、リクエスト量の急増を時間的に分散することで、リクエスト量の急増を管理するのに役立ちます。

  • VPC Service Controls 境界を構成して、信頼できる境界の外部から機密性の高いリソース(ワークフローをトリガーするバケットへの書き込みなど)へのアクセスを制限します。

Cloud Storage を基盤とするバックアップ パイプラインを使用した不正なデータ移動

バックアップと障害復旧(DR)ツールは、Cloud Storage をバックアップのステージング領域または最終的な宛先として使用することがよくあります。攻撃者がこのツールの構成を侵害すると、バックアップを攻撃者が制御する Cloud Storage バケットにリダイレクトされる可能性があります。バックアップ サービス アカウントには、多くのデータソース(データベースや VM など)に対する広範な読み取り権限が付与されていることが多く、攻撃者はバックアップ ジョブの宛先パラメータを操作して、大量のセンシティブ データを漏洩させる可能性があります。

STRIDE カテゴリ

情報開示

MITRE ATT&CK の戦術

データの引き出し

マニフェステーション
  • バックアップ ジョブのリダイレクト: バックアップ ジョブの構成を編集する権限を持つ攻撃者が、ターゲットの Cloud Storage バケットのパスを gs://attacker-public-bucket/ に変更します。

  • プロジェクト間のバックアップ: 攻撃者は、侵害されたプロジェクト内に新しいバックアップ ジョブを構成し、機密性の高いソースからデータを読み取って、別の攻撃者が制御する Google Cloud プロジェクトのバケットにバックアップします。

緩和策
  • バックアップ ツールのサービス アカウントに、範囲が狭い権限が付与されていることを確認します。特定の指定されたバックアップ バケットにのみ書き込み、任意の場所から読み取ることができないようにバックアップ ツールを設定します。

  • VPC Service Controls を使用して、バックアップ サービスがセンシティブ データソースにアクセスしたり、安全な境界外の Cloud Storage バケットに書き込んだりすることを防ぎます。

ハイブリッド環境での以前の Cloud Storage ACL の使用によるポリシーのバイパス

Cloud Storage は、IAM と以前の ACL という 2 つの相互に排他的なアクセス制御システムをサポートしています。均一なバケットレベルのアクセスが無効になっている場合、両方のシステムが評価されます。攻撃者は、バケットレベルの許可ポリシーが制限的であっても、オブジェクトに以前の ACL(たとえば、個人の Google アカウントまたは公開グループにアクセス権を付与する)を追加することで、この構成を悪用できます。この攻撃では、IAM 中心のセキュリティ スキャナでは見逃されがちなシャドー アクセス パスが作成され、攻撃者は意図されたセキュリティ ポリシーをバイパスできます。

STRIDE カテゴリ

権限昇格

MITRE ATT&CK の戦術

防御回避

マニフェステーション
  • オブジェクト レベルの一般公開アクセス: storage.objects.update 権限を持つ攻撃者が、機密性の高いオブジェクトに public-read ACL を追加し、制限の厳しいバケット許可ポリシーをバイパスして、インターネット上の誰でもアクセスできるようにします。

  • クロス アカウント アクセス: 攻撃者は、ACL を使用して重要な構成オブジェクトに対する所有者権限を外部アカウントに割り当て、IAM 監査で検出されないようにオブジェクトを変更します。

緩和策
  • すべての Cloud Storage バケットで均一なバケットレベルのアクセスを有効にします。均一なバケットレベルのアクセスは、すべての ACL を無効にし、IAM がアクセスを管理する唯一の一貫した方法となるようにします。これにより、監査が簡素化され、このバイパスが防止されます。

  • 組織のポリシーの制約 constraints/storage.uniformBucketLevelAccess を使用して、プロジェクト、フォルダ、組織内のすべての新しいバケットに均一なバケットレベルのアクセスを適用します。

Cloud Storage を標的とする侵害された CI/CD パイプラインを使用したデータ破壊

CI/CD パイプラインには、インフラストラクチャの管理とアーティファクトのデプロイを行うために、特権の高いサービス アカウントが付与されることがよくあります。攻撃者が CI/CD システムを侵害すると、パイプラインのサービス アカウントを使用して Cloud Storage で破壊的なアクションを実行する可能性があります。たとえば、攻撃者がビルドスクリプトに悪意のあるコードを挿入したり、オーケストレーターにアクセスしたりするなどの侵害があります。この侵害には、バケットの削除や重要なオブジェクトの上書きが含まれる可能性があります。

STRIDE カテゴリ

改ざん

MITRE ATT&CK の戦術

影響

マニフェステーション
  • 悪意のあるビルドステップ: 攻撃者が、すべてのデータを消去するステップを CI/CD パイプラインに追加します。たとえば、攻撃者は cloudbuild.yamlgcloud storage rm -r gs://critical-bucket/ などのコマンドを実行するステップを追加します。

  • 権限の継承: 攻撃者は、広範な権限を持つ侵害されたパイプラインのサービス アカウントを使用して、後で使用するために Cloud Storage バケットへの管理者アクセス権を攻撃者のアカウントに付与します。

緩和策
  • CI/CD サービス アカウントに最小権限の原則を適用します。たとえば、本番環境バケットを削除する権限をビルド パイプラインに割り当てないでください。ビルド、テスト、デプロイなど、パイプラインのステージごとに別個の ID を使用します。

  • バケットロックまたはオブジェクト ロックを有効にするか、CI/CD サービス アカウントに storage.buckets.delete 権限がないことを確認して、重要な Cloud Storage バケットが削除されないように保護します。

権限が過剰なブレークグラス アカウントを使用したバケットの不正削除

ブレークグラス アカウントまたは緊急アクセス アカウントは、緊急時にのみ使用される権限の高い ID です。これらのアカウントが適切に保護および管理されていない場合(認証情報が漏洩している、アクセスが時間制限されていないなど)、ブレークグラス アカウントを侵害した攻撃者は、非常に破壊的なアクションを実行する可能性があります。主なリスクは、Cloud Storage バケット全体の削除です。バケットの削除は取り消し不能な操作であるため、壊滅的で不可逆的なデータ損失につながる可能性があります。

STRIDE カテゴリ

権限昇格

MITRE ATT&CK の戦術

権限昇格

マニフェステーション
  • 壊滅的なデータ損失: 攻撃者が管理の不十分な緊急時アカウントを侵害し、スクリプトを実行してプロジェクト内のすべての Cloud Storage バケットを削除します。

  • 恐喝: 攻撃者がアクセス権を取得し、身代金を支払わないと重要なバケットを削除すると脅迫します。

緩和策
  • 常設権限を持つアカウントを使用するのではなく、ブレークグラス手順にジャストインタイム(JIT)アクセスを実装します。特定の目的で期間限定の権限をオンデマンドで付与します。

  • 重要なオブジェクトを含むバケットにはバケットロックを適用し、個々のオブジェクトにはオブジェクト ロックを適用します。ロックを使用すると、オーナー権限を持つユーザーであっても、指定された保持期間中はバケットとそのオブジェクトを削除できなくなります。

Cloud Storage に書き込む侵害されたロギング シンクを使用したサイレント データ漏洩

Cloud Storage バケットにログをエクスポートするように Cloud Logging を構成できます。攻撃者がロギング シンクを変更する権限を取得すると、別のプロジェクトにある攻撃者が制御する Cloud Storage バケットに機密ログをエクスポートするように再構成される可能性があります。機密ログをエクスポートすると、攻撃者はログにキャプチャされたセンシティブ データをサイレントかつ継続的に漏洩させることができます。

STRIDE カテゴリ

情報開示

MITRE ATT&CK の戦術

データの引き出し

マニフェステーション
  • ログシンクのリダイレクト: 攻撃者が既存のログシンクの宛先プロパティを変更して、独自の Cloud Storage バケットを指すようにします。

  • 悪意のあるフィルタの作成: 攻撃者は、機密情報(PII やトークンなど)を含むログをターゲットとするフィルタを使用してシンクを作成し、それらのログをエクスポートします。

緩和策
  • CreateSinkUpdateSink の API 呼び出しについて Cloud Audit Logs をモニタリングします。新しいログシンクまたは変更されたログシンクをセキュリティ チームに通知するアラートを構成して、それらが承認されていることを確認します。

  • VPC Service Controls の境界を構成して、データの引き出しを軽減します。

一元化された CMEK 取り消しを使用したランサムウェアの有効化

Cloud Storage バケットが CMEK で暗号化されている場合、データの可用性は鍵の可用性に依存します。Cloud KMS で十分な権限を取得した攻撃者は、重要な Cloud Storage バケットに使用されている鍵を破棄または無効にできます。この操作を行うと、バケット内のすべてのデータに暗号的にアクセスできなくなり、データは残りますが復号できないため、事実上、データ破壊またはランサムウェアの一種となります。

STRIDE カテゴリ

改ざん

MITRE ATT&CK の戦術

影響

マニフェステーション
  • 鍵の破棄: cloudkms.cryptoKeyVersions.destroy 権限を持つ攻撃者が鍵バージョンを完全に破棄し、データの復元を不可能にします。

  • 鍵の無効化: cloudkms.cryptoKeyVersions.disable 権限を持つ攻撃者が鍵を無効にし、鍵が再度有効になるまで Cloud Storage データを読み取れないようにします。この操作を行うと、長時間停止する可能性があります。

緩和策
  • Cloud KMS 鍵を破棄する前に、破棄がスケジュール設定済みの状態の最短期間を適用します。デフォルトでは、この期間は 30 日ですが、鍵の初回作成時に 1 ~ 120 日の期間を構成できます。キーを削除した後に、この期間を変更することはできません。constraints/cloudkms.minimumDestroyScheduledDuration 組織のポリシー制約を適用して、破棄予定期間が想定される最小値よりも短い鍵を作成できないようにすることを検討してください。

  • Cloud KMS 管理ロールへのアクセスを厳密に制限します。鍵の使用と鍵の管理の職務を分離して、1 つの不正使用されたアカウントが鍵の使用と破棄の両方を行わないようにします。

  • Cloud KMS 鍵を定期的にローテーションし、ワークロードの機密性またはコンプライアンス要件に基づいてローテーション期間を選択します。

スナップショットまたはバックアップを Cloud Storage にエクスポートしてデータを漏洩させる

多くの Google Cloud サービス(Compute Engine や Cloud SQL など)では、スナップショットの作成や Cloud Storage へのバックアップのエクスポートが可能です。これらのエクスポート オペレーションを実行する権限を持つ攻撃者は、センシティブ データを含むリソースのスナップショットを作成し、そのスナップショットを権限が緩い Cloud Storage バケット(一般公開バケットや外部アカウントと共有されているバケットなど)に保存できます。この操作では、Cloud Storage IAM を使用してデータにアクセスできるようになるため、プライマリ リソースのより厳格なアクセス制御(データベース認証情報など)がバイパスされます。

STRIDE カテゴリ

情報開示

MITRE ATT&CK の戦術

データの引き出し

マニフェステーション
  • ディスク スナップショットから公開バケット: compute.snapshots.create 権限と storage.objectAdmin 権限を持つ内部デベロッパーが、シークレットを含む VM ディスクのスナップショットを作成し、公開 Cloud Storage バケットにエクスポートします。

  • データベースのエクスポート: cloudsql.instances.export 権限を持つ攻撃者が、本番環境データベースを攻撃者が制御するプロジェクトの Cloud Storage バケットにエクスポートします。

緩和策
  • バックアップとスナップショット用に指定されたプロジェクトに、一貫したセキュリティ体制を維持するために、少なくともソース プロジェクトと同じくらい厳格な IAM ポリシーと VPC Service Controls ポリシーがあることを確認します。

  • バックアップに使用されるバケットにリソースタグを構成し、IAM タグベースのアクセス条件を追加してアクセスをさらに制限するデータ分類戦略を検討してください。