一部の VMware Tools 設定によって、セキュリティ リスクにさらされるおそれがあります。たとえば、VMware Tools によって、シリアル ポートやパラレル ポートなどの仮想デバイスを仮想マシンに接続できます。接続されたデバイスが攻撃チャネルになる可能性があります。可能な限り仮想マシンを堅牢化してセキュリティ リスクを軽減するには、セキュリティの脅威に対する脆弱性となりそうな VMware Tools 機能を無効にします。

ホスト、仮想マシン、管理コンポーネント、およびネットワーク インフラストラクチャに関するセキュリティの推奨事項を含む、本番環境に安全に VMware Tools をデプロイする詳細な手順については、『vSphere Hardening Guide (vSphere 堅牢化ガイド)』 を参照してください。VMware Tools 設定は、デプロイの仮想マシン面にのみ関連します。

仮想マシンは、少数のファイルにカプセル化されます。重要なファイルの 1 つが構成ファイル (.vmx ファイル) です。このファイルは、仮想ハードウェアのパフォーマンスやその他の設定を管理します。構成設定を表示および変更するには、次のようないくつかの方法を使用できます。

  • テキスト エディタで .vmx ファイルを直接開きます。

  • vSphere Web Client を使用して仮想マシン設定を変更します。vSphere Web Client では、これらの構成パラメータは、仮想マシンの 設定の編集 ダイアログ ボックスの詳細オプションで編集します。

  • vSphere Client を使用して仮想マシン設定を編集します。vSphere Client では、これらの構成パラメータは、仮想マシンの 設定の編集 ダイアログ ボックスの詳細オプションで編集します。

  • Power CLI など、vSphere API ベースのツールを使用して、.vmx パラメータを表示および変更します。

設定の編集後、変更内容は、仮想マシンを再起動するまで有効になりません。

次の潜在的なセキュリティの脅威とそれに対応する VMware Tools パラメータのリストを確認して、仮想マシンの .vmx ファイルを設定します。こうしたパラメータの多くは、これらの脅威から仮想マシンを保護するためにデフォルト値がすでに設定されています。

権限のないユーザー アカウントに伴う脅威

ディスク圧縮機能

仮想ディスクを圧縮すると、未使用のディスク領域が解放されます。ルート権限および管理者権限のないユーザーやプロセスでも、この手順を起動できます。ディスク圧縮プロセスは完了するまで時間がかかるため、ディスク圧縮手順を繰り返し起動するとサービス拒否が発生する可能性があります。圧縮プロセスの実行中、仮想ディスクは使用できません。ディスク圧縮を無効にするには、次の .vmx 設定を使用します。

isolation.tools.diskWiper.disable = "TRUE"
isolation.tools.diskShrink.disable = "TRUE"

コピー アンド ペースト機能

デフォルトでは、ファイルのドラッグ アンド ドロップ機能と同様に、テキスト、グラフィック、およびファイルのコピー アンド ペースト機能は無効になっています。この機能を有効にすると、リッチ テキストだけでなく、VMware 製品によっては、グラフィックとファイルをクリップボードから仮想マシンのゲスト OS にコピー アンド ペーストできます。つまり、仮想マシンのコンソール ウィンドウにフォーカスが移るとすぐに、仮想マシンで操作中のユーザーや実行中のプロセスは、権限がなくてもコンソール ウィンドウが実行されているコンピュータのクリップボードにアクセスできます。この機能に伴うリスクを回避するには、次の .vmx 設定を保持して、コピー アンド ペーストを無効にします。

isolation.tools.copy.disable = "TRUE"
isolation.tools.paste.disable = "TRUE"

仮想デバイスに伴う脅威

デバイスの接続と変更

デフォルトでは、デバイスの接続および切断機能は無効です。この機能を有効にすると、ルート権限および管理者権限のないユーザーやプロセスでも、ネットワーク アダプタや CD-ROM ドライブなどのデバイスへの接続や、デバイス設定の変更ができます。つまり、ユーザーは切断された CD-ROM ドライブに接続し、ドライブに残されたメディアに含まれる機密情報にアクセスできます。ユーザーはまた、ネットワーク アダプタを切断して仮想マシンをネットワークから隔離し、サービス拒否状態にすることもできます。この機能に伴うリスクを回避するには、次の .vmx 設定を保持して、デバイスの接続および切断機能またはデバイス設定の変更機能を無効にします。

