Google Cloud を使用してランサムウェア攻撃を軽減するためのベスト プラクティス

Last reviewed 2023-08-03 UTC

第三者によって作成され、データをハイジャックして、暗号化し、盗みを働くためにシステムに侵入するコードは、ランサムウェアと呼ばれます。企業のリソースとデータをランサムウェア攻撃から保護するには、オンプレミス環境とクラウド環境にまたがる多層制御を行う必要があります。このドキュメントでは、組織がランサムウェア攻撃を識別、防止、検出、対処するためのベスト プラクティスについて説明します。

このドキュメントは、セキュリティ アーキテクトと管理者を対象とするシリーズの一部です。ここでは、組織がランサムウェア攻撃の影響を軽減するために Google Cloud がどのように役立つかについて説明します。

このシリーズは、次のパートから構成されています。

リスクとアセットの特定

組織がランサムウェア攻撃にさらされているかどうかを判断するには、システム、人、アセット、データ、機能に対するリスクの理解を深める必要があります。こうした課題に対応するため、Google Cloud には、次の機能が用意されています。

Cloud Asset Inventory でアセットを管理する

ランサムウェア攻撃を軽減するには、Google Cloud 環境とオンプレミスや他のクラウド環境の両方にある組織のアセット、状態、目的を把握する必要があります。静的アセットの場合は、最後に確認された正常な構成のベースラインを別の場所で管理します。

Cloud Asset Inventory を使用して、Google Cloud のリソースの 5 週間にわたる履歴を取得します。モニタリング フィードを設定して、リソースに特定の変更が発生した場合やポリシーからの逸脱がある場合に通知を受け取ります。長期間にわたり進行する攻撃を監視できるように変更を追跡するには、フィードをエクスポートします。エクスポートを作成するには、Terraform などのツールを使用します。このタイプの分析では、インベントリを BigQuery テーブルまたは Cloud Storage バケットにエクスポートできます。

リスクの評価と管理

既存のリスク評価フレームワークを使用してリスクをカタログ化し、組織がランサムウェア攻撃を検出して阻止する能力を見極めます。こうした評価では、マルウェア保護対策、適切に構成されたアクセス制御、データベース保護、バックアップなどが用意されているかどうかといった要素が確認されます。

たとえば、クラウド セキュリティ アライアンス(CSA)は、クラウドのリスク評価において組織を支援する Cloud Controls Matrix(CCM)を提供します。Google Cloud 固有の CCM 情報については、Google Cloud コンピューティング プラットフォームに対する新しい CIS ベンチマークをご覧ください。

潜在的なアプリケーションのギャップを特定し、それを取り除く対策を講じるために、OWASP アプリケーション脅威モデリング などの脅威モデルを使用できます。Google Cloud で OWASP のセキュリティ リスク トップ 10 を緩和する方法の詳細については、Google Cloud での OWASP トップ 10 軽減策をご覧ください。

リスクをカタログ化したら、リスクに対処する方法と、リスクを受け入れるか、回避するか、移転するか、軽減するかを決定します。リスク保護プログラムは、リスク マネージャーとサイバー保険へのアクセスを提供します。Risk Manager を使用して、Google Cloud のワークロードをスキャンし、セキュリティに関する推奨事項を実装します。これらの推奨事項は、ランサムウェア関連のリスクを軽減するのに役立ちます。

機密データの保護を構成する

機密データの保護を使用すると、Google Cloud 組織のデータと外部ソース由来のデータを検査できます。匿名化の手法を使用して機密データを分類、保護するように、機密データの保護を構成します。データを分類することで、組織にとって最も重要なデータのモニタリングと検出に集中できます。

機密データの保護を他のプロダクト(Security Command Center など)やサードパーティの SIEM と組み合わせて、データに対する想定外の変更を適切にモニタリングし、アラートで知らせます。

サプライ チェーンへのリスクを管理する

ランサムウェア攻撃の主な攻撃ベクトルの 1 つは、サプライ チェーン内の脆弱性です。この攻撃ベクトルの課題は、ほとんどの組織が、追跡すべきベンダーを数多く抱えており、それぞれに独自のリストがあることです。

