Intégrité de la mémoire et activation de la sécurité basée sur la virtualisation

L’intégrité de la mémoire est une fonctionnalité de sécurité basée sur la virtualisation (VBS) disponible dans Windows 10, Windows 11 et Windows Server 2016 ou version ultérieure. 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, en veillant à ce que les pages mémoire du noyau ne soient rendues exécutables qu’après avoir passé des vérifications d’intégrité du code dans l’environnement d’exécution sécurisé, et que les pages exécutables elles-mêmes ne sont jamais accessibles en écriture.

Notes

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 à 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.

Pour plus d’informations sur ces protections, consultez Protections des ressources du système de sécurité basée sur la virtualisation .

Activation par défaut

L’intégrité de la mémoire est activée par défaut sur propre installations de Windows 11, et auparavant uniquement sur propre installations de Windows 10 en mode S, sur du matériel compatible, comme décrit dans cet article. Il est également activé par défaut sur tous les PC à cœur sécurisé. Sur d’autres systèmes qui ne répondent pas aux exigences d’activation automatique de l’intégrité de la mémoire, les clients peuvent choisir d’utiliser l’une des méthodes décrites dans Comment activer l’intégrité de la mémoire. Les professionnels de l’informatique et les utilisateurs finaux ont toujours le contrôle final de l’activation de l’intégrité de la mémoire.

Fonctionnalités matérielles pour l’activation automatique

L’intégrité de la mémoire est activée par défaut lorsqu’un PC répond aux fonctionnalités matérielles minimales suivantes :

Composant Détail
Processeur
  • Intel 8e génération ou ultérieure à partir de Windows 11, version 22H2 (processeurs Core de 11e génération et plus récente uniquement pour Windows 11, version 21H2)
  • Architecture AMD Zen 2 et plus récente
  • Qualcomm Snapdragon 8180 et versions ultérieures
Mémoire vive (RAM) Minimum 8 Go (applicable uniquement pour les processeurs x64)
Stockage SSD avec une taille minimale de 64 Go
Pilotes Les pilotes compatibles avec l’intégrité de la mémoire doivent être installés. Pour plus d’informations sur les pilotes , consultez Compatibilité des pilotes avec l’intégrité de la mémoire .
BIOS La virtualisation doit être activée

Si vous créez une image qui n’active pas automatiquement l’intégrité de la mémoire, vous pouvez toujours configurer votre image afin qu’elle soit activée par défaut.

Notes

L’activation automatique concerne uniquement les installations propre, et non les mises à niveau d’appareils existants.

Notes

Les marchés chinois et coréens sont exclus, afin d’éviter les problèmes de compatibilité connus avec les logiciels répandus dans ces zones géographiques.

Notes

Les processeurs de bureau Intel Core de 11e génération ne sont pas inclus dans la logique d’activation par défaut actuelle. Toutefois, il s’agit d’une plateforme recommandée pour l’intégrité de la mémoire et elle peut être activée par l’OEM.

Contrôles d’intégrité de la mémoire et VBS

Cette section énumère la façon dont les fabricants d’appareils et les utilisateurs finaux peuvent interagir avec l’intégrité de la mémoire et VBS. Pour savoir comment contrôler l’état de l’intégrité de la mémoire en tant qu’administrateur, consultez Comment activer l’intégrité de la mémoire.

Activer l’intégrité de la mémoire

Bien que Windows active l’intégrité de la mémoire par défaut pour la plupart des systèmes, plusieurs raisons peuvent empêcher cela. En tant qu’OEM, vous pouvez vous assurer que l’intégrité de la mémoire est activée pour vos appareils en configurant les clés de Registre dans l’image du système d’exploitation.

Définissez les deux clés de Registre suivantes dans votre image pour vous assurer que l’intégrité de la mémoire est activée.

Clé de Registre Valeur
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity Enabled=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity WasEnabledBy=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity EnabledBootId=<Current BootId>

BootId est un compteur qui s’incrémente à chaque démarrage réussi et se trouve dans la clé de Registre : HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId Les clés de Registre WasEnabledBy et EnabledBootId contrôlent un paramètre qui protège contre un appareil non démarrable. Lorsqu’il est défini, l’appareil désactive automatiquement l’intégrité de la mémoire si le système tombe en panne pendant le démarrage, ce qui peut être dû à l’intégrité de la mémoire qui bloque un pilote critique de démarrage incompatible. Cette fonctionnalité de désactivation automatique n’est disponible que si BootId est inférieur à EnabledBootId + 3. Dans certaines versions de Windows, la fonctionnalité de désactivation automatique est conçue pour rétablir si les échecs de démarrage se poursuivent même après la désactivation de l’intégrité de la mémoire, ce qui indique que l’intégrité de la mémoire n’était pas la cause racine des échecs.

