Résoudre les problèmes liés aux hôtes protégés

Cet article décrit les solutions aux problèmes courants rencontrés lors du déploiement ou de l’utilisation d’un hôte Hyper-V protégé dans votre infrastructure protégée.

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016

Si vous n’êtes pas sûr de la nature de votre problème, essayez d’abord d’exécuter l’diagnostics d’infrastructure protégée sur vos hôtes Hyper-V pour limiter les causes potentielles.

Fonctionnalité d’hôte protégé

Si vous rencontrez des problèmes avec votre hôte Hyper-V, vérifiez d’abord que la fonctionnalité de prise en charge Hyper-V du Guardian hôte est installée. Sans cette fonctionnalité, l’hôte Hyper-V ne dispose pas de certains paramètres de configuration et logiciels critiques qui lui permettent de passer l’attestation et de provisionner des machines virtuelles dotées d’une protection maximale.

Pour case activée si la fonctionnalité est installée, utilisez Gestionnaire de serveur ou exécutez l’applet de commande suivante dans une fenêtre PowerShell avec élévation de privilèges :

Get-WindowsFeature HostGuardian

Si la fonctionnalité n’est pas installée, installez-la avec l’applet de commande PowerShell suivante :

Install-WindowsFeature HostGuardian -Restart

Échecs d’attestation

Si un hôte ne passe pas l’attestation auprès du service Guardian hôte, il ne peut pas exécuter de machines virtuelles dotées d’une protection maximale. La sortie de Get-HgsClientConfiguration sur cet hôte affiche des informations sur la raison de l’échec de l’attestation de cet hôte.

Le tableau ci-dessous décrit les valeurs qui peuvent apparaître dans le champ AttestationStatus et les étapes suivantes potentielles, le cas échéant.

AttestationStatus Explication
Expiré L’hôte a déjà passé l’attestation, mais le certificat d’intégrité qu’il a émis a expiré. Vérifiez que l’heure de l’hôte et du SGH sont synchronisées.
InsecureHostConfiguration L’hôte n’a pas réussi l’attestation, car il n’était pas conforme aux stratégies d’attestation configurées sur SGH. Pour plus d’informations, consultez la table AttestationSubStatus.
NotConfigured L’hôte n’est pas configuré pour utiliser un SGH pour l’attestation et la protection des clés. Il est configuré pour le mode local, à la place. Si cet hôte se trouve dans une infrastructure protégée, utilisez Set-HgsClientConfiguration pour lui fournir les URL de votre serveur SGH.
Passé L’hôte a passé l’attestation.
TransientError La dernière tentative d’attestation a échoué en raison d’une erreur de mise en réseau, d’un service ou d’une autre erreur temporaire. Réessayez votre dernière opération.
TpmError L’hôte n’a pas pu effectuer sa dernière tentative d’attestation en raison d’une erreur avec votre module TPM. Pour plus d’informations, consultez vos journaux TPM.
UnauthorizedHost L’hôte n’a pas réussi l’attestation, car il n’était pas autorisé à exécuter des machines virtuelles dotées d’une protection maximale. Vérifiez que l’hôte appartient à un groupe de sécurité approuvé par SGH pour exécuter des machines virtuelles dotées d’une protection maximale.
Inconnu L’hôte n’a pas encore tenté d’attester avec SGH.

Lorsque AttestationStatus est signalé comme InsecureHostConfiguration, une ou plusieurs raisons sont renseignées dans le champ AttestationSubStatus . Le tableau ci-dessous explique les valeurs possibles pour AttestationSubStatus et des conseils sur la façon de résoudre le problème.

