Planejamento para Always Encrypted com enclaves seguros no SQL Server sem atestado

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores – Somente Windows

Configurar o Always Encrypted com enclaves seguros no SQL Server sem atestado oferece um meio fácil de começar a usar o recurso. Porém, ao usar enclaves seguros em um ambiente de produção, lembre-se de que o nível de proteção contra administradores de sistema operacional é reduzido sem atestado. Por exemplo, se um administrador de sistema operacional mal-intencionado adulterar a biblioteca do SQL Server em execução dentro do enclave, um aplicativo cliente não conseguirá detectar isso. Se você estiver preocupado com esses ataques, considere configurar o atestado com o Serviço Guardião de Host. Para obter mais informações, confira Planejar o atestado do Serviço Guardião de Host.

No SQL Server, o Always Encrypted com enclaves seguros usa enclaves de segurança baseada em virtualização (SBV), também conhecidos como modo de segurança virtual, ou enclaves VSM, que são uma tecnologia baseada em software que depende do hipervisor do Windows e não requer nenhum hardware especial.

Observação

Quando o SQL Server é implantado em uma VM, os enclaves do SBV ajudam a proteger dados contra ataques dentro da VM. Mas eles não fornecem proteção contra ataques que usam contas de sistema privilegiadas originadas do host. Por exemplo, um despejo de memória da VM gerada no computador host pode conter a memória do enclave.

Pré-requisitos

Os computadores que executam o SQL Server devem atender aos Requisitos de instalação do SQL Server e aos Requisitos de hardware do Hyper-V.

Estes requisitos incluem:

  • SQL Server 2019 (15.x) ou posterior

  • Windows 10 ou posteriores ou Windows Server 2019 ou posterior.

  • Suporte de CPU para tecnologias de virtualização:

    • Intel VT-x com Tabelas de Página Estendida.
    • AMD-V com Indexação de Virtualização Rápida.
    • Se você estiver executando o SQL Server em uma VM:
      • No Azure, use um tamanho de VM de Geração 2 (recomendado) ou use um tamanho de VM de Geração 1 com virtualização aninhada habilitada. Verifique a documentação de tamanhos de VM individuais para determinar quais tamanhos de VM de Geração 1 dão suporte à virtualização aninhada.
      • No Hyper-V 2016 ou posterior (fora do Azure), verifique se a sua VM é de Geração 2 (recomendado) ou se é uma VM de Geração 1 com virtualização aninhada habilitada. Para saber mais informações, confira Devo criar uma máquina virtual de geração 1 ou 2 no Hyper-V? e Configurar virtualização aninhada.
      • No VMware vSphere 6.7 ou posterior, habilite o suporte de segurança baseada em virtualização para a VM conforme descrito na documentação do VMware.
      • Outros hipervisores e nuvens públicas podem dar suporte a recursos de virtualização aninhados que também permitem Always Encrypted com enclaves de VBS. Verifique a documentação da solução de virtualização para obter instruções sobre compatibilidade e configuração.
  • A VBS (segurança baseada em virtualização) deve estar habilitada e em execução.

Necessidades de conjunto de ferramentas

Requisitos do driver do cliente

Para obter informações sobre versões de driver do cliente compatíveis com o uso de enclaves seguros sem atestado, confira Desenvolver aplicativos usando Always Encrypted com enclaves seguros.

Verifique se o VBS está em execução

Observação

Essa etapa deve ser executada pelo administrador do computador do SQL Server.

Para verificar se a VBS está em execução, abra a ferramenta Informações do Sistema executando msinfo32.exe e localize os itens de Virtualization-based security na parte inferior do Resumo do Sistema.

Screenshot of System Information showing virtualization-based security status and configuration.

O primeiro item a ser verificado é Virtualization-based security, que pode ter os três valores seguintes:

  • Running significa que a VBS está configurada corretamente e foi inicializada com êxito.
  • Enabled but not running significa que a VBS está configurada para ser executada, mas o hardware não tem os requisitos mínimos de segurança para executá-la. Talvez seja necessário alterar a configuração do hardware no BIOS ou no UEFI para habilitar recursos opcionais do processador como uma IOMMU ou, se o hardware realmente não oferecer suporte aos recursos necessários, talvez seja necessário reduzir os requisitos de segurança da VBS. Continue lendo esta seção para saber mais.
  • Not enabled significa que a VBS não está configurada para execução.

Habilitar o VBS

Se o VBS não estiver habilitado, execute o comando a seguir em um console do PowerShell elevado para habilitá-lo.

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name EnableVirtualizationBasedSecurity -Value 1

Depois de alterar o Registro, reinicie o computador do SQL Server e verifique se a VBS está em execução novamente.

Para outras maneiras de habilitar o VBS, confira Habilitar a proteção baseada em virtualização da integridade do código.

Execute o VBS se ele não estiver em execução

Se a VBS não estiver em execução no computador, confira as propriedades do Virtualization-based security. Compare os valores no item de Required Security Properties com os valores no item de Available Security Properties. As propriedades obrigatórias devem ser iguais a um subconjunto das propriedades de segurança disponíveis para que a VBS seja executada. As propriedades de segurança têm a seguinte importância:

  • Base virtualization support é sempre obrigatório, pois representa os recursos mínimos de hardware necessários para executar um hipervisor.
  • Secure Boot é recomendado, mas não é obrigatório. A inicialização segura protege contra rootkits exigindo a execução imediata de um carregador de inicialização com assinatura da Microsoft após a conclusão do UEFI.
  • DMA Protection é recomendado, mas não é obrigatório. A proteção de DMA usa uma IOMMU para proteger o enclave e a memória da VBS contra ataques de acesso direto à memória. Em um ambiente de produção, você sempre deve usar computadores com proteção DMA. Em um ambiente de desenvolvimento ou teste, não há problema em remover o requisito de proteção de DMA. Se a instância do SQL Server for virtualizada, você provavelmente não terá a proteção de DMA disponível e precisará remover o requisito de execução da VBS.

Antes de reduzir os recursos de segurança obrigatórios da VBS, verifique com o seu OEM ou provedor de serviços de nuvem para confirmar se há uma forma de habilitar os requisitos de plataforma ausentes na UEFI ou no BIOS (por exemplo, habilitar a Inicialização Segura, a Intel VT-d ou a AMD IOV).

Para alterar os recursos de segurança de plataforma necessários para VBS, execute o seguinte comando em um console do PowerShell com privilégios elevados:

# Value 1 = Only Secure Boot is required
# Value 2 = Only DMA protection is required (default configuration)
# Value 3 = Both Secure Boot and DMA protection are required
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 1

Depois de alterar o Registro, reinicie o computador do SQL Server e verifique se a VBS está em execução novamente.

Se o computador for gerenciado por sua empresa, a Política de Grupo ou o Microsoft Endpoint Manager poderá substituir as alterações feitas nessas chaves do Registro após a reinicialização. Entre em contato com o suporte técnico de TI para saber se ele implanta políticas que gerenciam sua configuração da VBS.

Próximas etapas