Partilhar via


Planeie Always Encrypted com enclaves de segurança no SQL Server sem verificação

Aplica-se a: SQL Server 2019 (15.x) e posterior - apenas Windows

Configurar Always Encrypted com enclaves seguros no SQL Server sem atestado fornece uma maneira fácil de começar com o recurso. No entanto, quando você usa 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 poderá detetá-lo. Se estiver preocupado com esses ataques, considere configurar a atestação com o "Host Guardian Service". Para obter mais informações, consulte Plano para a atestação do Host Guardian Service.

No SQL Server, o Always Encrypted com enclaves seguros usa enclaves VBS (Segurança Baseada em Virtualização) (também conhecidos como Modo de Segurança Virtual ou enclaves VSM) - 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 VBS ajudam a proteger seus dados contra ataques dentro da VM. No entanto, eles não fornecem nenhuma proteção contra ataques usando contas de sistema privilegiadas originadas do host. Por exemplo, um despejo de memória da VM gerada na máquina host pode conter a memória do enclave.

Pré-requisitos

O(s) computador(es) que executa(m) o SQL Server deve(m) atender aos Requisitos para Instalar o SQL Server e aos Hyper-V requisitos de hardware.

Estes requisitos incluem:

  • SQL Server 2019 (15.x) ou posterior

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

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

    • Intel VT-x com tabelas de páginas estendidas.
    • AMD-V com Indexação Rápida de Virtualização.
    • Se você estiver executando o SQL Server em uma VM:
      • Na 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 ativada. Verifique a documentação tamanhos individuais de VM para determinar quais tamanhos de VM de Geração 1 suportam virtualização aninhada.
      • No Hyper-V 2016 ou posterior (fora do Azure), verifique se sua VM é uma VM de Geração 2 (recomendada) ou se é uma VM de Geração 1 com virtualização aninhada habilitada. Para obter mais informações, consulte Devo criar uma máquina virtual de geração 1 ou 2 no Hyper-V? e Devo configurar a virtualização aninhada.
      • No VMware vSphere 6.7 ou posterior, habilite o suporte de segurança baseado em virtualização para a VM, conforme descrito na documentação VMware.
      • Outros hipervisores e nuvens públicas também podem oferecer suporte a recursos de virtualização aninhados que habilitam o Always Encrypted com enclaves VBS. Consulte a documentação da solução de virtualização para obter instruções de compatibilidade e configuração.
  • A segurança baseada em virtualização (VBS) deve estar habilitada e em execução.

Requisitos de ferramentas

Requisitos do controlador do cliente

Para obter informações sobre versões de driver de cliente que suportam o uso de enclaves seguros sem atestado, consulte Desenvolver aplicativos usando Always Encrypted com enclaves seguros.

Verifique se o VBS está em execução

Observação

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

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

Captura de tela das Informações do Sistema mostrando o status e a configuração de segurança baseados em virtualização.

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

  • Running significa que o VBS está configurado corretamente e foi capaz de iniciar com êxito.
  • Enabled but not running significa que o VBS está configurado para ser executado, mas o hardware não tem os requisitos mínimos de segurança para executar o VBS. Pode ser necessário alterar a configuração do hardware no BIOS ou UEFI para habilitar recursos opcionais do processador, como uma IOMMU ou, se o hardware realmente não suportar os recursos necessários, talvez seja necessário reduzir os requisitos de segurança do VBS. Continue lendo esta seção para saber mais.
  • Not enabled significa que o VBS não está configurado para ser executado.

Ativar VBS

Se o VBS não estiver habilitado, execute o seguinte comando em um console do PowerShell com privilégios elevados 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 o VBS está sendo executado novamente.

Para obter outras maneiras de ativar o VBS, veja Ativar a proteção baseada em virtualização da integridade do código.

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

Se o VBS estiver ativado em vez de estar em execução no computador, verifique as propriedades do Virtualization-based security. Compare os valores no item Required Security Properties com os valores no item Available Security Properties. As propriedades necessárias devem ser iguais ou um subconjunto das propriedades de segurança disponíveis para que o VBS possa ser executado. As propriedades de segurança têm a seguinte importância:

  • Base virtualization support é sempre necessá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 que um carregador de inicialização assinado pela Microsoft seja executado imediatamente após a conclusão da inicialização UEFI.
  • DMA Protection é recomendado, mas não obrigatório. A proteção DMA usa uma IOMMU para proteger o VBS e a memória do enclave contra ataques diretos de acesso à memória. Em um ambiente de produção, você deve sempre usar computadores com proteção DMA. Em um ambiente de desenvolvimento ou teste, não há problema em remover o requisito de proteção DMA. Se a instância do SQL Server for virtualizada, você provavelmente não terá proteção DMA disponível e precisará remover o requisito para que o VBS seja executado.

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

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

# 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 o VBS está sendo executado novamente.

Se o computador for gerenciado pela sua empresa, a Diretiva de Grupo ou o Microsoft Endpoint Manager poderá substituir quaisquer alterações feitas nessas chaves do Registro após a reinicialização. Entre em contato com o suporte técnico de TI para ver se eles implantam políticas que gerenciam sua configuração do VBS.

Próximos passos