Virtual Machine Threat Detection の概要

このページでは、Virtual Machine Threat Detection の概要について説明します。

概要

Virtual Machine Threat Detection は、Security Command Center Premium の組み込みサービスで、ハイパーバイザ レベルのインストゥルメンテーションと永続ディスク分析を使用して脅威を検出します。VM Threat Detection は、侵害されたクラウド環境で実行されている、悪質な可能性のあるアプリケーション(暗号通貨マイニング ソフトウェアやカーネルモード ルートキット、マルウェアなど)を検出します。

VM Threat Detection は、Security Command Center Premium の脅威検出スイートの一部であり、Event Threat DetectionContainer Threat Detection の既存の機能を補完するように設計されています。

VM Threat Detection で検出された脅威は重大度の高い脅威であるため、直ちに修正することをおすすめします。VM Threat Detection の検出結果は Security Command Center で確認できます。

Security Command Center Premium に登録されている組織では、VM Threat Detection のスキャンが自動的に有効になります。必要であれば、サービスを無効にしたり、プロジェクト レベルで有効にすることができます。詳細については、VM Threat Detection を有効または無効にするをご覧ください。

VM Threat Detection の仕組み

VM Threat Detection は、有効な Compute Engine プロジェクトと仮想マシン(VM)インスタンスをスキャンし、VM で実行されている悪質な可能性のあるアプリケーション(暗号通貨マイニング ソフトウェアやカーネルモードのルートキットなど)を検出するマネージド サービスです。

次の図は、VM Threat Detection の分析エンジンが VM ゲストメモリからメタデータを取り込み、検出結果を Security Command Center に書き込む方法を示す簡略図です。

Virtual Machine Threat Detection の簡素化されたデータパス
Virtual Machine Threat Detection の簡素化されたデータパス

VM Threat Detection は、すべての Compute Engine VM の作成と管理を行う安全なプラットフォームである Google Cloud のハイパーバイザに組み込まれています。

VM Threat Detection は、ゲストのオペレーションを中断することなく、ハイパーバイザから実行中のゲスト VM のメモリを定期的にスキャンします。また、ディスク クローンも定期的にスキャンします。このサービスはゲスト VM インスタンスの外部から動作するため、ゲスト エージェントやゲスト オペレーティング システムに特別な構成は必要ありません。また、高度なマルウェアによって使用される手法にも耐性があります。ゲスト VM 内で CPU サイクルは使用されません。ネットワーク接続も必要ありません。セキュリティ チームは、シグネチャの更新やサービスの管理を行う必要はありません。

暗号通貨マイニングの検出の仕組み

VM Threat Detection は、Google Cloud の脅威検出ルールに基づいて、VM 上で実行されているソフトウェアに関する情報を分析します。アプリケーション名のリスト、プロセスごとの CPU 使用率、メモリページのハッシュ、CPU ハードウェアのパフォーマンス カウンタ、実行されたマシンコードに関する情報などを分析し、アプリケーションが既知の暗号通貨マイニングのシグネチャと一致するかどうか判定します。可能な場合、VM Threat Detection は、検出されたシグネチャに関連する実行中のプロセスを特定し、そのプロセスに関する情報を検出結果に追加します。

カーネルモード ルートキットの検出の仕組み

VM Threat Detection は、VM 上で実行されているオペレーティング システムのタイプを推測し、その情報を使用してメモリ内のカーネルコード、読み取り専用データのリージョン、その他のカーネルデータ構造を判定します。VM Threat Detection はさまざまな手法を適用して、カーネル イメージに期待される事前に計算済みのハッシュと比較し、重要なカーネルデータ構造の整合性を検証することで、これらのリージョンが改ざんされているかどうかを判断します。

マルウェアの検出の仕組み

VM Threat Detection は、ワークロードを中断することなく、VM の永続ディスクの有効期間が短いクローンを取得し、ディスク クローンをスキャンします。このサービスは、VM 上の実行可能ファイルを分析して、既知のマルウェア署名と一致するファイルがあるかどうかを確認します。生成された検出結果には、ファイルと検出されたマルウェアの署名に関する情報が含まれています。

スキャンの頻度