AttestationSubStatus Ce que cela signifie et ce qu’il faut faire
BitLocker Le volume du système d’exploitation de l’hôte n’est pas chiffré par BitLocker. Pour résoudre ce problème, activez BitLocker sur le volume du système d’exploitation ou désactivez la stratégie BitLocker sur SGH.
CodeIntegrityPolicy L’hôte n’est pas configuré pour utiliser une stratégie d’intégrité du code ou n’utilise pas de stratégie approuvée par le serveur SGH. Vérifiez qu’une stratégie d’intégrité du code a été configurée, que l’hôte a été redémarré et que la stratégie est inscrite auprès du serveur SGH. Pour plus d’informations, consultez Créer et appliquer une stratégie d’intégrité du code.
DumpsEnabled L’hôte est configuré pour autoriser les vidages sur incident ou les vidages mémoire dynamiques, ce qui n’est pas autorisé par vos stratégies SGH. Pour résoudre ce problème, désactivez les vidages sur l’hôte.
DumpEncryption L’hôte est configuré pour autoriser les vidages sur incident ou les vidages mémoire dynamiques, mais ne chiffre pas ces vidages. Désactivez les vidages sur l’hôte ou configurez le chiffrement de vidage.
DumpEncryptionKey L’hôte est configuré pour autoriser et chiffrer les vidages, mais n’utilise pas de certificat connu de SGH pour les chiffrer. Pour résoudre ce problème, mettez à jour la clé de chiffrement de vidage sur l’hôte ou inscrivez-la auprès de SGH.
FullBoot L’hôte a repris à partir d’un état de veille ou d’une mise en veille prolongée. Redémarrez l’hôte pour autoriser un démarrage propre et complet.
HibernationEnabled L’hôte est configuré pour autoriser la mise en veille prolongée sans chiffrer le fichier de mise en veille prolongée, ce qui n’est pas autorisé par vos stratégies SGH. Désactivez la mise en veille prolongée et redémarrez l’hôte, ou configurez le chiffrement de vidage.
HypervisorEnforcedCodeIntegrityPolicy L’hôte n’est pas configuré pour utiliser une stratégie d’intégrité du code appliquée à l’hyperviseur. Vérifiez que l’intégrité du code est activée, configurée et appliquée par l’hyperviseur. Pour plus d’informations, consultez Guide de déploiement de Device Guard.
Iommu Les fonctionnalités de sécurité basée sur la virtualisation de l’hôte ne sont pas configurées pour exiger un appareil IOMMU pour la protection contre les attaques d’accès direct à la mémoire, comme l’exigent vos stratégies SGH. Vérifiez que l’hôte dispose d’un IOMMU, qu’il est activé et que Device Guard est configuré pour exiger des protections DMA lors du lancement de VBS.
PagefileEncryption Le chiffrement de fichier de page n’est pas activé sur l’hôte. Pour résoudre ce problème, exécutez fsutil behavior set encryptpagingfile 1 pour activer le chiffrement des fichiers de page. Pour plus d’informations, consultez comportement de fsutil.
SecureBoot Le démarrage sécurisé n’est pas activé sur cet hôte ou n’utilise pas le modèle de démarrage sécurisé Microsoft. Activez le démarrage sécurisé avec le modèle de démarrage sécurisé Microsoft pour résoudre ce problème.
SecureBootSettings La base de référence TPM sur cet hôte ne correspond à aucune de celles approuvées par SGH. Cela peut se produire lorsque vos autorités de lancement UEFI, votre variable DBX, votre indicateur de débogage ou vos stratégies de démarrage sécurisé personnalisées sont modifiées en installant un nouveau matériel ou logiciel. Si vous faites confiance à la configuration actuelle du matériel, du microprogramme et des logiciels de cette machine, vous pouvez capturer une nouvelle base de référence TPM et l’inscrire auprès de SGH.
TcgLogVerification Impossible d’obtenir ou de vérifier le journal TCG (base de référence TPM). Cela peut indiquer un problème avec le microprogramme de l’hôte, le TPM ou d’autres composants matériels. Si votre hôte est configuré pour tenter le démarrage PXE avant le démarrage de Windows, un programme de démarrage Net (NBP) obsolète peut également provoquer cette erreur. Vérifiez que tous les PNB sont à jour lorsque le démarrage PXE est activé.
VirtualSecureMode Les fonctionnalités de sécurité basée sur la virtualisation ne s’exécutent pas sur l’hôte. Vérifiez que VBS est activé et que votre système répond aux fonctionnalités de sécurité de la plateforme configurées. Pour plus d’informations sur la configuration requise pour VBS, consultez la documentation Device Guard.

TLS moderne

Si vous avez déployé une stratégie de groupe ou configuré votre hôte Hyper-V pour empêcher l’utilisation de TLS 1.0, vous pouvez rencontrer des erreurs « Le client du service Guardian hôte n’a pas réussi à désencapsuler un protecteur de clé pour le compte d’un processus appelant » lors de la tentative de démarrage d’une machine virtuelle dotée d’une protection maximale. Cela est dû à un comportement par défaut dans .NET 4.6 où la version de TLS par défaut du système n’est pas prise en compte lors de la négociation des versions TLS prises en charge avec le serveur SGH.

Pour contourner ce comportement, exécutez les deux commandes suivantes pour configurer .NET afin d’utiliser les versions de TLS par défaut du système pour toutes les applications .NET.

reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32

Avertissement

Le paramètre des versions TLS par défaut du système affecte toutes les applications .NET sur votre ordinateur. Veillez à tester les clés de Registre dans un environnement isolé avant de les déployer sur vos machines de production.

Pour plus d’informations sur .NET 4.6 et TLS 1.0, consultez Résolution du problème TLS 1.0, 2e édition.