Diretrizes do Windows para proteção contra as vulnerabilidades de canal paralelo de execução especulativa

Aplica-se a: Windows Server 2019, all versionsWindows 10, version 1809Windows Server version 1803

Resumo


A Microsoft está ciente de novas variantes da classe de ataque conhecidas como vulnerabilidades do canal lateral de execução especulativa. As variantes se chamam L1 Terminal Fault (L1TF) e Microarchitectural Data Sampling (MDS). Um invasor que conseguir explorar a L1TF ou a MDS poderá ler dados privilegiados entre limites de confiança.

ATUALIZADO em 14 de maio de 2019: Em 14 de maio de 2019, a Intel publicou informações sobre uma nova subclasse de vulnerabilidades de canal lateral de execução especulativa conhecida como Microarchitectural Data Sampling. Elas receberam as seguintes CVEs:

Visão geral da vulnerabilidade


Em ambientes nos quais recursos são compartilhados, como hosts de virtualização, um invasor que puder executar código arbitrário em uma máquina virtual poderá acessar informações de outra máquina virtual ou do próprio host de virtualização.

Cargas de trabalho de servidor, como o RDS (Serviços de Área de Trabalho Remota) do Windows Server e funções mais dedicadas, como controladores de domínio do Active Directory, também correm risco. Os invasores que puderem executar código arbitrário (independentemente do nível de privilégio) poderão acessar o sistema operacional ou os segredos da carga de trabalho, como chaves de criptografia, senhas e outros dados confidenciais.

Os sistemas operacionais Windows Client também correm riscos, especialmente se executam códigos não confiáveis, utilizam recursos de segurança baseados em virtualização, como o Windows Defender Credential Guard, ou usam o Hyper-V para executar máquinas virtuais.

Observação: Estas vulnerabilidades afetam apenas os processadores Intel Core e Intel Xeon.

Visão geral das mitigações

Para resolver esses problemas, a Microsoft está trabalhando em conjunto com a Intel para desenvolver mitigações e orientações de software. Atualizações de software para ajudar a mitigar as vulnerabilidades foram lançadas. Para obter todas as proteções disponíveis, podem ser necessárias atualizações que também podem incluir o microcódigo de OEMs de dispositivos.

Esse artigo descreve como mitigar as seguintes vulnerabilidades:

  • CVE-2018-3620 – "L1 Terminal Fault – OS, SMM"
  • CVE-2018-3646 – "L1 Terminal Fault – VMM"
  • CVE-2018-11091 – "Microarchitectural Data Sampling Uncacheable Memory (MDSUM)"
  • CVE-2018-12126 – "Microarchitectural Store Buffer Data Sampling (MSBDS)"
  • CVE-2018-12127 – "Microarchitectural Load Port Data Sampling (MLPDS)"
  • CVE-2018-121 30 – "Microarchitectural Fill Buffer Data Sampling (MFBDS)"

Para saber mais sobre as vulnerabilidades, consulte os seguintes comunicados de segurança:

L1TF: https://portal.msrc.microsoft.com/pt-br/security-guidance/advisory/adv180018

MDS: https://portal.msrc.microsoft.com/pt-br/security-guidance/advisory/adv190013

Determinando as ações necessárias para mitigar a ameaça


As seções a seguir podem ajudá-lo a identificar os sistemas afetados pelas vulnerabilidades L1TF e/ou MDS e também a entender e mitigar os riscos.

Possível impacto sobre o desempenho

Em testes, a Microsoft percebeu um certo impacto no desempenho dessas mitigações, dependendo da configuração do sistema e de quais mitigações são necessárias.

