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’exploitation d’un hôte Hyper-V protégé dans votre infrastructure protégée.
S’applique à : toutes les versions prises en charge de Windows Server
Si vous n’êtes pas sûr de la nature de votre problème, essayez d’abord d’exécuter les diagnostics de la structure protégée sur vos hôtes Hyper-V pour limiter les causes potentielles .
Fonctionnalité de l’hôte protégé
Si vous rencontrez des problèmes avec votre hôte Hyper-V, vérifiez d’abord que la fonctionnalité de support Hyper-V Guardian de l’hôte est installée. Sans cette fonctionnalité, l’hôte Hyper-V manque 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 vérifier 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 d’attestation auprès du service Guardian hôte, il n’est pas en mesure d’exécuter des 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 explique 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à obtenu l’attestation, mais le certificat d’intégrité qu’il a reçu a expiré. Vérifiez que l’heure de l’hôte et celle du SGH sont synchronisées. |
InsecureHostConfiguration | L’hôte n’a pas passé d’attestation, car il n’est pas conforme aux stratégies d’attestation configurées sur HGS. 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 par clé. 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. |
Passed | L’hôte a passé l’attestation. |
TransientError | La dernière tentative d’attestation a échoué en raison d’une 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 terminer sa dernière tentative d’attestation en raison d’une erreur avec votre module de plateforme sécurisée. Pour plus d’informations, consultez les journaux de votre module TPM. |
UnauthorizedHost | L’hôte n’a pas passé d’attestation, car il n’a pas été 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 HGS. |
Lorsque AttestationStatus est signalé comme InsecureHostConfiguration, une ou plusieurs raisons sont remplies 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 que 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 en mémoire dynamique, ce qui n’est pas autorisé par vos stratégies HGS. 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 en mémoire dynamique, 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 pour le 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 permettre 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, 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 le 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 à la mémoire directe, comme requis par 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 des fichiers 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 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 du module TPM sur cet hôte ne correspond à aucune de celles approuvées par HGS. 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 de nouveaux matériels ou logiciels. 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 module de plateforme sécurisée ou d’autres composants matériels. Si votre hôte est configuré pour tenter un démarrage PXE avant de démarrer Windows, un programme de démarrage net 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 les exigences VBS, consultez la documentation Device Guard. |
Modern TLS
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 pu désenvelopper un protecteur de clé pour le compte d’un processus appelant » lors de la tentative de démarrage d’une machine virtuelle protégée. Cela est dû à un comportement par défaut dans .NET 4.6 où la version 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 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.