Informações sobre um host podem vazar para um convidado de várias maneiras diferentes. O VMware (e os produtos de virtualização em geral) fornecem proteção contra muitas coisas. Embora seja improvável que seja capaz de fornecer um ambiente de isolamento completo, provavelmente faz um bom trabalho. Por exemplo, alguns pesquisadores de vírus usam o VMware para fornecer um ambiente seguro para
As informações do host podem vazar para o convidado:
- se o convidado executar diretamente as instruções que a camada de virtualização não intercepta.
- se o convidado puder observar o tráfego de rede diretamente no mesmo segmento de rede que o host.
- se o convidado puder se comunicar com o mundo externo e investigar o host.
Sua principal preocupação parece ser o primeiro método de vazamento, mas você também deve se proteger contra os outros mecanismos.
O VMware (e outros hypervisors) fornece virtualização, interceptando o que são consideradas instruções confidenciais. Instruções confidenciais revelariam ao convidado informações sobre o host ou permitiriam que o convidado escapasse da contenção da camada de virtualização. Por exemplo, a instrução que modifica a base da tabela de páginas (que controla o acesso à memória) deve ser detectada pela camada de virtualização, interceptada e substituída por uma versão "segura" dessa instrução que preserve a ilusão de virtualização.
Para fornecer a ilusão de uma máquina separada do host, as instruções que revelam informações de identificação sobre o host (como números de série, endereços MAC, etc.) também são virtualizadas. No VMware, essas coisas podem ser definidas no arquivo vmx
. Este material é bem compreendido e presumivelmente seguro.
Às vezes, há trade-offs sobre o que está exposto, como a instrução CPUID, que versões recentes do VMware fornecem alguma "proteção" contra. (Consulte VMotion e compatibilidade com CPU para obter muitos detalhes sobre a virtualização de CPUID.) Quando executada como uma instrução privilegiada, pode ser preso e emulado, mas também pode ser executado como uma instrução nativa que pode expor algumas informações (presumivelmente desinteressantes) ao convidado.
No entanto, o convidado também pode aprender passivamente outras informações sobre o host. Por exemplo, analisando os intervalos de memória, o convidado pode obter informações do tamanho de vários caches. A capacidade de aprender sobre outros convidados (ou o host) por meio de temporização e outros vetores ("canais secundários") é uma área de pesquisa ativa. Em outubro de 2012, os pesquisadores descobriram que, de fato, é possível extrair chaves criptográficas de outras VMs . Isso pode ser bastante assustador e os limites do que pode ser descoberto e como se proteger contra isso ainda não estão totalmente esclarecidos.
A melhor maneira de estar totalmente seguro é isolar sua máquina por via aérea do resto do mundo. Então não importa o que o software malicioso aprende porque não pode comunicar essa informação a ninguém. Quando terminar, limpe a máquina. Usar uma ferramenta como o VMware facilita essa limpeza e recuperação de estado porque o estado da máquina é encapsulado em um conjunto de arquivos.