Notes

Pour les systèmes de haute sécurité, WasEnabledBy et EnabledBootId ne doivent PAS être définis.

Dépannage

Identification de l’état d’intégrité de la mémoire

La clé d’inscription volatile suivante reflète l’état de l’intégrité de la mémoire :

Clé de Registre Valeur
HKLM\System\CurrentControlSet\Control\CI\State HVCIEnabled

Pour vérifier l’état de l’intégrité de la mémoire, consultez MsInfo32 sous Services de sécurité basés sur la virtualisation en cours d’exécution ou reportez-vous à la page Paramètres d’isolation principaux dans l’application Sécurité Windows pour voir la valeur intégrité de la mémoire. Il existe également une interface WMI pour la vérification à l’aide des outils de gestion. Consultez Valider les fonctionnalités VBS et d’intégrité de la mémoire activées.

Débogage des problèmes liés au pilote

Vérifiez les journaux d’intégrité du code pour voir si le chargement de pilotes a été bloqué en raison de l’intégrité de la mémoire. Celles-ci se trouvent dans observateur d'événements sous le chemin d’accès suivant :

Applications and Service Logs\Microsoft\Windows\CodeIntegrity\Operational

En règle générale, les événements de compatibilité d’intégrité de la mémoire ont EventID=3087

Vérifier les résultats de l’activation par défaut de l’intégrité de la mémoire

Pour afficher des détails sur les résultats de l’activation par défaut de l’intégrité de la mémoire, case activée setupact.log et recherchez HVCI. Vous devez voir l’un des journaux de résultats suivants, ainsi que les vérifications réussies/ayant échoué menant à la décision d’activation :

Intégrité de la mémoire activée : SYSPRP HVCI: Enabling HVCI

Intégrité de la mémoire non activée : SYSPRP HVCI: OS does not meet HVCI auto-enablement requirements. Exiting now.

Si l’appareil a été exclu de l’activation de l’intégrité de la mémoire via la méthode regkey décrite précédemment, il s’agit du seul journal du sysprep de l’intégrité de la mémoire. Si l’appareil a rencontré un problème de compatibilité, il doit être identifié dans les journaux précédents avec le message d’erreur :

SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX

Voici une énumération des problèmes potentiels de compatibilité VBS ou d’intégrité de la mémoire. Chaque problème est représenté par un index unique dans un tableau de bits, et le message d’erreur génère la valeur hexadécimal résultant de la présence de chaque bit d’erreur.

Index de bits Problème de compatibilité Valeur hexadécimale Architecture
0 Architecture non prise en charge (par exemple, x86) 0x00000001
1 SLAT requis 0x00000002 x64
2 Fonctionnalité de démarrage sécurisé requise 0x00000004 x64
3 IOMMU obligatoire 0x00000008 x64
4 MBEC/GMET obligatoire 0x00000010 x64
5 UEFI obligatoire 0x00000020 x64
6 Table d’attributs de mémoire WX UEFI requise 0x00000040 x64
7 Table WSMT ACPI requise 0x00000080 x64
8 Verrouillage UEFI MOR requis 0x00000100 x64
9 Déprécié
10 Virtualisation matérielle requise 0x00000400 x64
11 Lancement sécurisé requis 0x00000800 ARM64
12 Déprécié
13 L’appareil ne parvient pas à respecter la taille de volume minimale requise de 64 Go 0x00002000 x64, ARM64
14 DISQUE SSD de lecteur système requis 0x00004000 x64, ARM64
15 Intel CET obligatoire (applicable uniquement sur W11 21H2) 0x00008000 x64
16 Le SoC ARM n’est pas compatible avec VBS 0x00010000 ARM64
17 8 Go de RAM requis 0x00020000 x64

Exemple de code d’erreur et d’identification d’erreur : VBS_COMPAT_ISSUES 0x000000C0

0x000000C0 -> 0x00000080 AND 0x00000040 -> Table des attributs de mémoire WX UEFI obligatoire, table ACPI WSMT requise