アプリケーションを作成してデプロイする場合は、ソフトウェア アーキテクトのサプライ チェーン レベル(SLSA)などのフレームワークを使用します。これらのフレームワークは、企業がソースコードとビルドプロセスの保護に使用できる要件とベスト プラクティスを定義するのに役立ちます。SLSA を使用すると、4 つのセキュリティ レベルに取り組むことで、作成するソフトウェアのセキュリティを向上させることができます。

アプリケーションでオープンソース パッケージを使用する場合は、セキュリティ スコアカードを使用して、特定のオープンソース パッケージのセキュリティ スコアを自動生成することを検討してください。セキュリティ スコアカードは、デベロッパーがオープンソース パッケージをシステムに統合する前に評価を行うための低コストで使いやすい方法です。

Google Cloud のセキュリティの検証に使用できるリソースについては、ベンダー セキュリティのリスク評価をご覧ください。

リソースとデータへのアクセスを制御する

組織がオンプレミス ネットワークの外部にワークロードを移行する場合は、リソースとデータをホストするすべての環境でこれらのワークロードへのアクセスを管理する必要があります。Google Cloud は、適切なアクセスの設定に役立ついくつかの制御をサポートしています。以降のセクションでは、その一部について説明します。

BeyondCorp Enterprise でゼロトラスト セキュリティを設定する

ワークロードをオンプレミス環境からクラウドに移行すると、ネットワークの信頼性モデルが変わります。ゼロトラスト セキュリティは、組織のネットワークの内か外かにかかわらず、無条件で信頼できるユーザーがいないことを意味します。

VPN とは異なり、ゼロトラスト セキュリティでは、アクセス制御がネットワークの境界からユーザーとそのデバイスに移ります。ゼロトラスト セキュリティとは、認証時にユーザーの ID とコンテキストが検討されることを意味します。このセキュリティ管理により、攻撃者がネットワークに穴を開けた場合にのみ成功するランサムウェア攻撃に対して重要な防御策が講じられます。

BeyondCorp Enterprise を使用して、Google Cloud でゼロトラスト セキュリティを設定します。BeyondCorp Enterprise は脅威からの保護アクセス制御を提供します。設定方法については、BeyondCorp Enterprise スタートガイドをご覧ください。

ワークロードがオンプレミスと Google Cloud の両方にある場合は、Identity-Aware Proxy(IAP)を構成します。IAP を使用すると、両方のロケーションのアプリケーションにゼロトラスト セキュリティを拡張できます。これは、アクセス制御ポリシーを使用して、アプリケーションやリソースにアクセスするユーザーの認証と承認を行います。

最小権限の構成

最小権限は、ユーザーとサービスが特定のタスクを実行するために必要なアクセス権のみを持つようにします。最小権限により、攻撃者は権限を簡単にエスカレーションできないため、ランサムウェアの組織全体に拡散する能力が低下します。

組織の特定のニーズを満たすには、Identity and Access Management(IAM)で詳細なポリシー、ロール、権限を使用します。さらに、ロール推奨機能Policy Analyzer を使用して、権限を定期的に分析します。ロール推奨事項は、機械学習を使用して設定を分析し、ロールの設定が最小権限の原則を遵守していることを確認するための推奨事項を提供します。Policy Analyzer では、クラウド リソースにアクセスできるアカウントを確認できます。

最小権限の詳細については、IAM の安全な使用をご覧ください。

Titan セキュリティ キーで多要素認証を構成する

多要素認証(MFA)は、ユーザーがリソースにアクセスする前に、パスワードと、生体認証要素か所有要素(トークンなど)の提供を必須にします。パスワードは容易に見つけることや盗むことができるため、MFA は、ランサムウェア攻撃者によるアカウントの乗っ取り防止に役立ちます。

MFA 向けに Titan セキュリティ キーの使用を検討して、アカウントの乗っ取りやフィッシング攻撃を防ぎます。Titan セキュリティ キーは改ざん防止機能を備え、Fast IDentity Online(FIDO)アライアンス標準をサポートするすべてのサービスで使用できます。

アプリケーション、Google Cloud 管理者VM への SSH 接続(OS Login を使用)、機密情報への特権アクセスを必要とするすべてのユーザーに対して MFA を有効にします。

リソースに対する MFA は、Cloud Identity を使用して構成します。詳細については、会社所有のリソースに均一の MFA を適用するをご覧ください。

サービス アカウントの保護

