Activer la protection basée sur la virtualisation de l'intégrité du code

L’intégrité de la mémoire est une fonctionnalité de sécurité basée sur la virtualisation (VBS) disponible dans Windows. L’intégrité de la mémoire et VBS améliorent le modèle de menace de Windows et fournissent des protections plus fortes contre les programmes malveillants qui tentent d’exploiter le noyau Windows. VBS utilise l’hyperviseur Windows pour créer un environnement virtuel isolé qui devient la racine de confiance du système d’exploitation qui suppose que le noyau peut être compromis. L’intégrité de la mémoire est un composant essentiel qui protège et renforce Windows en exécutant l’intégrité du code en mode noyau dans l’environnement virtuel isolé de VBS. L’intégrité de la mémoire limite également les allocations de mémoire du noyau qui peuvent être utilisées pour compromettre le système.

Remarque

  • L’intégrité de la mémoire est parfois appelée intégrité du code protégé par l’hyperviseur (HVCI) ou intégrité du code appliquée à l’hyperviseur, et a été initialement publiée dans le cadre de Device Guard. Device Guard n’est plus utilisé, sauf pour localiser l’intégrité de la mémoire et les paramètres VBS dans stratégie de groupe ou le Registre Windows.
  • L’intégrité de la mémoire fonctionne mieux avec Intel Kabylake et les processeurs supérieurs avec le contrôle d’exécution en mode, et les processeurs AMD Zen 2 et supérieurs avec les fonctionnalités d’interruption d’exécution en mode invité . Les processeurs plus anciens s’appuient sur une émulation de ces fonctionnalités, appelée mode utilisateur restreint, et auront un impact plus important sur les performances. Lorsque la virtualisation imbriquée est activée, l’intégrité de la mémoire fonctionne mieux lorsque la machine virtuelle est version >= 9.3.

Warning

Certains pilotes d’applications et de périphériques matériels peuvent être incompatibles avec l’intégrité de la mémoire. Cette incompatibilité peut entraîner un dysfonctionnement des appareils ou des logiciels et, dans de rares cas, peut entraîner un échec de démarrage (écran bleu). De tels problèmes peuvent se produire après l’activation de l’intégrité de la mémoire ou pendant le processus d’activation proprement dit. Si des problèmes de compatibilité se produisent, consultez Résolution des problèmes pour les étapes de correction.

Fonctionnalités d’intégrité de la mémoire

  • Protège la modification de la bitmap CFG (Control Flow Guard) pour les pilotes en mode noyau.
  • Protège le processus d’intégrité du code en mode noyau qui garantit que les autres processus de noyau approuvés disposent d’un certificat valide.

Comment activer l’intégrité de la mémoire

Pour activer l’intégrité de la mémoire sur les appareils Windows avec du matériel de prise en charge au sein d’une entreprise, utilisez l’une des options suivantes :

Sécurité Windows

L’intégrité de la mémoire peut être activée dans les paramètres de Sécurité Windows et se trouve dans Sécurité Windows Sécurité de l’appareil>>Détails de l’isolation> principaleIntégrité de la mémoire. Pour plus d’informations, consultez Protection des appareils dans Sécurité Windows.

À compter de Windows 11 22H2, Sécurité Windows affiche un avertissement si l’intégrité de la mémoire est désactivée. L’indicateur d’avertissement apparaît également sur l’icône Sécurité Windows dans la barre des tâches Windows et dans le Centre de notifications Windows. L’utilisateur peut ignorer l’avertissement à partir de Sécurité Windows.

Activer l’intégrité de la mémoire à l’aide de Intune

Utilisez le paramètreIntégrité du code appliquée à l’hyperviseurde la technologie> basée sur la virtualisation à l’aide du catalogue de paramètres pour activer l’intégrité de la mémoire. Vous pouvez également utiliser le nœud HypervisorEnforcedCodeIntegrity dans le csp VirtualizationBasedTechnology.

