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 sécurisées utilise des enclaves de sécurité basée sur la virtualisation (VBS) (également appelées enclaves virtual secure ou VSM) - une technologie basée sur un logiciel qui s’appuie sur l’hyperviseur Windows et ne nécessite aucun matériel spécial.

Note

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, ils ne fournissent aucune protection contre les attaques à l’aide de comptes système privilégiés provenant de l’hôte. Par exemple, un vidage de mémoire de la machine virtuelle générée sur l’ordinateur hôte peut contenir la mémoire de l’enclave.

Prerequisites

Les ordinateurs exécutant SQL Server doivent répondre à la fois à la configuration requise pour installer SQL Server et la configuration matérielle requise pour Hyper-V.

Ces conditions requises incluent :

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

  • 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.

Configuration requise pour les outils

Configuration requise pour le pilote client

Pour plus d’informations sur les versions de pilote client qui prennent en charge l’utilisation d’enclaves sécurisées sans attestation, consultez Développer des applications à l’aide d’Always Encrypted avec enclaves sécurisées.

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

Note

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.

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

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 est en cours d’exécution.

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é en ne s’exécutant pas sur l’ordinateur, vérifiez les Virtualization-based security propriétés. 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.
  • Secure Boot est recommandé, 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.
  • DMA Protection est recommandé, 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, il est possible de supprimer la condition requise pour la protection DMA. Si l’instance SQL Server est virtualisée, vous n’aurez probablement pas de protection DMA disponible et vous devrez supprimer la configuration requise pour que VBS s’exécute.

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 est en cours d’exécution.

Si l’ordinateur est géré par votre entreprise, la stratégie de groupe ou Microsoft Endpoint Manager peut remplacer les modifications que vous apportez à 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