メモリスキャンの場合、VM Threat Detection は、インスタンスが作成された直後に各 VM インスタンスをスキャンします。また、VM Threat Detection は各 VM インスタンスを 30 分ごとにスキャンします。

  • 暗号通貨マイニングの検出の場合、VM Threat Detection はプロセス、VM ごとに 1 日に 1 つの検出結果を生成します。各検出結果には、検出結果で特定されたプロセスに関連する脅威のみが含まれます。検出した脅威をプロセスに関連付けることができない場合、VM Threat Detection は、VM ごとに関連付けられていないすべての脅威を 1 つの検出結果にグループ化します。この検出結果は 24 時間ごとに発行されます。脅威が 24 時間を超えて存在している場合、VM Threat Detection は 24 時間ごとに 1 回新しい検出結果を生成します。
  • カーネルモード ルートキットの検出(プレビュー版)では、VM Threat Detection は 3 日おきに各 VM のカテゴリごとに 1 つの検出結果を生成します。

既知のマルウェアのプレゼンスを検出する永続ディスク スキャンの場合、VM Threat Detection は各 VM インスタンスを少なくとも 1 日に 1 回スキャンします。

Security Command Center のプレミアム ティアを有効にすると、VM Threat Detection のスキャンが自動的に有効になります。必要であれば、サービスを無効にしたり、プロジェクト レベルで有効にすることができます。詳細については、VM Threat Detection を有効または無効にするをご覧ください。

検出結果

このセクションでは、VM Threat Detection によって生成される脅威と観察の検出結果について説明します。

脅威の検出結果

VM Threat Detection では、次の脅威を検出します。

暗号通貨マイニングの脅威の検出

VM Threat Detection は、ハッシュ マッチングまたは YARA ルールによって次の検出結果のカテゴリを検出します。

VM Threat Detection 暗号通貨マイニングの脅威の検出
カテゴリ モジュール 説明
Execution: Cryptocurrency Mining Hash Match CRYPTOMINING_HASH 実行中のプログラムのメモリハッシュを、暗号通貨マイニング ソフトウェアの既知のメモリハッシュと照合します。
Execution: Cryptocurrency Mining YARA Rule CRYPTOMINING_YARA 暗号通貨マイニング ソフトウェアによって使用されることが確認されているプルーフオブワーク定数などのメモリパターンと照合します。
Execution: Cryptocurrency Mining Combined Detection
  • CRYPTOMINING_HASH
  • CRYPTOMINING_YARA
CRYPTOMINING_HASH モジュールと CRYPTOMINING_YARA モジュールの両方で検出された脅威を識別します。詳細については、複合検出をご覧ください。

カーネルモード ルートキットの脅威の検出

VM Threat Detection は、実行時にカーネルの整合性を分析し、マルウェアによって使用される一般的な回避手法を検出します。

KERNEL_MEMORY_TAMPERING モジュールは、仮想マシンのカーネルコードとカーネルの読み取り専用データメモリに対してハッシュの比較を行い、脅威を検出します。

KERNEL_INTEGRITY_TAMPERING モジュールは、重要なカーネルデータ構造の整合性をチェックすることで脅威を検出します。

VM Threat Detection カーネルモード ルートキットの脅威の検出結果
カテゴリ モジュール 説明
カーネルメモリの改ざん
Defense Evasion: Unexpected kernel code modificationプレビュー KERNEL_MEMORY_TAMPERING カーネルコード メモリで予期しない変更が発生しています。
Defense Evasion: Unexpected kernel read-only data modificationプレビュー KERNEL_MEMORY_TAMPERING カーネルの読み取り専用データメモリに予期しない変更が加えられています。
カーネルの整合性の改ざん
Defense Evasion: Unexpected ftrace handlerプレビュー KERNEL_INTEGRITY_TAMPERING ftrace ポイントと、カーネルまたはモジュール コードの想定範囲にないリージョンを参照するコールバックが存在します。
Defense Evasion: Unexpected interrupt handlerプレビュー KERNEL_INTEGRITY_TAMPERING カーネルまたはモジュール コードに想定されているリージョンにない割り込みハンドラが存在します。
Defense Evasion: Unexpected kernel modulesプレビュー KERNEL_INTEGRITY_TAMPERING カーネルまたはモジュール コードに想定されているリージョンにないカーネルコード ページが存在します。
Defense Evasion: Unexpected kprobe handlerプレビュー KERNEL_INTEGRITY_TAMPERING kprobe ポイントと、カーネルまたはモジュール コードの想定範囲にないリージョンを参照するコールバックが存在します。
Defense Evasion: Unexpected processes in runqueueプレビュー KERNEL_INTEGRITY_TAMPERING スケジューラの実行キューに予期しないプロセスが存在します。このようなプロセスは実行キューには存在しますが、プロセスタスク リストには存在しません。
Defense Evasion: Unexpected system call handlerプレビュー KERNEL_INTEGRITY_TAMPERING カーネルまたはモジュール コードに想定されているリージョンにないシステム呼び出しハンドラが存在します。
ルートキット
Defense Evasion: Rootkitプレビュー
  • KERNEL_MEMORY_TAMPERING
  • KERNEL_INTEGRITY_TAMPERING
