Informationen über einen Host können auf verschiedene Weise an einen Gast weitergegeben werden. VMware (und Virtualisierungsprodukte im Allgemeinen) bieten Schutz vor vielen Dingen. Es ist zwar unwahrscheinlich, dass eine vollständige Isolationsumgebung bereitgestellt werden kann, aber es leistet wahrscheinlich ziemlich gute Arbeit. Zum Beispiel verwenden VMware einige Virenforscher eine sichere Umgebung zu schaffen , um das Verhalten von Malware zu untersuchen .
Hostinformationen können an den Gast weitergegeben werden:
- Wenn der Gast direkt Anweisungen ausführt, die die Virtualisierungsschicht nicht abfängt.
- wenn der Gast den Netzwerkverkehr direkt im selben Netzwerksegment wie der Host beobachten kann.
- wenn der Gast mit der Außenwelt kommunizieren und zum Host zurückkehren kann.
Ihr Hauptanliegen scheint die erste Methode der Leckage zu sein, obwohl Sie sicher sein sollten, auch vor den anderen Mechanismen zu schützen.
VMware (und andere Hypervisoren) bieten Virtualisierung, indem sie als vertraulich geltende Anweisungen abfangen. Sensible Anweisungen geben dem Gast entweder Informationen über den Host preis oder ermöglichen es dem Gast, sich der Eindämmung der Virtualisierungsschicht zu entziehen. Beispielsweise muss der Befehl, der die Seitentabellenbasis ändert (die den Speicherzugriff steuert), von der Virtualisierungsschicht erkannt, abgefangen und durch eine "sichere" Version dieses Befehls ersetzt werden, die die Illusion der Virtualisierung bewahrt.
Um die Illusion eines vom Host getrennten Computers zu erzeugen, werden auch Anweisungen virtualisiert, die identifizierende Informationen über den Host (wie Seriennummern, MAC-Adressen usw.) enthalten. In VMware können diese Dinge in der vmx
Datei festgelegt werden. Dieses Zeug ist gut verstanden und vermutlich sicher.
Manchmal gibt es Kompromisse in Bezug auf das, was verfügbar gemacht wird, wie z. B. die CPUID-Anweisung, gegen die neuere Versionen von VMware einen gewissen "Schutz" bieten. (Weitere Informationen zur CPUID-Virtualisierung finden Sie unter VMotion- und CPU-Kompatibilität .) Wenn diese Anweisung als privilegierte Anweisung ausgeführt wird, kann sie abgefangen und emuliert werden. Sie kann jedoch auch als native Anweisung ausgeführt werden, die dem Gast einige (vermutlich uninteressante) Informationen zur Verfügung stellt .
Der Gast kann jedoch auch passiv andere Informationen über den Gastgeber erfahren. Durch Prüfen der Speicherzeiten kann der Gast beispielsweise Informationen in der Größe verschiedener Caches abrufen. Die Fähigkeit, über Timing und andere Vektoren ("Seitenkanäle") etwas über andere Gäste (oder den Gastgeber) zu lernen, ist ein Bereich aktiver Forschung. Im Oktober 2012 entdeckten Forscher, dass es tatsächlich möglich ist, kryptografische Schlüssel von anderen VMs zu extrahieren . Dies mag ziemlich beängstigend sein und die Grenzen dessen, was entdeckt werden kann und wie man sich dagegen schützen kann, sind noch nicht vollständig klar.
Der beste Weg, um vollständig sicher zu sein, besteht darin, Ihre Maschine über einen Luftspalt vom Rest der Welt zu isolieren. Dann spielt es keine Rolle, was die schädliche Software lernt, da sie diese Informationen an niemanden weitergeben kann. Wenn Sie fertig sind, wischen Sie die Maschine ab. Die Verwendung eines Tools wie VMware erleichtert das Löschen und die Wiederherstellung des Status, da der Computerstatus in einer Reihe von Dateien enthalten ist.