Partager via


Intégrité de la mémoire et activation VBS

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 versions ultérieures. L’intégrité de la mémoire et VBS renforcent le modèle de sécurité de Windows en apportant des protections accrues contre les logiciels malveillants qui cherchent à compromettre le noyau du système d’exploitation. VBS utilise l’hyperviseur Windows pour créer un environnement virtuel isolé, servant de racine de confiance pour l’OS, supposant que le noyau peut être compromis. L’intégrité de la mémoire est un élément clé qui protège et renforce Windows en faisant fonctionner l’intégrité du code en mode noyau dans cet environnement virtuel isolé qu’est le 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, en s'assurant que les pages de mémoire du noyau ne deviennent exécutables qu'après avoir passé les contrôles d'intégrité du code dans l'environnement sécurisé, et que les pages exécutables ne soient jamais accessibles en écriture.

Remarque

L'intégrité de la mémoire est également 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.

Pour de plus amples détails sur ces protections, reportez-vous à la section sur les protections des ressources du système de sécurité basé sur la virtualisation.

Activation par défaut

L’intégrité de la mémoire est activée par défaut sur les installations propres de Windows 11 et, auparavant, uniquement sur les installations propres de Windows 10 en mode S, sur du matériel compatible comme précisé dans cet article. Elle est également activée par défaut sur tous les PC dotés d’un cœur sécurisé. Sur les autres systèmes qui ne remplissent pas les conditions requises pour une activation automatique de l’intégrité de la mémoire, les utilisateurs peuvent choisir de l’activer en suivant l’une des méthodes décrites dans la section Comment activer l’intégrité de la mémoire. Les informaticiens ainsi que les utilisateurs finaux conservent toujours le pouvoir de décision quant à l'activation de l'intégrité de la mémoire.

Fonctionnalités matérielles pour une activation automatique

L'intégrité de la mémoire s'active par défaut dès lors qu'un PC dispose des caractéristiques matérielles minimales suivantes :

Composant Détail
Processeur
  • Intel 8e génération ou plus récent à partir de Windows 11, version 22H2 (uniquement les processeurs Core de 11e génération et plus récents pour Windows 11, version 21H2)
  • Architecture AMD Zen 2 ou plus récente
  • Qualcomm Snapdragon 8180 et versions ultérieures
RAM Un minimum de 8 Go de mémoire (pour les processeurs x64 uniquement)
Stockage Un SSD d'une capacité minimale de 64 Go
Pilotes Des pilotes compatibles avec l'intégrité de la mémoire doivent être installés. Pour plus de détails, consultez la section sur la 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, il est toujours possible de la configurer pour qu'elle soit activée par défaut.

Remarque

L'activation automatique ne s'applique qu'aux installations propres et non aux mises à niveau des appareils existants.

Remarque

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

Intégrité de la mémoire et contrôles VBS

Cette section décrit comment les fabricants d'appareils et les utilisateurs finaux peuvent interagir avec l'intégrité de la mémoire et la VBS. Pour savoir comment vérifier l'état de l'intégrité de la mémoire en tant qu'administrateur, veuillez consulter la section dédiée à l'activation de l'intégrité de la mémoire.

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

Bien que Windows active par défaut l'intégrité de la mémoire sur la plupart des systèmes, diverses raisons peuvent empêcher cette activation. En tant qu'OEM, vous pouvez garantir l'activation de l'intégrité de la mémoire sur vos appareils en configurant certaines clés de registre dans l'image du système d'exploitation.

Définissez les deux clés de registre suivantes dans votre image afin de 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>

Le BootId, qui est un compteur s'incrémentant à chaque démarrage réussi, se trouve dans la clé de registre suivante : HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId. Les clés de registre WasEnabledBy et EnabledBootId régissent un paramètre permettant d'éviter que l'appareil ne devienne non amorçable. Lorsque ce paramètre est activé, l'appareil désactive automatiquement l'intégrité de la mémoire si le système échoue au démarrage, ce qui peut se produire si l'intégrité de la mémoire bloque un pilote incompatible essentiel à la séquence de démarrage. 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 revenir en arrière si les échecs de démarrage se poursuivent même après que l'intégrité de la mémoire a été désactivée, ce qui indique que l'intégrité de la mémoire n'était pas la cause première des échecs.

Remarque

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

Dépannage

Identification de l'état de l'intégrité de la mémoire

La regkey 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, vous pouvez également consulter MsInfo32 sous Services de sécurité basés sur la virtualisation en cours d'exécution ou vous référer à la page Paramètres d'isolation du noyau dans l'application Sécurité de Windows pour voir la valeur de l'intégrité de la mémoire. Il existe également une interface WMI permettant de vérifier à l'aide d'outils de gestion, voir Valider les fonctionnalités activées de VBS et d'intégrité de la mémoire.

Débogage des problèmes liés aux pilotes

Consultez les journaux d'intégrité du code pour voir si le chargement d'un pilote a été bloqué en raison de l'intégrité de la mémoire. Ces journaux se trouvent dans l'Observateur d'événements sous le chemin suivant :

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

En général, les événements de compatibilité avec l'intégrité de la mémoire ont un EventID=3087.

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

Pour obtenir des détails sur les résultats de l'activation par défaut de l'intégrité de la mémoire, consultez le journal setupact.log et recherchez HVCI. Vous devriez voir l'un des journaux de résultats suivants, ainsi que les vérifications réussies/échec qui ont conduit à 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 de la clé de registre décrite plus haut, il s'agira du seul journal provenant de sysprep de l'intégrité de la mémoire. Si l'appareil avait un problème de compatibilité, il devrait être identifié dans les journaux précédents avec le message d'erreur :

SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX

Vous trouverez ci-dessous une énumération des problèmes de compatibilité potentiels de VBS ou de memory integrity. Chaque problème est représenté par un index unique dans un tableau de bits, et le message d'erreur indique la valeur hexadécimale résultant de la présence de chaque bit d'erreur.

Bit Index Problème de compatibilité Valeur hexadécimale Architecture
0 Architecture non prise en charge (ex. x86) 0x00000001
1 SLAT requis 0x00000002 x64
2 Capacité de démarrage sécurisé requise 0x00000004 x64
3 IOMMU requis 0x00000008 x64
4 MBEC/GMET requis 0x00000010 x64
5 UEFI obligatoire 0x00000020 x64
6 Table d'attributs de mémoire UEFI WX requise 0x00000040 x64
7 Table ACPI WSMT requise 0x00000080 x64
8 Verrouillage MOR UEFI requis 0x00000100 x64
9 Déprécié
10 Virtualisation matérielle requise 0x00000400 x64
11 Secure Launch requis 0x00000800 ARM64
12 Déprécié
13 Appareil ne répondant pas à la taille de volume minimale requise de 64 Go 0x00002000 x64, ARM64
14 Lecteur de système SSD requis 0x00004000 x64, ARM64
15 Intel CET requis (uniquement applicable 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 ET 0x00000040 -> Table d'attributs de mémoire UEFI WX requise, table ACPI WSMT requise