サービス アカウントは、Google Cloud リソースへのアクセスを提供する特権 ID であるため、攻撃者はこのアカウントを価値があるものと考えます。サービス アカウントの保護に関するベスト プラクティスについては、サービス アカウントの操作のベスト プラクティスをご覧ください。

重要なデータの保護

一般に、ランサムウェア攻撃の主な目的は次のとおりです。

  • ランサムに支払うまで、重要なデータにアクセスできないようにすること。
  • データを漏洩させること。

重要なデータを攻撃から保護するには、データの機密性に基づいて、さまざまなセキュリティ管理を組み合わせて、データへのアクセスを抑制します。以降のセクションでは、データの保護とランサムウェア攻撃の軽減に役立つベスト プラクティスについて説明します。

データの冗長性を構成する

Google Cloud には、復元性、スケーラビリティ、高可用性を実現するように設計された世界規模のインフラストラクチャがあります。クラウドのレジリエンスは、Google Cloud でのさまざまなイベントの復元と、適応をサポートしています。詳細については、可用性とレジリエンスを高めるインフラストラクチャ設計をご覧ください。

Google Cloud のデフォルトの復元性機能に加えて、データの保存に使用するクラウド ストレージ オプションで冗長性(N+2)を構成します。冗長性は、プライマリ システムでセキュリティ侵害が発生した場合に、そのシステムの単一障害点を排除しバックアップを提供するため、ランサムウェア攻撃の影響を軽減するのに役立ちます。

Cloud Storage を使用する場合は、オブジェクトのバージョニングまたはバケットロック機能を有効にできます。バケットロック機能を使用すると、Cloud Storage バケットのデータ保持ポリシーを構成できます。

Google Cloud におけるデータの冗長性の詳細については、以下をご覧ください。

データベースと Filestore のバックアップ

バックアップでは、障害復旧の目的でデータのコピーを保持できるため、複製された環境を作成できます。必要な形式と(可能であれば)未加工のソース形式の両方でバックアップを保存します。バックアップ データの不正使用を回避するには、このコピーを本番環境ゾーンから独立した別のゾーンに保存してください。また、バイナリ ファイルと実行可能ファイルは、データとは別にバックアップします。

複製された環境を計画する場合は、ミラー環境でも同じ(またはより強力な)セキュリティ管理を適用してください。環境を再作成し、必要な新しい管理者アカウントを再作成するのにかかる時間を決定します。

Google Cloud でのバックアップの例については、以下をご覧ください。

こうしたバックアップの選択肢に加えて、バックアップと DR サービスを使用してオンプレミス データを Google Cloud にバックアップすることを検討してください。バックアップと DR を使用すると、Google Cloud に、VM とデータベース両方の障害復旧環境を設定できます。詳細については、バックアップと障害復旧のソリューションをご覧ください。

データ暗号鍵の保護とバックアップ

攻撃者がデータ暗号鍵にアクセスできないようにするには、鍵を定期的にローテーションし、鍵関連のアクティビティをモニタリングします。鍵のロケーション、鍵を Google マネージド(ソフトウェアまたは HSM)にするかどうか、または鍵を Google に提供するかどうかを考慮する、鍵のバックアップ戦略を実装します。独自の鍵を指定する場合は、外部鍵管理システムの制御を使用してバックアップと鍵のローテーションを構成します。

詳細については、Google Cloud セキュリティ基盤ガイドの「鍵とシークレットの管理」セクションをご覧ください。

ネットワークとインフラストラクチャの保護

ネットワークを保護するには、攻撃者がネットワークを簡単に超えて機密データにアクセスできないようにする必要があります。以降のセクションでは、ネットワークを計画およびデプロイする際に考慮すべき項目について説明します。

インフラストラクチャのプロビジョニングを自動化する

自動化により、運用チームは既知の正常な状態、迅速なロールバック、トラブルシューティング機能などの機能を得ることができるため、ランサムウェア攻撃者に対する重要な管理手段となります。自動化には、Terraform、Jenkins、Cloud Build などのさまざまなツールが必要です。

Google Cloud セキュリティ基盤のブループリントの例を使用して、安全な Google Cloud 環境をデプロイします。必要に応じて、セキュリティ基盤のブループリントに追加のブループリントを使用してビルドするか、独自の自動化を設計します。

