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

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.

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.

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 :

Activer l’intégrité de la mémoire à l’aide de 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.

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.

  • InstanceIdentifier : chaîne propre à un appareil particulier et définie par WMI.

  • Version : ce champ répertorie la version de cette classe WMI. Seule valeur valide pour l’instant : 1.0.

  • 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.
  • CodeIntegrityPolicyEnforcementStatus : ce champ indique l’application de la stratégie d’intégrité du code status.

    Valeur Description
    0 Désactivé
    1 Audit.
    2 Forcé.
  • 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.
    5 Le cas échéant, la protection de pile appliquée par le matériel en mode noyau est configurée.
    6 Le cas échéant, la protection de la pile appliquée par le matériel en mode noyau est configurée en mode Audit.
    7 Le cas échéant, Hypervisor-Enforced traduction de pagination est configuré.
  • 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.
    5 S’il est présent, la protection de pile appliquée par le matériel en mode noyau est en cours d’exécution.
    6 Le cas échéant, la protection de la pile appliquée par le matériel en mode noyau s’exécute en mode Audit.
    7 Le cas échéant, Hypervisor-Enforced traduction de pagination est en cours d’exécution.
  • SmmIsolationLevel : ce champ indique le niveau d’isolation SMM.

  • UsermodeCodeIntegrityPolicyEnforcementStatus : ce champ indique l’application de la stratégie d’intégrité du code en mode utilisateur status.

    Valeur Description
    0 Désactivé
    1 Audit.
    2 Forcé.
  • VirtualizationBasedSecurityStatus : ce champ indique si VBS est activé 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.
  • VirtualMachineIsolation : ce champ indique si l’isolation des machines virtuelles est activée.

  • VirtualMachineIsolationProperties : ce champ indique l’ensemble des propriétés d’isolation de machine virtuelle disponibles.

    Valeur Description
    1 AMD SEV-SNP
    2 Sécurité basée sur la virtualisation
    3 Intel TDX

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 .