Pianificare l'attestazione del servizio Sorveglianza host in SQL Server per Always Encrypted con enclave sicure

Si applica a: SQL Server 2019 (15.x) e versioni successive - Solo Windows

La configurazione di Always Encrypted con enclave sicure in SQL Server senza attestazione offre un modo semplice per iniziare con la funzionalità. Tuttavia, quando si usano enclave sicure in un ambiente di produzione, tenere presente che il livello di protezione dagli amministratori del sistema operativo viene ridotto senza attestazione. Ad esempio, se un amministratore del sistema operativo dannoso ha manomesso la libreria di SQL Server in esecuzione all'interno dell'enclave, un'applicazione client non sarà in grado di rilevarlo. Se questi attacchi rappresentano una preoccupazione, è consigliabile configurare l'attestazione con il servizio Sorveglianza host. Per ulteriori informazioni, vedere Pianificare l'attestazione del servizio Sorveglianza host.

In SQL Server, Always Encrypted con enclave sicure usa enclave di sicurezza basata su virtualizzazione (VBS), note anche come modalità di sicurezza virtuale o enclave VSM, ovvero una tecnologia basata su software che si basa sull'hypervisor di Windows e non richiede hardware speciali.

Nota

Quando SQL Server viene implementato in una VM, le enclave VBS consentono di proteggere i dati dagli attacchi all'interno della VM. Tuttavia, non forniscono alcuna protezione dagli attacchi che usano account di sistema con privilegi provenienti dall'host. Ad esempio, un backup della memoria della VM generata nel computer host può contenere la memoria dell'enclave.

Prerequisiti

I computer che eseguono SQL Server devono soddisfare sia i requisiti per l'installazione di SQL Server che i requisiti hardware di Hyper-V.

I requisiti includono:

  • SQL Server 2019 (15.x) o versioni successive

  • Windows 10 o versioni successive o Windows Server 2019 o versioni successive.

  • Supporto della CPU per le tecnologie di virtualizzazione:

    • Intel VT-x con Extended Page Tables.
    • AMD-V con Rapid Virtualization Indexing.
    • Se si esegue SQL Server in una VM:
      • In Azure, usare una dimensione VM di seconda generazione (scelta consigliata) o una dimensione VM di prima generazione con la virtualizzazione annidata abilitata. Consultare la documentazione sulle dimensioni delle singole VM per determinare le dimensioni di VM di prima generazione che supportano la virtualizzazione annidata.
      • In Hyper-V 2016 o versioni successive (all'esterno di Azure), accertarsi che la VM sia di seconda generazione (scelta consigliata) o di prima generazione con la virtualizzazione annidata. Per ulteriori informazioni, vedere È necessario creare una macchina virtuale di generazione 1 o 2 in Hyper-V? e Configurare una virtualizzazione annidata.
      • In VMware vSphere 6.7 o versioni successive, abilitare il supporto della sicurezza basata sulla virtualizzazione per la macchina virtuale come descritto nella documentazione di VMware.
      • Anche altri hypervisor e cloud pubblici possono supportare le funzionalità di virtualizzazione annidata che abilitano Always Encrypted con enclave di sicurezza basata sulla virtualizzazione. Vedere la documentazione della soluzione di virtualizzazione per informazioni sulla compatibilità e istruzioni per la configurazione.
  • La sicurezza basata su virtualizzazione (VBS) deve essere abilitata e in esecuzione.

Requisiti relativi agli strumenti

Requisiti del driver client

Per informazioni sulle versioni dei driver client che supportano l'uso di enclave sicure senza attestazione, vedere Sviluppare applicazioni usando Always Encrypted con enclave sicure.

Verificare che VBS sia in esecuzione

Nota

Questo passaggio deve essere eseguito dall'amministratore del computer di SQL Server.

Per verificare se VBS è in esecuzione, aprire lo strumento Informazioni di sistema eseguendo msinfo32.exe e individuare gli elementi Virtualization-based security nella parte inferiore del riepilogo di sistema.

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

Il primo elemento da controllare è Virtualization-based security, che può avere i tre valori seguenti:

  • Running indica che VBS è configurato correttamente ed è stato possibile avviarlo correttamente.
  • Enabled but not running indica che VBS è configurato per l'esecuzione, ma l'hardware non ha i requisiti di sicurezza minimi per eseguire VBS. Potrebbe essere necessario modificare la configurazione dell'hardware nel BIOS o UEFI per abilitare le funzionalità facoltative del processore come un'unità IOMMU o, se l'hardware non supporta effettivamente le funzionalità richieste, potrebbe essere necessario ridurre i requisiti di sicurezza di VBS. Per altre informazioni, continuare a leggere questa sezione.
  • Not enabled indica che VBS non è configurato per l'esecuzione.

Abilitare VBS

Se VBS non è abilitato, eseguire il comando seguente in una console di PowerShell con privilegi elevati per abilitarla.

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

Dopo aver modificato il registro, riavviare il computer con SQL Server e verificare se VBS è di nuovo in esecuzione.

Per consultare altri modi per abilitare VBS, vedere Abilitare la protezione basata su virtualizzazione dell'integrità del codice.

Eseguire VBS se non è in esecuzione

Se VBS non è abilitato nel computer, controllare le proprietà di Virtualization-based security. Confrontare i valori nell'elemento Required Security Properties con i valori nell'elemento Available Security Properties. Le proprietà richieste devono essere uguali o un subset delle proprietà di sicurezza disponibili per l'esecuzione di VBS. Le proprietà di sicurezza hanno l'importanza seguente:

  • Base virtualization support è sempre obbligatorio, poiché rappresenta le funzionalità hardware minime necessarie per eseguire un hypervisor.
  • Secure Boot è una scelta consigliata ma non obbligatoria. L'avvio protetto protegge da rootkit richiedendo l'esecuzione di un bootloader firmato da Microsoft subito dopo il completamento dell'inizializzazione UEFI.
  • DMA Protection è una scelta consigliata ma non obbligatoria. La protezione DMA usa un'unità IOMMU per proteggere VBS e la memoria dell'enclave da attacchi di accesso diretto alla memoria. In un ambiente di produzione è sempre necessario usare computer con protezione DMA. In un ambiente di sviluppo o di test, è accettabile rimuovere il requisito per la protezione DMA. Se l'istanza di SQL Server è virtualizzata, probabilmente non sarà disponibile la protezione DMA e sarà necessario rimuovere il requisito per l'esecuzione di VBS.

Prima di ridurre le funzionalità di sicurezza necessarie per VBS, rivolgersi all'OEM o al provider di servizi cloud per verificare se esiste un modo per abilitare i requisiti della piattaforma mancanti in UEFI o BIOS (ad esempio, abilitazione dell'avvio protetto, Intel VT-d o AMD IOV).

Per modificare le funzionalità di sicurezza della piattaforma necessarie per VBS, eseguire il comando seguente in una console di PowerShell con privilegi elevati:

# 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

Dopo aver modificato il registro, riavviare il computer con SQL Server e verificare se VBS è di nuovo in esecuzione.

Se il computer è gestito dall'azienda, è possibile che le modifiche apportate a queste chiavi del Registro di sistema vengano sostituite da Criteri di gruppo o Microsoft Endpoint Manager dopo il riavvio. Contattare l'help desk IT per verificare se vengono distribuiti criteri per la gestione della configurazione di VBS.

Passaggi successivi