Instructions Windows concernant la protection contre les vulnérabilités de canal auxiliaire d’exécution spéculative

S’applique à : Windows Server 2019, all editionsWindows 10, version 1809, all editionsWindows Server version 1803

Résumé


Microsoft a connaissance de nouvelles variantes de la classe de vulnérabilités appelées « vulnérabilités de canal auxiliaire d’exécution spéculative ». Il s’agit des variantes L1 Terminal Fault (L1TF) et Microarchitectural Data Sampling (MDS). Un attaquant qui parviendrait à exploiter la vulnérabilité L1TF ou MDS pourrait lire des données privilégiées sur des limites approuvées.

Mise à jour du 14 mai 2019 : Le 14 mai 2019, Intel a publié des informations concernant une nouvelle sous-classe de vulnérabilités de canal auxiliaire d’exécution spéculative appelées « Microarchitectural Data Sampling ». Ces vulnérabilités ont été attribuées aux CVE suivantes :

MISE À JOUR DU 12 NOVEMBRE 2019 : Le 12 novembre 2019, Intel a publié un avis technique qui concerne la vulnérabilité « Transaction Asynchronous Abort » touchant Intel® Transactional Synchronization Extensions (Intel® TSX), attribuée à CVE-2019-11135. Microsoft a publié des mises à jour pour contribuer à atténuer cette vulnérabilité. Notez les points suivants :

  • Par défaut, les protections du système d’exploitation sont activées pour certaines éditions du système d’exploitation Windows Server. Pour plus d’informations, consultez l’article 4072698 de la Base de connaissances Microsoft.
  • Par défaut, les protections du système d’exploitation sont activées pour toutes les éditions du client Windows. Pour plus d’informations, consultez l’article 4073119 de la Base de connaissances Microsoft.

Vue d’ensemble de la vulnérabilité


Dans un environnement dans lequel les ressources sont partagées, comme un hôte de virtualisation, un attaquant qui pourrait exécuter du code arbitraire sur une machine virtuelle pourrait accéder à des informations d’une autre machine virtuelle ou de l’hôte de virtualisation lui-même.

Les charges de travail serveur telles que les services Bureau à distance (RDS) de Windows Server et les rôles davantage dédiés tels que les contrôleurs de domaine Active Directory sont également exposés à ces vulnérabilités. Un attaquant qui pourrait exécuter du code arbitraire (quel que soit son niveau de privilèges) pourrait accéder aux éléments secrets du système d’exploitation ou des charges de travail tels que les clés de chiffrement, les mots de passe et d’autres données sensibles.

Les systèmes d’exploitation clients Windows sont également exposés, en particulier s’ils exécutent du code non approuvé, utilisent des fonctionnalités de sécurité basée sur la virtualisation telles que Windows Defender Credential Guard, ou utilisent Hyper-V pour exécuter des ordinateurs virtuels.

Remarque : ces vulnérabilités touchent les processeurs Intel Core et Intel Xeon uniquement.

Vue d’ensemble des atténuations

Pour résoudre ces problèmes, Microsoft collabore avec Intel afin d’élaborer des atténuations et des instructions. Des mises à jour logicielles contribuant à atténuer ces vulnérabilités ont été publiées. Pour bénéficier de toutes les protections disponibles, il peut être nécessaire d’effectuer des mises à jour, notamment en ce qui concerne le microcode des fabricants d’appareils OEM.

Cet article explique comment atténuer les vulnérabilités suivantes :

  • CVE-2018-3620 - « L1 Terminal Fault - OS, SMM »
  • CVE-2018-3646 - « L1 Terminal Fault - VMM »
  • CVE-2018-11091 - « Microarchitectural Data Sampling Uncacheable Memory (MDSUM) »
  • CVE-2018-12126 - « Microarchitectural Store Buffer Data Sampling (MSBDS) »
  • CVE-2018-12127 - « Microarchitectural Load Port Data Sampling (MLPDS) »
  • CVE-2018-12130 - « Microarchitectural Fill Buffer Data Sampling (MFBDS) »
  • CVE-2019-11135 - « Vulnérabilité de divulgation d’informations dans le noyau Windows »

Pour en savoir plus sur les vulnérabilités, consultez les avis de sécurité suivants :

L1TF : https://portal.msrc.microsoft.com/fr-fr/security-guidance/advisory/adv180018

MDS : https://portal.msrc.microsoft.com/fr-fr/security-guidance/advisory/adv190013

Vulnérabilité de divulgation d’informations dans le noyau Windows : https://portal.msrc.microsoft.com/fr-fr/security-guidance/advisory/CVE-2019-11135