既知のカーネルモード ルートキットに一致するシグナルの組み合わせがあります。このカテゴリの検出結果を受け取るには、両方のモジュールが有効になっていることを確認してください。

マルウェアの脅威の検出結果

VM Threat Detection は、VM の永続ディスクに既知のマルウェアがないかスキャンして、次の検出結果のカテゴリを検出します。

VM Threat Detection のマルウェアの脅威の検出結果
カテゴリ モジュール 説明
Malware: Malicious file on disk (YARA) MALWARE_DISK_SCAN_YARA 既知のマルウェアで使用されるシグネチャと照合します。

モニタリングの検出結果

VM Threat Detection では、次のモニタリング検出結果が生成されます。

VM Threat Detection の検出結果
カテゴリ名 API 名 概要 重大度
VMTD disabled VMTD_DISABLED

VM Threat Detection が無効になっています。有効にするまで、このサービスは Compute Engine プロジェクトと VM インスタンスをスキャンしません。不要なアプリケーションを検出することはできません。

この検出結果は、30 日後に INACTIVE に設定されます。その後、この検出結果が再度生成されることはありません。

制限事項

VM Threat Detection は Compute Engine VM インスタンスをサポートしますが、次の制限があります。

  • Windows VM の制限付きサポート:

    • 暗号通マイニング検出の場合、VM Threat Detection は主に Linux バイナリを対象としており、Windows で動作する暗号通貨マイナーのサポートは限定的です。

    • プレビュー版のカーネルモード ルートキット検出の場合、VM Threat Detection は Linux オペレーティング システムのみをサポートします。

  • Confidential VMs を使用する Compute Engine VM に対するサポートはありません。Confidential VMs インスタンスは、暗号を使用して CPU に入出力されるメモリの内容を保護します。VM Threat Detection はこれらのデータをスキャンできません。

  • ディスク スキャンの制限事項:

    • 顧客指定の暗号鍵暗号化された永続ディスクはサポートされません。

    • このプレビューでは、VM ごとに 1 つのディスクのみがスキャンされます。スキャンされるのは、vfatext2ext4 のパーティションのみです。

  • VM Threat Detection を使用するには、セキュリティ センター サービス エージェントがプロジェクト内の VM を一覧表示し、Google 所有のプロジェクトにディスクのクローンを作成できる必要があります。VPC Service Controls 境界組織ポリシーの制約など、セキュリティとポリシーの一部の構成がこのようなオペレーションの妨げになる可能性があります。この場合、VM Threat Detection のスキャンが機能しない可能性があります。

  • VM Threat Detection は、Google Cloud のハイパーバイザと Compute Engine の機能を利用しています。したがって、VM Threat Detection はオンプレミス環境または他のパブリック クラウド環境では実行できません。

プライバシーとセキュリティ

VM Threat Detection は、分析のために実行中の VM のディスク クローンとメモリにアクセスします。このサービスは脅威の検出に必要なものだけを分析する。

VM メモリとディスクのクローンの内容は、VM Threat Detection のリスク分析パイプラインの入力として使用されます。データは転送中に暗号化され、自動システムによって処理されます。処理中、データは Google Cloud のセキュリティ管理システムによって保護されます。

VM Threat Detection は、モニタリングとデバッグを目的として、サービスが保護するプロジェクトについて基本的な診断情報と統計情報を保存します。

VM Threat Detection は、それぞれのリージョンの VM メモリ コンテンツとディスク クローンをスキャンします。ただし、検出結果とメタデータ(プロジェクト番号や組織番号など)がそれらのリージョンの外部に保存される可能性があります。

次のステップ