Activer l’intégrité de la mémoire à l’aide de stratégie de groupe

  1. Utilisez stratégie de groupe Rédacteur (gpedit.msc) pour modifier un objet de stratégie de groupe existant ou en créer un.
  2. Accédez à Configuration> ordinateurModèles d’administration>Système>Device Guard.
  3. Double-cliquez sur Activer la sécurité basée sur la virtualisation.
  4. Sélectionnez Activé et sous Protection basée sur la virtualisation de l’intégrité du code, sélectionnez Activé sans verrou UEFI. Sélectionnez Uniquement Activé avec verrouillage UEFI si vous souhaitez empêcher la désactivation de l’intégrité de la mémoire à distance ou par la mise à jour de la stratégie. Une fois activé avec le verrouillage UEFI, vous devez avoir accès au menu BIOS UEFI pour désactiver le démarrage sécurisé si vous souhaitez désactiver l’intégrité de la mémoire. Activer l’intégrité de la mémoire à l’aide de stratégie de groupe.
  5. Sélectionnez OK pour fermer l’éditeur.

Pour appliquer la nouvelle stratégie sur un ordinateur joint à un domaine, redémarrez ou exécutez gpupdate /force dans une invite de commandes avec élévation de privilèges.

Utiliser des clés de Registre pour activer l’intégrité de la mémoire

Définissez les clés de Registre suivantes pour activer l’intégrité de la mémoire. Ces clés fournissent exactement le même ensemble d’options de configuration que stratégie de groupe.

Important

  • Parmi les commandes ci-dessous, vous pouvez choisir les paramètres pour Démarrage sécurisé et Démarrage sécurisé avec DMA. Dans la plupart des cas, nous vous recommandons de choisir Démarrage sécurisé. Cette option offre au démarrage sécurisé autant de protection que celle prise en charge par le matériel d’un ordinateur donné. Un ordinateur doté d’unités IOMMU disposera du Démarrage sécurisé avec la protection DMA. Un ordinateur sans unités IOMMU disposera simplement du Démarrage sécurisé activé.

  • Si vous sélectionnez Démarrage sécurisé avec DMA, l’intégrité de la mémoire et les autres fonctionnalités VBS sont activées uniquement pour les ordinateurs qui prennent en charge DMA. Autrement dit, pour les ordinateurs équipés de l’IOMMU uniquement. Tout ordinateur sans IOMMU n’aura pas de protection VBS ou d’intégrité de la mémoire.

  • Tous les pilotes du système doivent être compatibles avec la protection basée sur la virtualisation de l’intégrité du code ; dans le cas contraire, votre système risque d’échouer. Nous vous recommandons d’activer ces fonctionnalités sur un groupe d’ordinateurs de test avant de les activer sur les ordinateurs des utilisateurs.

Paramètres recommandés (pour activer l’intégrité de la mémoire sans verrouillage UEFI) :

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "EnableVirtualizationBasedSecurity" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Locked" /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Locked" /t REG_DWORD /d 0 /f

Si vous souhaitez personnaliser les paramètres recommandés précédents, utilisez les clés de Registre suivantes.

Pour activer VBS uniquement (aucune intégrité de mémoire)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "EnableVirtualizationBasedSecurity" /t REG_DWORD /d 1 /f

Pour activer VBS et exiger uniquement le démarrage sécurisé (valeur 1)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 1 /f

Pour activer VBS avec démarrage sécurisé et DMA (valeur 3)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 3 /f

Pour activer VBS sans verrouillage UEFI (valeur 0)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Locked" /t REG_DWORD /d 0 /f

Pour activer VBS avec verrouillage UEFI (valeur 1)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Locked" /t REG_DWORD /d 1 /f

Pour activer l’intégrité de la mémoire

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 1 /f

Pour activer l’intégrité de la mémoire sans verrouillage UEFI (valeur 0)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Locked" /t REG_DWORD /d 0 /f

Pour activer l’intégrité de la mémoire avec le verrou UEFI (valeur 1)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Locked" /t REG_DWORD /d 1 /f

Pour griser l’interface utilisateur d’intégrité de la mémoire et afficher le message « Ce paramètre est géré par votre administrateur »

reg delete HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity /v "WasEnabledBy" /f

Pour permettre à l’interface utilisateur d’intégrité de la mémoire de se comporter normalement (non grisé)

reg add HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity /v "WasEnabledBy" /t REG_DWORD /d 2 /f

Activer l’intégrité de la mémoire à l’aide du contrôle d’application Windows Defender (WDAC)

