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 :
- Dans Azure, utilisez une taille de machine virtuelle de deuxième génération (recommandé) ou une taille de machine virtuelle de première génération avec virtualisation imbriquée. Pour savoir quelles tailles de machines virtuelles de première génération prennent en charge la virtualisation imbriquée, consultez la documentation relative aux différentes tailles de machines virtuelles.
- Sur Hyper-V 2016 ou versions ultérieures (en dehors d’Azure), vérifiez que votre machine virtuelle est une machine virtuelle de deuxième génération (recommandé) ou une machine virtuelle de première génération avec virtualisation imbriquée. Pour plus d’informations, consultez Dois-je créer une machine virtuelle de première ou de deuxième génération dans Hyper-V ? et Configuration de la virtualisation imbriquée.
- Sur VMware vSphere 6.7 ou ultérieur, activez la prise en charge de la sécurité basée sur la virtualisation pour la machine virtuelle, comme le décrit la documentation VMware.
- D’autres hyperviseurs et clouds publics peuvent prendre en charge les fonctionnalités de virtualisation imbriquées qui permettent aussi l’utilisation d’Always Encrypted avec enclaves VBS. Consultez les instructions relatives à la compatibilité et à la configuration dans la documentation de votre solution de virtualisation.
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.
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
- Une fois que vous avez fait en sorte que votre environnement remplisse les conditions préalables ci-dessus, consultez Configurer l’enclave sécurisée dans SQL Server.