ディスカバリー クライアントのデータ収集とセキュリティ

このドキュメントでは、データセンターへの Migration Center ディスカバリー クライアントのインストールに関する懸念事項と質問について説明します。厳しく規制された環境でお客様の IT アセットからデータを検出して収集する場合のセキュリティ、コンプライアンス、パフォーマンスの重要性を強調しています。

データ収集の方法

ディスカバリー クライアントは、複数の方法でターゲット マシンからデータを収集します。収集されるデータは、方法によって異なります。ゲストレベルでは、収集スクリプトを使用してデータが収集されます。ハイパーバイザ レベルでは、基盤となるプラットフォーム API を使用してデータが収集されます。

ディスカバリー クライアント サービスとプロセス

ディスカバリ クライアントは、mcdc_service.exe というプロセスで GoogleMCDC というサービスとして実行されます。

収集スクリプト

検出クライアントで使用されるゲストレベルの収集方法はすべて、ターゲット マシンで収集スクリプトを実行します。収集に使用される実際のスクリプトについては、次のリンクをご覧ください。

収集スクリプトは、結果をアーカイブ ファイル(zip または tar)に保存し、検出クライアントが取得します。

収集メカニズム

ディスカバリー クライアントは、次のセクションで説明する収集メカニズムの 1 つ以上を使用して、ターゲット マシンからデータを収集します。

SSH(Linux)

SSH 収集中は、次のプロセスが発生します。

  1. コレクタ マシンとターゲット サーバーの間で SSH セッションが開始されます。
  2. ~/.mcdc-temp/ の下に一時ディレクトリが作成されます。
  3. 収集スクリプトは、そのディレクトリにコピーされます。
  4. 収集スクリプトが実行されます。
  5. 結果アーカイブは SCP を使用して取得されます。
  6. 一時ディレクトリがクリーンアップされます。

WMI(Windows)

Windows での WMI 収集中は、次のプロセスが発生します。

  1. ターゲット マシンへの WMI 接続が開始されます。
  2. ターゲット マシンの HKLM:\SOFTWARE\Google\Collector\data に、一時的な(揮発性)レジストリキーが作成されます。
  3. 収集スクリプトがレジストリキーにコピーされます。
  4. C:\temp の下に一時ディレクトリが作成されます。
  5. 収集スクリプトが一時ディレクトリに書き込まれます。
  6. 収集スクリプトが実行されます。
  7. 収集の結果は、揮発性レジストリキーに書き込まれます。
  8. 結果はコレクタマシンにコピーされます。

VMware ゲスト ツール(Linux と Windows)

Linux と Windows の両方の VMware 収集中に、次のプロセスが発生します。

  1. VMware ゲストツールを使用して一時ディレクトリが作成されます。
  2. 収集スクリプトは、そのディレクトリにコピーされます。
  3. 収集スクリプトが実行されます。
  4. 結果アーカイブは VMware ゲストツールを使用して取得されます。
  5. 一時ディレクトリがクリーンアップされます。

定期的なデータ収集

ディスカバリー クライアントは、構成されたすべてのサーバーから定期的にデータを収集します。コレクションには次の 2 種類があります。

  • 完全な収集: 各サーバーに対して 1 日 1 回実行されます。この収集では、ハードウェア、環境、インストールされているソフトウェア、実行中のプロセスなど、VM に関するさまざまな情報を収集する完全な収集スクリプトが実行されます。
  • パフォーマンスの収集: 各サーバーで 10 分ごとに実行されます。このコレクションは、CPU、メモリ、ネットワーク、ディスクの使用率に関するデータを収集するパフォーマンス収集スクリプトを実行します。

収集されるデータの種類

収集スクリプトは、ターゲット VM に関するデータを収集して、VM の構成方法と使用するリソースを把握します。これは、クラウドへの移行を評価して計画する際に役立ちます。