Alguns clientes podem ter que desabilitar o hyper-threading (também conhecido como multithreading simultâneo ou SMT) para resolver completamente o risco da L1TF e da MDS. Esteja ciente de que a desabilitação do hyper-threading pode causar degradação do desempenho. Essa situação se aplica a clientes que usam o seguinte:

  • Versões do Hyper-V anteriores ao  Windows Server 2016  ou ao Windows 10 versão 1607 (Atualização de Aniversário)
  • Recursos de Segurança com base em virtualização (VBS) como o Credential Guard e o Device Guard
  • Softwares que permitem a execução de código não confiável (por exemplo, um servidor de automação de build ou um ambiente de hospedagem compartilhado do IIS)

O impacto pode variar de acordo com o hardware e as cargas de trabalho que estão sendo executadas no sistema. A configuração do sistema mais comum é ter o hyper-threading habilitado. Portanto, o impacto sobre o desempenho é controlado pelo usuário ou administrador que está executando a ação para desabilitar o hyper-threading no sistema.

Observação: Para determinar se o seu sistema está usando recursos de segurança protegidos pelo VBS, siga estas etapas:

  1. No menu Iniciar, digite MSINFO32.

    Observação: A janela Informações do Sistema é aberta.
  2. Na caixa Localizar, digite segurança.
  3. No painel direito, localize as duas linhas selecionadas na captura de tela e verifique a coluna Valor para ver se a Segurança baseada em Virtualização está habilitada e quais serviços de segurança baseados em virtualização estão em execução.
     

    Janela de informações do sistema


O agendador do  Hyper-V core mitiga os vetores de ataque da L1TF e da MDS contra máquinas virtuais Hyper-V, enquanto ainda permite que o hyper-threading permaneça habilitado. Esse agendador disponível no Windows Server 2016 e no Windows 10 versão 1607. Isso proporciona um impacto mínimo no desempenho para as máquinas virtuais.

O agendador core não mitiga os vetores de ataque da L1TF ou da MDS contra recursos de segurança protegidos por VBS. Para obter mais informações, consulte Mitigação C e o seguinte artigo do Blog de Virtualização:

https://aka.ms/hyperclear

Para obter informações detalhadas da Intel sobre o impacto no desempenho, visite o seguinte site da Intel:

www.intel.com/securityfirst

Identificando sistemas afetados e mitigações necessárias

O fluxograma na figura 1 pode ajudar a identificar os sistemas afetados e determinar o conjunto correto de ações. 

Importante: Se estiver usando máquinas virtuais, considere aplicar o fluxograma para hosts Hyper-V e cada convidado de VM afetado individualmente, pois as mitigações podem se aplicar a ambos. Especificamente, para um host Hyper-V, as etapas do fluxograma fornecem proteções inter-VM e proteções dentro do host. No entanto, a aplicação dessas mitigações apenas ao host Hyper-V não é suficiente para fornecer proteção dentro da VM. Para fornecer proteção dentro da VM, você deve aplicar o fluxograma a cada VM do Windows. Na maioria dos casos, isso significa certificar-se de que as chaves do Registro estejam definidas na VM.

À medida que navegar no fluxograma, você encontrará círculos azuis com letras que são mapeadas para uma ação ou uma série de ações necessárias para mitigar os vetores de ataque da L1TF específicos das configurações do seu sistema. Cada ação que você encontrar deve ser aplicada. Quando você encontrar uma linha verde, isso indica um caminho direto até o final e não há etapas adicionais de atenuação.  

Uma explicação resumida de cada mitigação com letras está incluída na legenda à direita. Explicações detalhadas para cada mitigação que incluem instruções de instalação e configuração passo a passo são fornecidas na seção "Mitigações".

Fluxograma

 

Mitigações


Importante: A seção a seguir descreve mitigações que devem ser aplicadas somente sob as condições específicas determinadas pelo fluxograma na Figura 1, na seção anterior. Não aplique essas mitigações a não ser que o fluxograma indique que a mitigação específica é necessária.

Além de atualizações de software e microcódigo, alterações manuais de configuração também podem ser necessárias para habilitar certas proteções. Além disso, recomendamos que os clientes corporativos se registrem no mailer de notificações de segurança para serem alertados sobre alterações de conteúdo. (Consulte Notificações de segurança técnica da Microsoft.)

