Les informations sur un hôte peuvent être divulguées à un invité de différentes manières. VMware (et les produits de virtualisation en général) offrent une protection contre de nombreuses choses. S'il est peu probable qu'il soit en mesure de fournir un environnement d'isolation complet, il fait probablement un très bon travail. Par exemple, certains chercheurs sur les virus utilisent VMware pour fournir un environnement sûr pour étudier le comportement des logiciels malveillants .
Les informations de l'hôte peuvent fuir vers l'invité:
- si l'invité exécute directement des instructions que la couche de virtualisation n'intercepte pas.
- si l'invité peut observer le trafic réseau directement sur le même segment de réseau que l'hôte.
- si l'invité peut communiquer avec le monde extérieur et sonder de nouveau l'hôte.
Votre principale préoccupation semble concerner la première méthode de fuite, mais vous devez également vous protéger contre les autres mécanismes.
VMware (et d'autres hyperviseurs) fournissent la virtualisation en interceptant ce qui est considéré comme des instructions sensibles. Des instructions sensibles révéleraient à l'invité des informations sur l'hôte, ou lui permettraient d'échapper au confinement de la couche de virtualisation. Par exemple, l'instruction qui modifie la base de la table des pages (qui contrôle l'accès à la mémoire) doit être détectée par la couche de virtualisation, interceptée et remplacée par une version "sûre" de cette instruction qui préserve l'illusion de la virtualisation.
Pour donner l'illusion d'une machine distincte de l'hôte, les instructions qui révèlent des informations d'identification sur l'hôte (telles que les numéros de série, les adresses MAC, etc.) sont également virtualisées. Dans VMware, ces choses peuvent être définies dans le vmx
fichier. Ce truc est bien compris et sans doute sûr.
Parfois, il y a des compromis sur ce qui est exposé, comme l'instruction CPUID, contre laquelle les versions récentes de VMware offrent une certaine "protection". (Voir VMotion et la compatibilité CPU pour de nombreux détails sur la virtualisation CPUID.) Lorsqu'elle est exécutée en tant qu'instruction privilégiée, elle peut être capturée et émulée, mais elle peut également être exécutée en tant qu'instruction native qui peut exposer certaines informations (probablement sans intérêt) à l'invité. .
Cependant, l'invité peut également apprendre passivement d'autres informations sur l'hôte. Par exemple, en sondant les timings de la mémoire, l'invité peut obtenir des informations sur la taille des caches. La capacité de connaître les autres clients (ou l'hôte) via le chronométrage et d'autres vecteurs ("canaux latéraux") est un domaine de recherche active. En octobre 2012, les chercheurs ont découvert qu'il était en fait possible d' extraire des clés cryptographiques d'autres machines virtuelles . Cela peut être assez effrayant et les limites de ce qui peut être découvert et comment se protéger contre cela ne sont pas encore complètement claires.
La meilleure façon d'être entièrement sécurisé est d'isoler votre machine par l'entrefer du reste du monde. Ensuite, peu importe ce que le logiciel malveillant apprend, car il ne peut communiquer ces informations à personne. Lorsque vous avez terminé, essuyez la machine. L'utilisation d'un outil comme VMware facilite cet effacement et cette récupération d'état car l'état de la machine est encapsulé dans un ensemble de fichiers.