Détermination des actions nécessaires pour atténuer la menace


Les sections suivantes vous permettent d’identifier les systèmes concernés par les vulnérabilités L1TF et/ou MDS, ainsi que de comprendre et d’atténuer les risques.

Impact potentiel sur les performances

Lors de tests, Microsoft a constaté un certain impact sur les performances lié à ces atténuations en fonction de la configuration du système et des atténuations requises.

Certains clients devront désactiver l’hyperthreading (également appelé « multithreading simultané » ou SMT) afin de répondre entièrement au risque lié aux vulnérabilités L1TF et MDS. Sachez que la désactivation de l’hyperthreading peut provoquer une dégradation des performances. Cette situation s’applique aux clients qui utilisent les éléments suivants :

  • Versions de Hyper-V antérieures à Windows Server 2016 ou Windows 10 version 1607 (mise à jour anniversaire)
  • Fonctionnalités de sécurité basée sur la virtualisation (VBS) telles que Credential Guard et Device Guard
  • Logiciel autorisant l’exécution de code non approuvé (par exemple, serveur d’automatisation de la génération ou environnement d’hébergement IIS partagé)

L’impact peut varier selon le matériel et les charges de travail exécutées sur le système. L’hyperthreading est activé dans la configuration système la plus courante. Par conséquent, l’impact sur les performances est limité à l’utilisateur ou à l’administrateur qui réalise l’action de désactiver l’hyperthreading sur le système.

Remarque : pour déterminer si votre système utilise des fonctionnalités de sécurité protégées par VBS, procédez comme suit :

  1. Dans le menu Démarrer, tapez MSINFO32.

    Remarque : La fenêtre Informations système s’affiche.
  2. Dans la zone Rechercher, tapez sécurité.
  3. Dans le volet droit, localisez les deux lignes sélectionnées sur la capture d’écran, puis consultez la colonne Valeur pour déterminer si la sécurité basée sur la virtualisation est activée et pour connaître les services de sécurité basée sur la virtualisation en cours d’exécution.
     

    System Info window


La fonctionnalité Hyper-V Core Scheduler atténue les vecteurs d’attaque L1TF et MDS contre les machines virtuelles Hyper-V tout en laissant l’hyperthreading activé. Core Scheduler est disponible à partir de Windows Server 2016 et de Windows 10 version 1607. Ceci réduit au minimum l’impact sur les performances des machines virtuelles.

Core Scheduler n’atténue pas les vecteurs d’attaque L1TF et MDS contre les fonctionnalités de sécurité protégées par VBS. Pour plus d’informations, consultez l’atténuation C et l’article suivant du blog sur la virtualisation :

https://aka.ms/hyperclear

Pour obtenir des informations détaillées d’Intel en ce qui concerne l’impact sur les performances, consultez le site web d’Intel à l’adresse suivante :

www.intel.com/securityfirst

Identification des systèmes concernés et des atténuations requises

L’organigramme de la figure 1 vous permet d’identifier les systèmes concernés et de déterminer l’ensemble d’actions approprié. 

Important : si vous utilisez des machines virtuelles, vous devez utiliser l’organigramme pour les hôtes Hyper-V et les ordinateurs virtuels invités concernés de manière individuelle, car les atténuations peuvent s’appliquer aux deux. En particulier, en ce qui concerne un hôte Hyper-V, les étapes de l’organigramme proposent des protections entre machines virtuelles et intra-hôte. Toutefois, l’application de ces atténuations à l’hôte Hyper-V uniquement ne suffit pas pour assurer la protection intra-machines virtuelles. Pour cela, vous devez appliquer l’organigramme à chaque machine virtuelle Windows. Dans la plupart des cas, vous devez veiller à ce que les clés de Registre appropriées soient définies dans la machine virtuelle.

Lorsque vous parcourez l’organigramme, vous rencontrerez des cercles bleus avec une ou plusieurs lettres indiquant l’action ou l’ensemble d’actions à effectuer pour atténuer les vecteurs d’attaque L1TF en fonction de la configuration de votre système. Chaque action rencontrée doit être appliquée. Lorsque vous rencontrez une ligne verte, vous accédez directement à la fin, et aucune étape d’atténuation supplémentaire n’est requise.

Une brève explication de chaque mesure d’atténuation est indiquée dans la légende à droite. Les explications détaillées de chaque atténuation, notamment les instructions pas à pas d’installation et de configuration, sont reprises à la section « Atténuations ».

Flowchart

 

Atténuations