Mitigação A

Obtenha e aplique as atualizações mais recentes do Windows

Aplique todas as atualizações disponíveis do sistema operacional Windows, incluindo as atualizações mensais de segurança do Windows. Você pode ver a tabela de produtos afetados no Comunicado de Segurança da Microsoft | ADV 180018 para a L1TF e Comunicado de Segurança | ADV 190013 para a MDS.

Mitigação B

Obtenha e aplique as atualizações mais recentes de microcódigo ou firmware

Além de instalar as atualizações de segurança mais recentes do Windows, também é necessária uma atualização do microcódigo do processador. A instalação dessas atualizações é fornecida pelo OEM do dispositivo.

Observação: Se você estiver usando a virtualização aninhada (incluindo a execução de contêineres Hyper-V em uma VM convidada), deverá expor as novas otimizações de microcódigo para a VM convidada. Isso pode exigir a atualização da configuração da VM para a versão 8. A versão 8 inclui as iluminações de microcódigo por padrão. Para obter mais informações e as etapas necessárias, consulte o seguinte artigo do Microsoft Docs:

Executar o Hyper-V em uma máquina virtual com virtualização aninhada

Mitigação C

Devo desabilitar o hyper-threading (HT)?

As vulnerabilidades L1TF e MDS apresentam o risco de que a confidencialidade das máquinas virtuais Hyper-V e os segredos mantidos pela Segurança com base em virtualização (VBS) da Microsoft possam ser comprometidos usando um ataque de canal lateral. Quando o hyper-threading (HT) está habilitado, os limites de segurança fornecidos pelo Hyper-V e pela VBS são enfraquecidos.

O agendamento do Hyper-V core (disponível desde o Windows Server 2016 e o Windows 10 versão 1607) atenua os vetores de ataque da L1TF e da MDS contra as máquinas virtuais Hyper-V e ainda permite que o Hyper-Threading permaneça habilitado. Isso garante um impacto mínimo sobre o desempenho.

O agendador do Hyper-V core não atenua os vetores de ataque da L1TF ou da MDS contra recursos de segurança protegidos por VBS. As vulnerabilidades L1TF e MDS apresentam o risco de que a confidencialidade dos segredos do VBS possa ser comprometida por meio de um ataque de temporização quando o HT (Hyper-Threading) está habilitado, enfraquecendo o limite de segurança fornecido pelo VBS. Mesmo com esse risco aumentado, a VBS ainda oferece benefícios de segurança valiosos e reduz uma série de ataques com o HT habilitado. Portanto, recomendamos que a VBS continue a ser usada em sistemas habilitados para HT. Os clientes que desejam eliminar o risco potencial das vulnerabilidades L1TF e MDS sobre a confidencialidade da VBS devem considerar a desativação do HT para mitigar esse risco adicional.

Os clientes que desejam eliminar o risco das vulnerabilidades L1TF e MDS para a confidencialidade das versões do Hyper-V anteriores ao Windows Server 2016 ou o risco para os recursos de segurança da VBS devem ponderar a decisão e considerar desabilitar o HT para mitigar o risco. Em geral, essa decisão pode ser baseada nas seguintes diretrizes:

  • Para sistemas Windows 10 versão 1607, Windows Server 2016 e mais recentes que não estão executando o Hyper-V e não estão usando recursos de segurança protegidos pelo VBS, os clientes não devem desabilitar o HT.
  • Para sistemas Windows 10 versão 1607, Windows Server 2016 e mais recentes que não estão executando o Hyper-V com o Agendador Core, mas que não estão usando recursos de segurança protegidos por VBS, os clientes não devem desabilitar o HT.
  • Para o Windows 10 versão 1511, o Windows Server 2012 R2 e sistemas anteriores que executam o Hyper-V, os clientes devem considerar a desabilitação do HT para reduzir o risco.

As etapas necessárias para desabilitar o HT diferem de OEM para OEM. No entanto, elas normalmente fazem parte das ferramentas de configuração e configuração do BIOS ou firmware.