isolation.device.connectable.disable = "TRUE"
isolation.device.edit.disable = "TRUE"

仮想マシンの情報フローに伴う脅威

仮想マシンのログ数の構成

ログの設定に応じて、古いファイルが 100KB を超えるごとに新しいログ ファイルが作成される可能性があります。ログを制御できないと、データストアのディスク領域が不足した場合にサービス拒否につながる可能性があります。10 個のログ ファイルを保存することをお勧めします。デフォルトではログ ファイルの最大サイズは 100KB で、仮想マシン レベルでこの値を変更することはできません。ログ ファイルの数を設定するには、次の .vmx 設定を使用します。

vmx.log.keepOld = "10"

/etc/vmware/config ファイルを編集すると、すべての仮想マシンのログ ファイルの数を制限できます。vmx.log.keepOld プロパティがファイルに定義されていない場合は、追加できます。たとえば、各仮想マシンに 10 個のログ ファイルを保存するには、次の式を /etc/vmware/config に追加します。

vmx.log.keepOld = "10"

1 台のホストの仮想マシンすべてにこのプロパティを変更する PowerCLI スクリプトを使用することもできます。

極端な方法として、仮想マシンのログをすべて無効にする方法があります。ログを無効にすると、トラブルシューティングやサポートが難しくなります。ログ ファイルのローテーション方式では不十分なことが証明されない限り、ログの無効化は検討しないでください。ログをすべて無効にするには、次の .vmx 設定を使用します。

logging = "FALSE"

VMX ファイル サイズ

デフォルトでは、構成ファイルのサイズは 1 MB に制限されています。これは、ファイルのサイズを制御しないと、データストアがディスク領域不足になった場合にサービス拒否が発生するおそれがあるためです。情報メッセージが仮想マシンから .vmx ファイルに送信されることがあります。これらの setinfo メッセージでは、仮想マシンの特性または識別子をファイルに名前と値のペアを書き込むことで定義します。ファイルに大量のカスタム情報を格納する場合は、ファイルのサイズ拡張が必要になることがあります。プロパティ名は tools.setInfo.sizeLimit で、値は K バイト単位で指定します。次の .vmx 設定を保持します。

tools.setInfo.sizeLimit = "1048576"

パフォーマンス カウンタの PerfMon への送信

仮想マシンの CPU およびメモリ用パフォーマンス カウンタを Linux および Microsoft Windows ゲスト OS の PerfMon に統合できます。この機能によって、物理ホストに関する詳細情報をゲスト OS から使用できるようになります。攻撃者はこの情報を使用し、ホストでさらなる攻撃を通知することができます。デフォルトでは、この機能は無効です。ホスト情報を仮想マシンに送信されないようにするには、次の .vmx 設定を保持します。

tools.guestlib.enableHostInfo = "FALSE"

この設定によって、一部のメトリックがブロックされます。このプロパティを FALSE に設定した場合、次のメトリックがブロックされます。

  • GUESTLIB_HOST_CPU_NUM_CORES

  • GUESTLIB_HOST_CPU_USED_MS

  • GUESTLIB_HOST_MEM_SWAPPED_MB

  • GUESTLIB_HOST_MEM_SHARED_MB

  • GUESTLIB_HOST_MEM_USED_MB

  • GUESTLIB_HOST_MEM_PHYS_MB

  • GUESTLIB_HOST_MEM_PHYS_FREE_MB

  • GUESTLIB_HOST_MEM_KERN_OVHD_MB

  • GUESTLIB_HOST_MEM_MAPPED_MB

  • GUESTLIB_HOST_MEM_UNMAPPED_MB

vSphere では公開されないが脆弱性の原因となる可能性がある機能

VMware 仮想マシンは、vSphere のほかにも多くの VMware 製品で稼働するため、仮想マシン パラメータには vSphere 環境に適用されないものもあります。これらの機能は vSphere ユーザー インターフェイスには表示されませんが、無効にするとゲスト OS がホストにアクセスするためのベクトル数が減少します。これらの機能を無効にするには、次の .vmx 設定を使用します。

isolation.tools.unity.push.update.disable = "TRUE"
isolation.tools.ghi.launchmenu.change = "TRUE"
isolation.tools.ghi.autologon.disable = "TRUE"
isolation.tools.hgfsServerSet.disable = "TRUE"
isolation.tools.memSchedFakeSampleStats.disable = "TRUE"
isolation.tools.getCreds.disable = "TRUE"