web-dev-qa-db-ja.com

仮想マシンへのリモートアクセスとハードウェアの一部を区別するのはどれほど難しいですか。

リモートマシン(具体的には、root上のLinux)へのフルアクセス権があるとします。これが実際のハードウェアなのか仮想マシンなのかを確認する最良の方法は何ですか?

私が見た方法のほとんどは、lshwなどのツールを使用して、ハードウェア関連のさまざまな識別子を調べることに依存しています。これらの方法は、ある種の中間者攻撃を受けやすいように思われます。

参考文献やその他の情報を事前にありがとう。

9
ffc

場合によります。それがVMであることを隠そうとすると、難しい場合があります。これは、たとえば、マルウェアの分析に使用されるVMに当てはまります。

シマンテックからのこの文書 は、いくつかの詳細に行きます。つまり、CPUを特定の状態にする命令を実行してハイパーバイザーを強制的に実行する命令を実行し、VMがそれを隠そうとしている場合でも、通常はそれを検出し、ハイパーバイザーの状態を確認することができます。その後CPU。

タイミング攻撃でもハイパーバイザーを検出できますが、ベースラインがない場合は難しい場合があります。

ストックVMたとえば、Azureは、それがVMであることを隠そうとせず、VMであることがディスクリプターから明らかになります。

11
vidarlo