自動化の詳細については、Cloud Composer を使用したインフラストラクチャの自動化をご覧ください。セキュリティ ガイダンスの詳細については、クラウド セキュリティ ベスト プラクティス センターをご覧ください。

ネットワークのセグメント化

ネットワーク セグメントと境界により、攻撃者による環境内での進行を遅くすることができます。

サービスとデータをセグメント化し、境界を保護するために、Google Cloud では次のツールを用意しています。

  • トラフィック フローを誘導して保護するには、ファイアウォール ルールとともに Cloud Load Balancing を使用します。
  • 組織内に境界を設定してリソースとデータをセグメント化するには、VPC Service Controls を使用します。
  • 他のワークロードとの接続を設定するには、オンプレミスか他のクラウド環境かによって、Cloud VPNCloud Interconnect を使用します。
  • IP アドレスとポートへのアクセスを制限するには、「Cloud SQL インスタンスに対するパブリック IP のアクセスを制限する」や「VM のシリアルポート アクセスを無効にする」などの組織のポリシーを構成します。
  • ネットワーク上の VM を強化するには、「Shielded VM」などの組織のポリシーを構成します。

ネットワーク セキュリティ管理手段をカスタマイズして、さまざまなリソースやデータのリスクに合わせることができます。

ワークロードの保護

Google Cloud には、コードのビルド、デプロイ、管理を行うサービスが含まれています。このサービスを使用すると、ブレの発生を防ぎ、構成ミスや脆弱性などの問題を迅速に検出してパッチ適用できます。ワークロードを保護するために、ゲート型デプロイ プロセスを構築します。これにより、パッチが適用されていない脆弱性や構成ミスを介してランサムウェア攻撃者が初期アクセスを取得できないようにします。以降のセクションでは、ワークロードの保護に役立つ実装のベスト プラクティスについて説明します。

たとえば、Anthos にワークロードをデプロイするには、次のようにします。

Anthos のセキュリティの詳細については、クラスタのセキュリティの強化をご覧ください。

安全なソフトウェア開発ライフサイクルを使用する

ソフトウェア開発ライフサイクル(SDLC)を開発するときは、DevSecOps などの業界のベスト プラクティスを使用します。DevOps Research and Assessment(DORA)の研究プログラムでは、DevSecOps の技術、プロセス、測定、文化に関する能力の多くについて説明しています。DevSecOps を使用すると、開発ライフサイクルの各ステップにセキュリティに関する考慮事項を含めることができ、組織は修正を迅速にデプロイできるため、ランサムウェア攻撃のリスクを軽減できます。

Google Kubernetes Engine(GKE)で SDLC を使用する方法の詳細については、ソフトウェア デリバリー シールドの概要をご覧ください。

安全な継続的インテグレーションと継続的デリバリー パイプラインを使用する

継続的インテグレーションと継続的デリバリー(CI/CD)により、最新の機能を顧客に迅速に提供するための仕組みを確立できます。パイプラインに対するランサムウェア攻撃を防ぐには、適切なコード分析を行い、悪意のある攻撃がないかパイプラインをモニタリングする必要があります。

Google Cloud で CI/CD パイプラインを保護するには、コードが CI/CD パイプラインを通過する際に、アクセス制御、職務分掌、暗号コード検証を使用します。Cloud Build を使用してビルドステップを追跡し、Artifact Registry を使用してコンテナ イメージの脆弱性スキャンを完了します。Binary Authorization を使用して、イメージが基準を満たしていることを確認します。

パイプラインを構築するときは、アプリケーション バイナリと実行可能ファイルのバックアップがあることを確認してください。機密データとは別にバックアップしてください。

デプロイしたアプリケーションを保護する

攻撃者は、デプロイしたアプリケーション内でレイヤ 7 の脆弱性を見つけることによって、ネットワークへのアクセスを試すことができます。これらの攻撃を緩和するには、脅威モデリング アクティビティを実施して潜在的な脅威を見つけます。攻撃対象領域を最小限に抑えたら、Google Cloud Armor を構成します。これは、レイヤ 7 のフィルタリングとセキュリティ ポリシーを使用するウェブ アプリケーション ファイアウォール(WAF)です。

