Compartilhar via


Proteções de recursos do sistema de segurança baseadas em virtualização

A segurança baseada em virtualização, ou VBS, usa a virtualização de hardware e o hipervisor do Windows para criar um ambiente virtual isolado que se torna a raiz de confiança do sistema operacional que pressupõe que o kernel pode ser comprometido. O Windows usa esse ambiente isolado para hospedar várias soluções de segurança, fornecendo-lhes uma proteção muito maior contra vulnerabilidades no sistema operacional e impedindo o uso de explorações mal-intencionadas que tentam derrotar proteções. A VBS impõe restrições para proteger recursos vitais do sistema e do sistema operacional ou para proteger ativos de segurança, como credenciais de usuário autenticadas.

Para obter mais informações sobre VBS, consulte VBS (Virtualization-based Security).

O VBS altera o modelo de confiança

Embora o VBS melhore muito a segurança da plataforma, o VBS também altera os limites de confiança em um computador Windows. Com a VBS, o hipervisor do Windows controla muitos aspectos do hardware subjacente que fornecem a base para o ambiente seguro do VBS. O hipervisor deve assumir que o kernel do Windows pode ser comprometido por código mal-intencionado e, portanto, deve proteger os principais recursos do sistema de serem manipulados contra o código em execução no modo kernel de uma maneira que possa comprometer os ativos de segurança.

Noções básicas sobre MSRs de processador

Uma área de recursos vitais do sistema que o hipervisor deve proteger contra uso mal-intencionado são registros específicos do modelo de processador ou MSRs. Os processadores modernos dão suporte a um grande número de MSRs, muitos dos quais controlam os principais aspectos do comportamento do processador. Os MSRs só podem ser lidos ou gravados no código do modo kernel (ou seja, CPL0). Alterar as configurações controladas por MSRs pode permitir que o código mal-intencionado do modo kernel altere o comportamento do sistema e permita que um invasor obtenha controle, comprometendo a segurança. Além disso, muitas MSRs contêm dados sobre a operação do sistema, como rastreamento ou dados de diagnóstico, que também podem ser usados para revelar ou calcular ativos de segurança. Portanto, o hipervisor deve identificar e proteger contra o uso indevido de quaisquer MSRs que possam comprometer a postura de segurança do VBS.

Os MSRs são acessados por meio de um índice, que é um identificador exclusivo por MSR. Historicamente, muitas MSRs foram estabelecidas como arquitetônicas; ou seja, sua presença e função permanecem arquitetônicamente consistentes em várias gerações de processadores. Nesse caso, um MSR conhecido com um índice MSR documentado e uma definição podem ser confiados para controlar um conjunto de recursos conhecido e publicado. No entanto, também há MSRs que variam entre processadores e há casos em que os índices MSR foram reutilizados ao longo do tempo, sendo redefinidos para se referir a novos conjuntos de controles. Eles são muito problemáticos para o software de nível de sistema, pois é difícil codificar e manter o conhecimento desses controles em software comercial amplamente disponível.

Protegendo o acesso a MSRs

Para fornecer uma plataforma de segurança robusta, os MSRs devem ser protegidos contra uso indevido de código mal-intencionado do modo kernel. Para impor isso, o hipervisor monitora e controla o acesso a todos os MSRs. O hipervisor mantém uma lista de índices MSR conhecidos e só permitirá que o código do modo kernel acesse MSRs ou bits específicos dentro de MSRs, que são conhecidos por serem razoáveis e considerados seguros. O hipervisor bloqueará o acesso a qualquer MSR que seja desconhecido para o hipervisor ou qualquer MSR conhecido por meio de sua definição publicada para representar um risco de segurança. Em alguns casos, o acesso parcial pode ser permitido.

Quando o hipervisor tiver bloqueado o acesso a um MSR, ele registrará um evento no log do Sistema Windows Visualizador de Eventos, especificando detalhes da tentativa de acesso.

Dado o grande número de funções controladas por MSRs, não é possível prever os efeitos colaterais de impedir o acesso msr ao software que o iniciou. O software bem escrito deve lidar com erros e casos de falha normalmente, no entanto, nem sempre esse é o caso.

Revisão de eventos de acesso msr

O hipervisor só bloqueará o acesso a determinados MSRs quando o VBS estiver habilitado e em execução. Para determinar se o hipervisor bloqueou o acesso a um MSR, procure no log do Sistema Windows a ID de evento 12550 do Microsoft-Windows-Hyper-V-Hypervisor. Os detalhes da entrada do log de eventos conterão as seguintes informações:

Id: 12550
Descrição: o Hyper-V detectou acesso a uma MSR restrita
Detalhes:

  • Msr
  • IsWrite
  • MsrValue
  • AccessStatus
  • Pc
  • Imagebase
  • ImageChecksum
  • ImageTimestamp
  • ImageName

Versões com suporte do Windows

Há suporte para VBS em todas as versões do Windows começando com Windows 10 e Windows Server 2016.