Vous pouvez utiliser la stratégie WDAC pour activer l’intégrité de la mémoire à l’aide de l’une des techniques suivantes :

  1. Utilisez l’Assistant WDAC pour créer ou modifier votre stratégie WDAC et sélectionnez l’option Intégrité du code protégée par l’hyperviseur dans la page Règles de stratégie de l’Assistant.
  2. Utilisez l’applet de commande PowerShell Set-HVCIOptions .
  3. Modifiez votre xml de stratégie WDAC et modifiez la valeur définie pour l’élément <HVCIOptions> .

Remarque

Si votre stratégie WDAC est définie pour activer l’intégrité de la mémoire, elle est activée même si la stratégie est en mode audit.

Valider les fonctionnalités VBS et d’intégrité de la mémoire activées

Utiliser Win32_DeviceGuard classe WMI

Windows 10, Windows 11 et Windows Server 2016 et versions ultérieures ont une classe WMI pour les propriétés et fonctionnalités liées à VBS : Win32_DeviceGuard. Cette classe peut être interrogée à partir d’une session Windows PowerShell avec élévation de privilèges, à l’aide de la commande suivante :

Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard

Remarque

La propriété Contrôle d’exécution en mode est répertoriée uniquement comme disponible à partir de Windows 10 version 1803 et Windows 11 version 21H2. Cette valeur est signalée pour les fonctionnalités de contrôle d’exécution en mode d’Intel et d’interruption d’exécution en mode invité d’AMD.

La sortie de cette commande fournit des détails sur les fonctionnalités de sécurité matérielle disponibles et les fonctionnalités actuellement activées.

AvailableSecurityProperties

Ce champ permet d’énumérer et de signaler l’état des propriétés de sécurité pertinentes pour VBS et l’intégrité de la mémoire.

Valeur Description
0 Si cette valeur est présente, cela signifie qu’il n’existe aucune propriété pertinente sur l’appareil.
1 Si cette valeur est présente, cela signifie que la prise en charge de l’hyperviseur est disponible.
2 Si cette valeur est présente, cela signifie que la fonction Démarrage sécurisé est disponible.
3 Si cette valeur est présente, cela signifie que la protection DMA est disponible.
4 Si cette valeur est présente, cela signifie que l’option Sécuriser le remplacement de la mémoire est disponible.
5 Si cette valeur est présente, cela signifie que les protections NX sont disponibles.
6 Si cette valeur est présente, cela signifie que les préventions SMM sont disponibles.
7 S’il est présent, MBEC/GMET est disponible.
8 Si elle est présente, la virtualisation APIC est disponible.
InstanceIdentifier

Chaîne propre à un appareil particulier et définie par WMI.

RequiredSecurityProperties

Ce champ décrit les propriétés de sécurité requises pour activer VBS.

Valeur Description
0 Aucune valeur n’est requise.
1 Si cette valeur est présente, cela signifie que la prise en charge de l’hyperviseur est nécessaire.
2 Si cette valeur est présente, cela signifie que l’option Démarrage sécurisé est nécessaire.
3 Si cette valeur est présente, cela signifie que la protection DMA est nécessaire.
4 Si cette valeur est présente, cela signifie que l’option Sécuriser le remplacement de la mémoire est nécessaire.
5 Si cette valeur est présente, cela signifie que les protections NX sont nécessaires.
6 Si cette valeur est présente, cela signifie que les préventions SMM sont nécessaires.
7 S’il est présent, MBEC/GMET est nécessaire.
SecurityServicesConfigured

Ce champ indique si Credential Guard ou l’intégrité de la mémoire est configurée.

Valeur Description
0 Aucun service n’est configuré.
1 Si cette valeur est présente, cela signifie que Credential Guard est configuré.
2 Le cas échéant, l’intégrité de la mémoire est configurée.
3 Le cas échéant, System Guard lancement sécurisé est configuré.
4 Le cas échéant, la mesure du microprogramme SMM est configurée.
SecurityServicesRunning

Ce champ indique si Credential Guard ou l’intégrité de la mémoire est en cours d’exécution.

Valeur Description
0 Aucun service n’est en cours d’exécution.
1 Si cette valeur est présente, cela signifie que Credential Guard est en cours d’exécution.
2 Le cas échéant, l’intégrité de la mémoire est en cours d’exécution.
3 Le cas échéant, System Guard lancement sécurisé est en cours d’exécution.
4 Le cas échéant, la mesure du microprogramme SMM est en cours d’exécution.
Version

