web-dev-qa-db-ja.com

ゲストは、vmwareホストに関するどのような情報を利用できますか?

vmware Workstation、ホストソフトウェアとハ​​ードウェアに関するどの情報がゲストOSで利用可能になりますか。

私のアプリケーションの目的のために、ホストが実行されている物理ハードウェアに関する情報を取得するゲストOS上のプロセスについて懸念しています。これには、シリアル番号、MACアドレス、または実行中のコンピューターを物理的に識別できるものなどの詳細が含まれる場合があります。

ホストとゲストの両方がUbuntuLinuxを実行します。

編集:vmware-toolsゲストにインストールされます

編集2:報奨金の追加

私はこの質問について多くの調査を行いましたが、ほとんどの回答には「すべきではない」などの単語が含まれています。 vmwareゲストが次のアイテムのいずれも表示できないことをある程度確実に知る必要があります(つまり、これらのものがゲストに利用可能である場合、大規模なセキュリティ違反と見なされます)

  • ハードウェアのシリアル番号
  • ホストネットワークインターフェースのMACアドレス
  • vmwareソフトウェアの登録シリアル番号
  • ホストオペレーティングシステム上のすべてのファイル

この質問の動機は、信頼性の低いソフトウェアを実行する必要があり、自分の身元を明らかにする可能性のある情報からサンドボックス化したいということです。たとえば、このソフトウェアはプロセッサのシリアル番号を読み取って作成者に報告しようとしますが、これにより、実際のIDにまでさかのぼることができると思います。必要に応じて、この妄想を呼んでください。私の状況の一部では、vmware-toolsがインストールされている必要があります。

9
user13137

ホストに関する情報は、さまざまな方法でゲストに漏洩する可能性があります。 VMware(および一般的な仮想化製品)は、多くのことに対する保護を提供します。完全な分離環境を提供できる可能性は低いですが、おそらくかなり良い仕事をします。たとえば、 一部のウイルス研究者はVMwareを使用しています 安全な環境を提供します マルウェアの動作を調査します

ホスト情報がゲストに漏洩する可能性があります。

  • ゲストが仮想化レイヤーがインターセプトしない命令を直接実行する場合。
  • ゲストがホストと同じネットワークセグメント上でネットワークトラフィックを直接監視できる場合。
  • ゲストが外の世界と通信し、ホストにプローブバックできるかどうか。

あなたの主な関心事は、漏れの最初の方法に関するようですが、他のメカニズムからも保護する必要があります。

VMware(およびその他のハイパーバイザー)は、機密性の高い命令と見なされるものを傍受することで仮想化を提供します。機密性の高い指示は、ホストに関する情報をゲストに明らかにするか、ゲストが仮想化レイヤーの封じ込めから逃れることを可能にします。たとえば、ページテーブルベース(メモリアクセスを制御する)を変更する命令は、仮想化レイヤーによって検出され、傍受され、仮想化の錯覚を維持するその命令の「安全な」バージョンに置き換えられる必要があります。

ホストとは別のマシンのように見せるために、ホストに関する識別情報(シリアル番号、MACアドレスなど)を明らかにする命令も仮想化されます。 VMwareでは、これらはvmxファイルで設定できます。このようなものはよく理解されており、おそらく安全です。

場合によっては、CPUID命令など、公開されているものについてトレードオフがあります。これは、VMwareの最近のバージョンが何らかの「保護」を提供します。 (CPUID仮想化の詳細については、 VMotionとCPUの互換性 を参照してください。)特権命令として実行すると、これをトラップしてエミュレートできますが、一部を公開する可能性のあるネイティブ命令として実行することもできます(おそらく面白くない)ゲストへの情報。

ただし、ゲストはホストに関する他の情報を受動的に学習することもできます。たとえば、メモリタイミングをプローブすることで、ゲストはさまざまなキャッシュのサイズに関する情報を取得できます。タイミングや他のベクトル(「サイドチャネル」)を介して他のゲスト(またはホスト)について学習する機能は、活発な研究の領域です。 2012年10月、研究者は実際に可能であることを発見しました 他のVMから暗号化キーを抽出する 。これは非常に恐ろしいことかもしれませんし、発見できるものの限界とこれから保護する方法はまだ完全には明らかではありません。

完全に安全にするための最良の方法は、エアギャップを介してマシンを他の世界から隔離することです。そうすれば、悪意のあるソフトウェアはその情報をだれにも伝えることができないため、何を学習してもかまいません。終わったら、機械を拭きます。 VMwareのようなツールを使用すると、マシンの状態が一連のファイルにカプセル化されるため、このワイプと状態の回復が容易になります。

5
Emil Sit

ゲストは、ネットワークなどのホスト設定について何も知らないはずです。これは、物理ハードウェアと(ほぼ)正確に動作する仮想ハードウェアが渡されるためです。ただし、CPUのようなゲストが知っておく必要のあることもありますが、その知識によってセキュリティが損なわれることはありません。

そのため、ホストからゲストに設定情報が漏洩した場合、セキュリティホールになります。

ただし、hgfs(ホスト-ゲストファイルシステム)を有効にすると、ホストファイルシステムの少なくとも一部がゲストに表示され、ホストに関する情報を取得できるようになります。懸念がある場合は、これを無効にする必要があります。

ほとんどの場合、ワークステーションは個人的に使用されます。つまり、どのような場合でもホストにアクセスできるため、これは通常は問題になりません。それ以外の場合は、サーバーの仮想化(vsphere、xen、kvm)を検討する必要があります。

1
johnshen64

記事 VM内からホスト情報を抽出する方法は? ゲストがホスト情報を取得するために使用できるESX(i)/ vSphereのユーティリティについて説明しています。セキュリティ上の理由から、これは必然的に範囲が制限されます。

最初のユーティリティは、VMwareToolboxコマンドです。基本的なリソース統計など、ESX(i)およびguestOSの構成に関する情報を提供します。

UNIX/Linux - /usr/bin/vmware-toolbox-cmd
Windows - C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe

2つ目はvmtoolsd(VMware Tools Daemon)ユーティリティで、「info-get」パラメータを使用して、仮想マシンの実行中に仮想マシンの.vmx構成ファイル内またはVMXメモリにguestinfoセットを取得できます。

UNIX/Linux - /usr/bin/vmtoolsd
Windows - C:\Program Files\VMware\VMware Tools\vmtoolsd.exe
1
harrymc