Important : cette section décrit les atténuations à appliquer UNIQUEMENT dans les conditions particulières indiquées par l’organigramme de la figure 1 figurant à la section précédente. N’appliquez une atténuation que si l’organigramme indique qu’elle est nécessaire.

Outre des mises à jour des logiciels et du microcode, des modifications manuelles de la configuration peuvent être requises pour activer certaines protections. Il est également recommandé aux entreprises de s’inscrire au service de notification de sécurité pour être averties en cas de modification du contenu. (Consultez la page Service de notification de sécurité de Microsoft.)

Atténuation A

Obtenir et appliquer les dernières mises à jour de Windows

Appliquer toutes les mises à jour disponibles pour le système d’exploitation Windows, y compris les mises à jour de sécurité Windows mensuelles. Vous pouvez consulter le tableau des produits concernés dans l’avis de sécurité Microsoft ADV180018 pour L1TF et l’avis de sécurité ADV190013 pour MDS, ainsi que la page CVE-2019-11135 pour la vulnérabilité de divulgation d’informations dans le noyau Windows.

Atténuation B

Obtenir et appliquer les dernières mises à jour du microcode ou du microprogramme

Outre les dernières mises à jour de sécurité Windows, une mise à jour du microcode du processeur est requise. L’installation de ces mises à jour est fournie par le fabricant OEM de l’appareil.

Remarque : si vous utilisez la virtualisation imbriquée (notamment si vous exécutez des conteneurs Hyper-V dans un ordinateur virtuel invité), vous devez exposer les nouveaux états d’éveil du microcode à l’ordinateur virtuel invité. Pour cela, il peut être nécessaire de procéder à la mise à niveau de la configuration VM vers la version 8. La version 8 contient par défaut les états d’éveil du microcode. Pour plus d’informations et pour connaître les étapes nécessaires, consultez l’article Microsoft Docs suivant :

Exécuter Hyper-V dans une machine virtuelle avec la virtualisation imbriquée

Atténuation C

Dois-je désactiver l’hyperthreading (HT) ?

Les vulnérabilités L1TF et MDS présentent un risque d’attaque par canal auxiliaire pouvant compromettre la confidentialité des machines virtuelles Hyper-V et des éléments secrets gérés par la sécurité basée sur la virtualisation (VBS) de Microsoft. Lorsque l’hyperthreading (HT) est activé, les limites de sécurité fournies par Hyper-V et VBS sont affaiblies.

La fonctionnalité Hyper-V Core Scheduler (disponible à partir de Windows Server 2016 et de Windows 10 version 1607) atténue les vecteurs d’attaque L1TF et MDS contre les machines virtuelles Hyper-V tout en laissant l’hyperthreading activé. Ceci réduit au minimum l’impact sur les performances.

Hyper-V Core Scheduler n’atténue pas les vecteurs d’attaque L1TF et MDS contre les fonctionnalités de sécurité protégées par VBS. Les vulnérabilités L1TF et MDS présentent un risque d’attaque par canal auxiliaire pouvant compromettre la confidentialité des éléments secrets VBS lorsque l’hyperthreading (HT) est activé, ce qui affaiblit la limite de sécurité fournie par VBS. Malgré ce risque accru, VBS présente des avantages importants pour la sécurité et permet d’atténuer diverses attaques lorsque HT est activé. Il est dès lors recommandé de continuer à utiliser VBS sur les systèmes sur lesquels HT est activé. Les clients qui souhaitent éliminer le risque potentiel que présentent les vulnérabilités L1TF et MDS pour la confidentialité de VBS doivent envisager de désactiver HT pour atténuer ce risque supplémentaire.

Les clients qui souhaitent éliminer le risque que présentent les vulnérabilités L1TF et MDS, que ce soit en ce qui concerne la confidentialité des versions de Hyper-V antérieures à Windows Server 2016 ou les fonctionnalités de sécurité VBS, doivent tenir compte de toutes les conséquences et envisager de désactiver HT pour atténuer le risque. De manière générale, cette décision peut reposer sur les considérations suivantes :

  • Pour Windows 10 version 1607, Windows Server 2016 et les systèmes plus récents qui n’exécutent pas Hyper-V et qui n’utilisent pas les fonctionnalités de sécurité protégées par VBS, les clients ne doivent pas désactiver HT.
  • Pour Windows 10 version 1607, Windows Server 2016 et les systèmes plus récents qui exécutent Hyper-V avec Core Scheduler, mais qui n’utilisent pas les fonctionnalités de sécurité protégées par VBS, les clients ne doivent pas désactiver HT.
  • Pour Windows 10 version 1511, Windows Server 2012 R2 et les systèmes antérieurs qui exécutent Hyper-V, les clients doivent envisager de désactiver HT pour atténuer le risque.