Ce champ indique la version de la classe WMI. Seule valeur valide pour l’instant : 1.0.

VirtualizationBasedSecurityStatus

Ce champ indique si la sécurité basée sur la virtualisation est activée et en cours d’exécution.

Valeur Description
0 VBS n’est pas activé.
1 La sécurité basée sur la virtualisation est activée, mais n’est pas en cours d’exécution.
2 La sécurité basée sur la virtualisation est activée et en cours d’exécution.
PSComputerName

Ce champ indique le nom de l’ordinateur. Toutes les valeurs de nom d’ordinateur valides.

Utiliser msinfo32.exe

Une autre méthode pour déterminer les fonctionnalités VBS disponibles et activées consiste à exécuter msinfo32.exe à partir d’une session PowerShell avec élévation de privilèges. Lorsque vous exécutez ce programme, les fonctionnalités VBS sont affichées en bas de la section Résumé du système .

Fonctionnalités de sécurité basées sur la virtualisation dans le Résumé système des informations système.

Résolution des problèmes

  • Si un pilote de périphérique ne parvient pas à se charger ou se bloque au moment de l’exécution, vous pouvez peut-être mettre à jour le pilote à l’aide de Gestionnaire de périphériques.
  • Si vous rencontrez une erreur critique au démarrage ou si votre système est instable après avoir activé l’intégrité de la mémoire, vous pouvez récupérer à l’aide de l’environnement de récupération Windows (Windows RE).
    1. Tout d’abord, désactivez toutes les stratégies utilisées pour activer VBS et l’intégrité de la mémoire, par exemple stratégie de groupe.

    2. Ensuite, démarrez pour Windows RE sur l’ordinateur concerné, consultez Windows RE Informations de référence techniques.

    3. Après vous être connecté à Windows RE, définissez la clé de Registre d’intégrité de la mémoire sur désactivée :

      reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f
      
    4. Enfin, redémarrez votre appareil.

Remarque

Si vous avez activé l’intégrité de la mémoire avec le verrouillage UEFI, vous devez désactiver le démarrage sécurisé pour effectuer les étapes de récupération Windows RE.

Déploiement de l’intégrité de la mémoire dans les machines virtuelles

L’intégrité de la mémoire peut protéger une machine virtuelle Hyper-V, tout comme une machine physique. Les étapes pour activer l’intégrité de la mémoire sont les mêmes à partir de la machine virtuelle.

L’intégrité de la mémoire protège contre les programmes malveillants en cours d’exécution sur la machine virtuelle invitée. Il ne fournit pas de protection supplémentaire de l’administrateur hôte. À partir de l’hôte, vous pouvez désactiver l’intégrité de la mémoire pour une machine virtuelle :

Set-VMSecurity -VMName <VMName> -VirtualizationBasedSecurityOptOut $true

Configuration requise pour l’exécution de l’intégrité de la mémoire dans les machines virtuelles Hyper-V

  • L’hôte Hyper-V doit exécuter au minimum Windows Server 2016 ou Windows 10 version 1607.
  • L’ordinateur virtuel Hyper-V doit être de Génération 2 et exécuter au minimum Windows Server 2016 ou Windows 10.
  • L’intégrité de la mémoire et la virtualisation imbriquée peuvent être activées en même temps. Pour activer le rôle Hyper-V sur la machine virtuelle, vous devez d’abord installer le rôle Hyper-V dans un environnement de virtualisation imbriqué Windows.
  • Fibre Channel virtuel adaptateurs ne sont pas compatibles avec l’intégrité de la mémoire. Avant d’attacher un adaptateur Fibre Channel virtuel à une machine virtuelle, vous devez d’abord désactiver la sécurité basée sur la virtualisation à l’aide Set-VMSecurityde .
  • L’option AllowFullSCSICommandSet pour les disques pass-through n’est pas compatible avec l’intégrité de la mémoire. Avant de configurer un disque direct avec AllowFullSCSICommandSet, vous devez d’abord refuser la sécurité basée sur la virtualisation à l’aide Set-VMSecurityde .