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

Warning

Certaines applications et certains pilotes 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, un échec de démarrage (écran bleu). Ces problèmes peuvent se produire après la mise en place de l’intégrité de la mémoire ou pendant le processus d’activation lui-même. Si des problèmes de compatibilité surviennent, consultez la section Procédure de résolution des problèmes pour connaître la procédure 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 renforcées 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 critique 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 restreint également les allocations de mémoire du noyau qui pourraient ê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ée par l’hyperviseur (HVCI) ou intégrité du code appliquée par 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 la 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 contrôle d’exécution basé sur le mode, et les processeurs AMD Zen 2 et supérieurs avec des fonctionnalités d’interruption d’exécution en mode invité . Les anciens processeurs reposent 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.
  • Les machines virtuelles Azure ne prennent pas en charge l’intégrité de la mémoire lorsque le démarrage sécurisé avec DMA est sélectionné. Si cette option est sélectionnée, VBS s’affiche comme activé, mais pas en cours d’exécution. Pour cette raison, veillez à choisir Secure Boot uniquement avec l’une des méthodes ci-dessous.

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

  • Protège la modification de l’image 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 noyau approuvés ont 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 prenant en charge le matériel dans toute l’entreprise, utilisez l’une des options suivantes :

Activer l’intégrité de la mémoire à l’aide de la Sécurité Windows

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

À partir de Windows 11 22H2, la fonctionnalité de 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 de la 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 la fonction 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, Windows Server 2016 et 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é de contrôle d’exécution basée sur le mode ne sera répertoriée comme disponible qu’à 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.

Le résultat de cette commande fournit des détails sur les fonctionnalités de sécurité basées sur le matériel disponibles et les fonctionnalités actuellement activées.

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

  • Version : ce champ indique 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é appropriées 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 Le cas échéant, MBEC/GMET est disponible.
    8 Si elle est présente, la virtualisation APIC est disponible.
  • CodeIntegrityPolicyEnforcementStatus : ce champ indique le status d’application de la stratégie d’intégrité du code.

    Valeur Description
    0 Désactivé
    1 Audit.
    2 Appliqué.
  • 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 Le cas échéant, MBEC/GMET est nécessaire.
  • SecurityServicesConfigured : ce champ indique si Credential Guard ou l’intégrité de la mémoire est configuré.

    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, le lancement sécurisé de System Guard est configuré.
    4 Le cas échéant, la mesure du microprogramme SMM est configurée.
    5 Si elle est présente, la protection de pile renforcée par du matériel en mode noyau est configurée.
    6 Si elle est présente, la protection de pile renforcée par du matériel en mode noyau est configurée en mode Audit.
    7 Si elle est présente, Hypervisor-Enforced traduction de pagination 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 Si elle est présente, l’intégrité de la mémoire est en cours d’exécution.
    3 Si c’est le cas, c’est le lancement sécurisé de System Guard qui est en cours d’exécution.
    4 Le cas échéant, la mesure du microprogramme SMM est en cours d’exécution.
    5 Si elle est présente, la protection de pile renforcée par du matériel en mode noyau est en cours d’exécution.
    6 Si elle est présente, la protection de pile renforcée par du 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 de SMM.

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

    Valeur Description
    0 Désactivé
    1 Audit.
    2 Appliqué.
  • 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 de machine virtuelle 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 au bas de la section Résumé 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 le chargement d’un pilote de périphérique échoue ou se bloque au moment de l’exécution, vous pouvez peut-être le mettre à jour à l’aide du Gestionnaire de périphériques.
  • Si vous rencontrez une erreur critique lors du démarrage ou si votre système est instable après l’activation de 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 la stratégie de groupe.

    2. Ensuite, démarrez à Windows RE sur l’ordinateur affecté. Voir Référence technique de Windows RE.

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

      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 terminer la procédure de récupération de Windows RE.

Déploiement de l’intégrité de la mémoire sur des machines virtuelles

L’intégrité de la mémoire peut protéger un ordinateur virtuel Hyper-V comme un ordinateur physique. Les étapes d’activation de 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 s’exécutant sur la machine virtuelle invitée. Il ne fournit pas de protection supplémentaire de la part 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’intégrité de la mémoire sur les ordinateurs virtuels 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.
  • Les cartes Fibre Channel virtuel 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 directs n’est pas compatible avec l’intégrité de la mémoire. Avant de configurer un disque pass-through avec AllowFullSCSICommandSet, vous devez d’abord désactiver la sécurité basée sur la virtualisation à l’aide Set-VMSecurityde .