WAF ルールは、非常に多くの OWASP トップ 10 の問題からアプリケーションを保護するのに役立ちます。詳細については、Google Cloud における OWASP トップ 10 緩和策をご覧ください。

グローバル外部アプリケーション ロードバランサを使用して Google Cloud Armor をデプロイし、複数のリージョンにわたってアプリケーションを保護する方法については、Google Cloud Armor を理解する - インターネットに接続するサービスの大規模な防御をご覧ください。Google Cloud の外部で実行するアプリケーションで Google Cloud Armor を使用する方法については、Google Cloud Armor と他の Google プロダクトの統合をご覧ください。

脆弱性に迅速にパッチを適用する

ランサムウェアの主な攻撃ベクトルの 1 つは、オープンソース ソフトウェアの脆弱性です。ランサムウェアによる影響を軽減するには、フリート全体に迅速に修正をデプロイする必要があります。

共有責任モデルよると、アプリケーションのソフトウェアの脆弱性はユーザーが責任を負いますが、基盤となるインフラストラクチャのセキュリティの管理は Google が責任を負っています。

VM で実行されているオペレーティング システムに関連する脆弱性を表示し、パッチ適用プロセスを管理するには、Compute Engine で OS Patch Management を使用します。GKE と Anthos の場合、GKE メンテナンスの時間枠はある程度制御できますが、Google は自動的に脆弱性をパッチします。

Cloud Build を使用している場合、デベロッパーがコードソース リポジトリに変更を commit するたびにビルドを自動化します。ビルド構成ファイルに、脆弱性スキャンや整合性チェックなどの適切な検証チェックが含まれていることを確認します。

Cloud SQL のパッチ適用については、Cloud SQL インスタンスでのメンテナンスをご覧ください。

攻撃の検出

攻撃を検出する能力は、検出機能、モニタリングおよびアラート システム、攻撃が発生したときに攻撃を特定する運用チームを準備する動きによって異なります。このセクションでは、攻撃を検出するためのベスト プラクティスについて説明します。

モニタリングとアラートの構成

Security Command Center を有効にして、Google Cloud 環境内のセキュリティ上の懸念事項とリスクを 1 か所で可視化します。ダッシュボードをカスタマイズして、組織にとって最も重要なイベントが表示されるようにします。

Cloud Logging を使用して、Google Cloud のサービスのログを管理、分析します。さらに分析を行う場合は、Chronicle に統合するか、組織の SIEM にログをエクスポートするかを選択できます。

また、Cloud Monitoring を使用してサービスとリソースのパフォーマンスを測定し、アラートを設定します。たとえば、環境で実行されている VM の数の急激な変化をモニタリングできます。この現象は、環境にマルウェアが存在する可能性を示します。

こうした情報のすべてを、セキュリティ オペレーション センターで一元管理します。

検出機能の構築

リスクとワークロードのニーズに対応する Google Cloud の検出機能を構築します。これらの機能により、高度な脅威に対する詳細な分析情報が得られ、コンプライアンス要件のモニタリングが容易になります。

Security Command Center プレミアム ティアがある場合は、Event Threat DetectionChronicle を使用します。Event Threat Detection は、潜在的なセキュリティ攻撃のログを検索し、Security Command Center に検出結果を記録します。Event Threat Detection では、Google Cloud と Google Workspace の両方を同時にモニタリングできます。既知の不正なドメインと既知の不正な IP アドレスに基づいてマルウェアの有無を確認します。詳細については、Event Threat Detection の使用をご覧ください。

Chronicle を使用すると、セキュリティ データを 1 か所で保存、分析できます。Chronicle は、Security Command Center Premium に調査機能を追加することで、Google Cloud で脅威を処理するプロセスを強化します。Chronicle を使用すると、検出ルールを作成し、セキュリティ侵害インジケーター(IoC)の一致率を設定して、脅威探査アクティビティを実行できます。Chronicle には次の機能があります。

  • ログをマッピングすると、Chronicle は、ログを拡充してタイムラインにリンクし、攻撃の全体像を把握できるようにします。
  • Chronicle は、Google Cloud Threat Intelligence for Chronicle チームによって収集された脅威インテリジェンスにログ アクティビティを照らして継続的に再評価します。インテリジェンスが変更されると、Chronicle は過去のすべてのアクティビティに対してインテリジェンスを自動的に再適用します。
  • 独自の YARA ルールを記述して、脅威検出機能を改善できます。