La procédure à suivre pour désactiver HT varie d’un fabricant OEM à l’autre. Toutefois, elle est généralement effectuée à l’aide des outils de configuration du BIOS ou du microprogramme.

Microsoft a également ajouté la possibilité de désactiver la technologie d’hyperthreading à l’aide d’un paramètre logiciel s’il est difficile, voire impossible de désactiver HT dans vos outils de configuration du BIOS ou du microprogramme. Le paramètre logiciel permettant de désactiver HT est sous-jacent au paramètre du BIOS ou du microprogramme, et est désactivé par défaut (HT est conforme au paramètre du BIOS ou du microprogramme). Pour en savoir plus sur ce paramètre et sur la désactivation de HT, consultez l’article suivant :

4072698 Instructions Windows Server concernant la protection contre les vulnérabilités de canal auxiliaire d’exécution spéculative

Dans la mesure du possible, il est recommandé de désactiver HT dans le BIOS ou le microprogramme pour plus de garantie sur la désactivation de HT.

Remarque : la désactivation de l’hyperthreading diminue les cœurs de processeur. Ceci peut avoir un impact sur les fonctionnalités qui nécessitent un minimum de cœurs de processeur. Par exemple, Windows Defender Application Guard (WDAG).

Atténuation D

Activer Hyper-V Core Scheduler et définir le nombre de threads matériels VM par noyau sur 2

Remarque : ces étapes d’atténuation ne s’appliquent qu’à Windows Server 2016 et aux versions de Windows 10 antérieures à la version 1809. Core Scheduler est activé par défaut sur Windows Server 2019 et Windows 10 version 1809.

L’utilisation de Core Scheduler est une procédure en deux étapes qui nécessite tout d’abord l’activation de Scheduler sur l’hôte Hyper-V, puis la configuration de chaque machine virtuelle afin qu’elle puisse l’utiliser en définissant le nombre de threads matériels par noyau sur deux (2).

La fonctionnalité Hyper-V Core Scheduler introduite dans Windows Server 2016 et Windows 10 version 1607 est une nouvelle solution alternative à la logique de planification classique. Core Scheduler propose une variabilité diminuée des performances pour les charges de travail dans les machines virtuelles exécutées sur un hôte Hyper-V HT.

Pour obtenir des explications détaillées sur Hyper-V Core Scheduler et la procédure à suivre pour l’activer, consultez l’article suivant sur Windows IT Pro Center :

Présentation et utilisation des types de planificateur de l’hyperviseur Hyper-V

Pour activer Hyper-V Core Scheduler sous Windows Server 2016 ou Windows 10, entrez la commande suivante :

bcdedit /set HypervisorSchedulerType core

Déterminez ensuite si vous souhaitez configurer le nombre de threads matériels par noyau d’une machine virtuelle sur deux (2). Si vous exposez le fait que les processeurs virtuels sont soumis à l’hyperthreading à une machine virtuelle invitée, vous activez le planificateur dans le système d’exploitation de la machine virtuelle, ainsi que les charges de travail VM, afin d’utiliser HT dans leur propre planification de travail. Pour cela, entrez la commande PowerShell suivante, où <Nom_MV> correspond au nom de la machine virtuelle :

Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore 2

Atténuation E

Activer les atténuations pour les avis CVE-2017-5715, CVE-2017-5754 et CVE-2019-11135

Remarque : ces atténuations sont activées par défaut dans Windows Server 2019 et les systèmes d’exploitation clients Windows.

Pour activer les atténuations pour les avis CVE-2017-5715, CVE-2017-5754 et CVE-2019-11135, suivez les instructions décrites dans les articles suivants :

4072698 Instructions Windows Server concernant la protection contre les vulnérabilités de canal auxiliaire d’exécution spéculative

4073119 Instructions des clients Windows destinées aux professionnels de l’informatique concernant la protection contre les vulnérabilités de canal auxiliaire d’exécution spéculative

 

Remarque : ces atténuations contiennent et activent automatiquement l’atténuation des bits de cadre de page sécurisés pour le noyau Windows ainsi que pour les atténuations décrites dans CVE-2018-3620. Pour obtenir des explications détaillées sur l’atténuation des bits de cadre de page sécurisés, consultez l’article suivant du blog Security Research & Defense :

Analyse et atténuation de la vulnérabilité « L1 Terminal Fault » (L1TF)