A Microsoft também introduziu a capacidade de desabilitar a tecnologia Hyper-Threading através de uma configuração de software, caso seja difícil ou impossível desativar o HT em suas ferramentas de configuração e configuração de BIOS ou firmware. A configuração do software para desabilitar o HT é secundária à configuração do seu BIOS ou firmware e está desabilitada por padrão (ou seja, o HT seguirá a configuração do BIOS ou do firmware). Para saber mais sobre essa configuração e como desabilitá-la, consulte o seguinte artigo:

Orientação de servidores Windows para proteção contra vulnerabilidades de canal paralelo de execução especulativa

Quando possível, convém desabilitar o HT no BIOS ou firmware para a garantia mais forte de que o HT esteja desabilitado.

Observação: A ação de desabilitar o hyperthreading reduzirá os núcleos de CPU. Isso pode afetar os recursos que exigem o mínimo de núcleos de CPU para funcionar. Por exemplo, o Windows Defender Application Guard (WDAG).

Mitigação D

Habilitar o agendador de núcleo do Hyper-V e definir o thread de hardware da VM por núcleo como 2

Observação: Essas etapas de mitigação aplicam-se apenas às versões do Windows Server 2016 e do Windows 10 anteriores à versão 1809. O agendador core está habilitado por padrão no Windows Server 2019 e no Windows 10 versão 1809.

Usar o agendador de núcleo é um processo de dois estágios que requer que você primeiro habilite o agendador no host do Hyper-V e, em seguida, configure cada VM para aproveitá-lo, definindo a contagem de segmentos de hardware por núcleo como dois (2).

O agendador do Hyper-V core que foi introduzido no Windows Server 2016 e mp Windows Server 10 versão 1607 é uma nova alternativa à lógica clássica do agendador. Ele oferece uma variabilidade de desempenho reduzida para cargas de trabalho dentro de VMs que estão sendo executadas em um hostHyper-V habilitado para HT.

Para obter uma explicação detalhada sobre o agendador de núcleo do Hyper-Ve as etapas para habilitá-lo, consulte o seguinte artigo do Windows IT Pro Center:

Entendendo e usando os tipos de agendador de hipervisor do Hyper-V

Para habilitar o agendador de núcleo do Hyper-V no Windows Server 2016 ou Windows 10, insira o seguinte comando:

bcdedit /set HypervisorSchedulerType core

Em seguida, decida se deseja configurar uma determinada contagem de threads de hardware da VM por núcleo como dois (2). Se você expuser o fato de que os processadores virtuais têm hyper-thread para uma máquina virtual convidada, você habilitará o agendador no sistema operacional da VM e também as cargas de trabalho da VM, para usar o HT em seu próprio agendamento de trabalho. Para fazer isso, insira o seguinte comando do PowerShell, no qual  <VMName> é o nome da máquina virtual:

Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore 2

Mitigação E

Habilite mitigações para os alertas CVE-2017-5715 e CVE-2017-5754

Observação: Essas mitigações estão habilitadas por padrão no Windows Server 2019 e nos sistemas operacionais Windows Client.

Para habilitar as atenuações para os alertas CVE-2017-5715 e CVE-2017-5754, use a orientação no seguinte artigo:

KB 4072698 | Orientação de servidores Windows para proteção contra vulnerabilidades de canal paralelo de execução especulativa

KB 4073119 | Orientação de clientes Windows para Profissionais de TI para proteção contra vulnerabilidades de canal paralelo de execução especulativa

 

Observação: Essas mitigações incluem e automaticamente habilitam a mitigação de bits de quadro de página segura para o kernel do Windows e também para as mitigações descritas em CVE-2018-3620. Para obter uma explicação detalhada sobre a mitigação de bits de quadro de página segura, consulte o seguinte artigo do Security Research & Defense Blog:

Análise e mitigação de L1 Terminal Fault (L1TF)