Partage via


Planifier Always Encrypted avec enclaves sécurisées dans SQL Server sans attestation

S’applique à : SQL Server 2019 (15.x) et versions ultérieures - Windows uniquement

La configuration d’Always Encrypted avec enclaves sécurisées dans SQL Server sans attestation permet de démarrer facilement avec la fonctionnalité. Toutefois, lorsque vous utilisez des enclaves sécurisées dans un environnement de production, gardez à l’esprit que le niveau de protection contre les administrateurs du système d’exploitation est réduit sans attestation. Par exemple, si un administrateur de système d’exploitation malveillant a falsifié la bibliothèque SQL Server s’exécutant à l’intérieur de l’enclave, une application cliente ne peut pas la détecter. Si vous êtes préoccupé par ces attaques, envisagez de configurer l’attestation avec le service Guardian hôte. Pour plus d’informations, consultez Planifier l’attestation du service Guardian hôte.

Dans SQL Server, Always Encrypted avec enclaves de sécurité utilise les enclaves basées sur la virtualisation (VBS) (également connues sous le nom d'enclaves Virtual Secure Mode ou VSM) – une technologie logicielle qui repose sur l'hyperviseur Windows et ne nécessite aucun matériel particulier.

Remarque

Lorsque SQL Server est déployé dans une machine virtuelle, les enclaves VBS aident à protéger vos données contre les attaques à l’intérieur de la machine virtuelle. Toutefois, elles n'offrent aucune protection contre les attaques utilisant des comptes système privilégiés provenant de l'hôte. Par exemple, une image mémoire de la machine virtuelle générée sur l’ordinateur hôte peut contenir la mémoire de l’enclave.

Prérequis

Les ordinateurs exécutant SQL Server doivent répondre à la Configuration requise pour l’installation de SQL Server et à la Configuration matérielle requise pour Hyper-V.

Ces conditions requises incluent :

  • SQL Server 2019 (15.x) ou ultérieur

  • Windows 10 ou version ultérieure ou Windows Server 2019 ou version ultérieure.

  • Prise en charge du processeur pour les technologies de virtualisation :

    • Intel VT-x avec Extended Page Tables.
    • AMD-V avec Rapid Virtualization Indexing.
    • Si vous exécutez SQL Server dans une machine virtuelle :
  • La sécurité basée sur la virtualisation (VBS) doit être activée et en cours d’exécution.

Exigences de l’outil

Configuration requise pour le pilote client

Pour en savoir plus sur les versions du pilote client prenant en charge Always Encrypted avec enclaves sécurisées, reportez-vous à Développer des applications en utilisant Always Encrypted avec enclaves sécurisées.

Vérifier que VBS est en cours d’exécution

Remarque

Cette étape doit être effectuée par l’administrateur de l’ordinateur SQL Server.

Pour déterminer si VBS est en cours d’exécution, ouvrez l’outil Informations système en exécutant msinfo32.exe et recherchez les éléments Virtualization-based security dans la partie inférieure de Résumé système.

Capture d’écran de l’outil Informations système montrant l’état et la configuration de la sécurité basée sur la virtualisation

Le premier élément à examiner est Virtualization-based security. Il peut avoir l’une des trois valeurs suivantes :

  • Running signifie que la fonctionnalité VBS est correctement configurée et qu’elle a pu démarrer.
  • Enabled but not running signifie que la fonctionnalité VBS est configurée pour s’exécuter, mais que le matériel ne répond pas aux exigences minimales de sécurité pour exécuter VBS. Vous devrez peut-être changer la configuration du matériel dans le BIOS ou l’UEFI pour activer des fonctionnalités de processeur facultatives comme une unité IOMMU. Ou, si le matériel ne prend vraiment pas en charge les fonctionnalités requises, vous devrez peut-être réduire les exigences de sécurité de VBS. Continuez à lire cette section pour en savoir plus.
  • Not enabled signifie que la fonctionnalité VBS n’est pas configurée pour s’exécuter.

Activer VBS

Si VBS n’est pas activé, exécutez la commande suivante dans une console PowerShell avec élévation de privilèges pour l’activer.

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

Après avoir modifié le Registre, redémarrez l’ordinateur SQL Server et vérifiez si VBS s’exécute à nouveau.

Pour obtenir d’autres façons d’activer VBS, consultez Activer la protection basée sur la virtualisation de l’intégrité du code.

Exécuter VBS s’il n’est pas en cours d’exécution

Si VBS est activé mais n’est pas en cours d’exécution sur l’ordinateur, examinez les propriétés Virtualization-based security. Comparez les valeurs de l’élément Required Security Properties à celles de l’élément Available Security Properties. Les propriétés obligatoires doivent être égales aux propriétés de sécurité disponibles ou à un sous-ensemble de celles-ci pour que VBS s’exécute. Les propriétés de sécurité ont l’importance suivante :

  • La propriété Base virtualization support est toujours obligatoire, car elle représente les fonctionnalités matérielles minimales pour exécuter un hyperviseur.
  • La commande Secure Boot est recommandée, mais pas obligatoire. Le démarrage sécurisé assure une protection contre les rootkits, car il exige l’exécution d’un chargeur de démarrage signé par Microsoft immédiatement après l’initialisation de l’UEFI.
  • La commande DMA Protection est recommandée, mais pas obligatoire. La protection DMA utilise une unité IOMMU pour protéger la mémoire de VBS et de l’enclave contre les attaques d’accès direct à la mémoire. Dans un environnement de production, vous devez toujours utiliser des ordinateurs avec une protection DMA. Dans un environnement de développement ou de test, vous pouvez supprimer l’obligation d’utiliser une protection DMA. Si l’instance SQL Server est virtualisée, la protection DMA n’est probablement pas disponible et vous devrez supprimer l’obligation d’exécuter VBS.

Avant d’abaisser les fonctionnalités de sécurité exigées par VBS, contactez votre fabricant d’ordinateurs OEM ou votre fournisseur de services cloud afin de voir s’il existe un moyen d’activer les spécifications de plateforme manquantes dans l’UEFI ou le BIOS (par exemple, en activant le démarrage sécurisé, Intel VT-d ou AMD IOV).

Pour changer les fonctionnalités de sécurité de la plateforme obligatoires pour VBS, exécutez la commande suivante dans une console PowerShell avec élévation de privilèges :

# 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

Après avoir modifié le Registre, redémarrez l’ordinateur SQL Server et vérifiez si VBS s’exécute à nouveau.

Si l’ordinateur est géré par votre entreprise, une stratégie de groupe ou le Gestionnaire de points de terminaison de Microsoft peut remplacer toute modification apportée à ces clés de registre après le redémarrage. Contactez votre support technique pour savoir si des stratégies gérant votre configuration VBS sont déployées.

Étapes suivantes