必要に応じて、Google Cloud パートナーを使用して、検出機能を強化できます。

ランサムウェア攻撃に対する計画

ランサムウェア攻撃に備えるには、ビジネス継続性 障害復旧計画を済ませて、ランサムウェア インシデント対応ハンドブックを作成し、机上演習を実施します。

インシデント対応ハンドブックでは、各サービスで利用可能な機能を検討してください。たとえば、Binary Authorization がある GKE を使用している場合は、ブレークグラス プロセスを追加できます。

インシデント レスポンス ハンドブックによって、感染したリソースとアカウントを迅速に取り込み、正常なセカンダリ ソースとバックアップに移行できるようにしてください。バックアップと DR などのバックアップ サービスを使用する場合は、Google Cloud からオンプレミス環境に復元する手順を定期的に練習します。

サイバー復元性プログラムとバックアップ戦略を構築して、ランサムウェア インシデントの影響を受けたコアシステムやアセットを復元する準備を行います。サイバー復元性は、復旧のスケジュールをサポートし、攻撃の影響を軽減するために重要です。これにより、通常業務に復帰できます。

攻撃の範囲と組織に適用される規制によっては、攻撃を適切な機関に報告しなければならない場合があります。インシデント対応ハンドブックには、連絡先情報が正確に記載されるようにしてください。

攻撃への対応と復旧

攻撃が発生した場合は、インシデント対応計画に従う必要があります。対応は、次の 4 つの段階を踏んで行われると考えられます。

  • インシデントの特定
  • インシデントの調整と調査
  • インシデントの解決
  • インシデントの終結

インシデント対応に関連するベスト プラクティスについては、以降のセクションで詳しく説明します。

Google によるインシデントの管理方法については、データ インシデント対応プロセスをご覧ください。

インシデント対応計画を有効にする

ランサムウェア攻撃を検出したら、プランを有効にします。インシデントが誤検出ではなく、Google Cloud サービスに影響することを確認したら、P1 Google サポート チケットを開きます。Google サポートの対応は、Google Cloud: 技術サポート サービス ガイドラインに記載されています。

Google テクニカル アカウント マネージャー(TAM)か、他の Google の担当者がいる場合も同様にお問い合わせください。

インシデント調査の調整

プランを有効にしたら、組織内でインシデントの調整と解決プロセスに関与する必要があるチームを収集します。インシデントの調査と解決のために、こうしたツールとプロセスが設定されるようにしてください。

引き続き Google サポート チケットをモニタリングし、Google の担当者と連携します。追加情報のリクエストに対応します。作業に関する詳しいメモを保管してください。

インシデントの解決

調査が完了したら、インシデント対応計画に従ってランサムウェアを削除し、正常な状態に戻します。攻撃の重大度と有効にしたセキュリティ制御に応じて、計画には次のようなアクティビティを含めることができます。

  • 感染したシステムの隔離。
  • 正常なバックアップからの復元。
  • CI / CD パイプラインを使用して、インフラストラクチャを以前の正常な状態に復旧する。
  • 脆弱性が削除されたことの確認。
  • 同様の攻撃に弱い可能性があるすべてのシステムへのパッチの適用。
  • 同様の攻撃を回避するために必要な制御手段の実装。

解決段階を進めながら、Google サポート チケットを引き続きモニタリングします。Google サポートでは、Google Cloud 内で環境を取り込み、消去し、(可能であれば)復旧するための適切な措置を講じます。

作業に関する詳しいメモを引き続き保管してください。

インシデントのクローズ

インシデントは、環境が正常な状態に復旧された後、環境からランサムウェアが取り除かれていることを確認してクローズできます。

インシデントが解決され、環境が復旧したら、Google サポートに連絡します。予定されている場合は、Google 担当者と共同の振り返りに参加してください。

インシデントから得た教訓を記録し、同様の攻撃を回避するために必要な制御手段を設定します。攻撃の特徴に応じて、次のアクションを検討できます。

  • 攻撃が再発した場合に自動的にトリガーされる検出ルールとアラートを作成する。
  • インシデント対応ハンドブックを更新して、学習した教訓を追加する。
  • 振り返りによる知見に基づいてセキュリティ体制を改善する。

次のステップ