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 |
|
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.
Configuration recommandée
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