収集されるデータは次のとおりです。

  • システム情報: VM のサイズ、パフォーマンス要件、特定のハードウェアやドライバへの依存関係を決定するために不可欠な基本情報。たとえば次のものを利用できます。
    • オペレーティング システム(バージョンとリリース)
    • ハードウェア(CPU、メモリ、BIOS の詳細)
    • ネットワーク構成(ネットワーク インターフェース、IP アドレス、ルーティング テーブル)
    • ストレージ(ディスクドライブ、パーティション、マウント ポイント)
  • インストールされているソフトウェアとサービス: スクリプトは、インストールされているパッケージと実行中のサービスのリストを収集して、VM のソフトウェア スタックとそのロールを把握します。たとえば次のものを利用できます。
    • ウェブサーバー(Apache、Tomcat、JBoss)
    • データベース(SQL Server の証拠は Windows スクリプトで収集されます)
    • 移行中に特定の構成が必要になる可能性のあるその他のアプリケーション。
  • アプリケーション構成: スクリプトは、ウェブサーバー(IIS、Apache、Tomcat、JBoss、WordPress)の構成ファイルも収集します。これにより、これらのアプリケーションの特定の設定と依存関係を把握できます。これは、クラウド環境へのスムーズな移行に不可欠です。
  • VMWare とクラウド環境の検出: Linux スクリプトと Windows スクリプトの両方で、VM がクラウド環境(AWS または Google Cloud)ですでに実行されているか、VCenter クラスタで実行されているかを検出しようとします。これは、これらのクラウド プロバイダのメタデータ サーバーにリクエストを送信することで行われます。VM がすでにクラウドにある場合、スクリプトはインスタンス ID、インスタンス タイプなどの関連メタデータを収集します。
  • パフォーマンス指標: パフォーマンス収集スクリプトは、リソース使用率を測定します。これには以下が含まれます。
    • CPU
    • メモリ
    • I/O オペレーション
    • ネットワーキング
  • ネットワーク接続: スクリプトはオープン接続を収集し、ネットワーク リソースに対するさまざまな依存関係の画像を作成します。

ターゲット マシンのパフォーマンスへの影響

リソース使用率の評価

ターゲット マシン上の収集スクリプトのリソース使用率は、実行中のプロセスの数、デプロイされたアプリケーションの数、アクティブなネットワーク接続の数などのパラメータによって異なります。

Windows では、収集スクリプトは Threading API で使用可能な最も低い優先度で実行されます。Linux では、nice 値を 5 に設定して、本番環境ワークロードとの干渉を最小限に抑え、収集スクリプトよりも優先度を高くします。

通常の収集では、負荷のないマシンでシングルコア CPU の使用率が 5 ~ 20 秒間高くなることがあります。他のワークロードが存在する場合、これらのワークロードの優先度が高いため、時間がかかることがあります。

緩和戦略

ディスカバリー クライアントには、特定の時間帯に特定のサーバーを収集しないようにするメカニズムがあります。この機能を使用すると、ピーク時に重要なワークロードを実行しているサーバーからの収集を防ぐことができます。

セキュリティ上の考慮事項

認証と認可

ターゲット マシンとの通信

  • 検出クライアントは、安全なチャネルを使用してターゲット マシンの認証と通信を行います。これには、SSH、WMI、VMware ツール、vCenter 接続が含まれます。ディスカバリー クライアントは、これらのプロトコルの一部として組み込みのセキュリティ対策を使用します。
  • SSH では、ディスカバリー クライアントはユーザー名とパスワードの両方と、鍵ベースの認証を許可します。サポートされている鍵ペアの種類の一覧については、ターゲット アセットの要件をご覧ください。

Google Cloud との通信

  • 登録済みのディスカバリー クライアントは、通常の動作中に Google Cloud Migration Center と通信します。通信は、roles/migrationcenter.discoveryClient ロール バインディングを持つサービス アカウントを介して行われます。サービス アカウントは、自動的に作成されるか、登録プロセス中にユーザーが指定します。
  • サービス アカウントの秘密鍵は、次のセクションで説明する暗号化メカニズムを使用して検出クライアント マシンで暗号化されます。
  • Google Cloud との通信はすべて、このサービス アカウントを使用して認証され、SSL/TLS を使用して暗号化されます。

データ暗号化

  • 転送中: すべての検出クライアント通信チャネルは、暗号化を使用して転送中のデータが保護されます。これには、さまざまなプロトコル(SSH/WMI)を使用したターゲット マシンとの通信や、HTTPS を使用した Google Cloud との通信が含まれます。
  • 保存中: ディスカバリー クライアントの PII、SPII、シークレットはすべて、AES128_GCM アルゴリズムを使用して保存中に暗号化され、Windows DPAPI を使用して暗号鍵が安全に保存されます。

侵入検知および防止

検出クライアントは、組織内の多くの VM に接続してスクリプトを実行するために使用されるため、EDR または XDR アラートをトリガーすることがあります。これは、セキュリティ ツールの構成方法と、使用している特定のツールに大きく依存します。特定のアラートやデバイスに対して例外を作成することを検討してください。

ロギングとサポート

ディスカバリー クライアントは、デバッグとサポートを可能にするために、実行中にログを収集します。ディスカバリー クライアントのログは、次の 2 つのメカニズムを使用して収集されます。

  • ローカルログ: ログは C:\ProgramData\Google\mcdc\logs のファイルに書き込まれます。ログファイルはローテーションされ、圧縮されます。
  • Cloud ログ: 登録済みのクライアントはログを Google Cloud に送信するため、お客様の問題が報告されたときに Google Cloud サポートチームが使用できます。