Une nouvelle classe de vulnérabilités dans les processeurs Intel a été introduite

Intel опубликовала des informations sur les nouveaux classe de vulnérabilité dans leurs processeurs - MDS (Échantillonnage de données microarchitecturales). Comme les précédentes attaques Spectre, de nouveaux problèmes peuvent entraîner une fuite de données privées du système d'exploitation, des machines virtuelles et d'autres processus. Il est allégué que les problèmes ont été identifiés pour la première fois par les employés et partenaires d'Intel lors d'un audit interne, après quoi des chercheurs indépendants ont fourni des informations sur des problèmes similaires à ceux d'Intel. Les processeurs AMD et ARM ne sont pas concernés par le problème.

Basé sur des problèmes identifiés par des chercheurs de l'Université technique de Graz (Autriche) développé par Quelques attaques pratiques par canal secondaire :

  • ZombieLoad (PDF) - permet d'extraire des informations confidentielles d'autres processus, du système d'exploitation, des machines virtuelles et des enclaves protégées (TEE, Trusted Execution Environment). Par exemple, la capacité de déterminer l'historique des pages d'ouverture du navigateur Tor exécuté sur une autre machine virtuelle a été démontrée, ainsi que de déterminer les clés d'accès et les mots de passe utilisés dans les applications ;


  • RIDL (PDF) - permet la fuite d'informations entre diverses zones isolées des processeurs Intel, telles que les tampons de remplissage, les tampons de stockage et les ports de chargement. Des exemples d'attaques sont présentés pour organiser des fuites provenant d'autres processus, du système d'exploitation, des machines virtuelles et des enclaves protégées. Par exemple, il montre comment découvrir le contenu du hachage du mot de passe root à partir de /etc/shadow lors de tentatives d'authentification périodiques (l'attaque a duré 24 heures) ;

    De plus, un exemple d'attaque utilisant JavaScript et WebAssembly est présenté lors de l'ouverture d'une page malveillante dans le moteur SpiderMonkey (dans les navigateurs à part entière modernes, une telle attaque est peu probable en raison de la précision limitée du minuteur et des mesures de protection contre Spectre) ;

  • Fallout (PDF) - permet de lire les données récemment écrites par le système d'exploitation et de déterminer la disposition de la mémoire du système d'exploitation pour simplifier d'autres attaques ;
  • Transfert du magasin vers la fuite — exploite les optimisations du processeur pour travailler avec le tampon de stockage et peut être utilisé pour contourner le mécanisme de randomisation de l'espace d'adressage du noyau (KASLR), pour surveiller l'état du système d'exploitation ou pour organisation fuites en combinaison avec des gadgets basés sur les méthodes Spectre.

Révélé vulnérabilités:

  • CVE-2018-12126 - MSBDS (Microarchitectural Store Buffer Data Sampling), récupération du contenu des tampons de stockage. Utilisé dans l'attaque Fallout. Le degré de danger est déterminé à 6.5 points (CVSS) ;
  • CVE-2018-12127 - MLPDS (Microarchitectural Load Port Data Sampling), récupération du contenu du port de chargement. Utilisé dans l'attaque RIDL. CVSS 6.5 ;
  • CVE-2018-12130 - MFBDS (Microarchitectural Fill Buffer Data Sampling), récupération du contenu du tampon de remplissage. Utilisé dans les attaques ZombieLoad et RIDL. CVSS 6.5 ;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), récupération du contenu de la mémoire non mis en cache. Utilisé dans l'attaque RIDL. CVSS 3.8.

Substance a identifié des problèmes dans la capacité à appliquer des méthodes d'analyse par canal secondaire aux données des structures microarchitecturales auxquelles les applications n'ont pas directement accès. Nous parlons de structures de bas niveau telles que les tampons de remplissage (Line Fill Buffer), les tampons de stockage (Store Buffer) et les ports de chargement (Load Port), qui sont des éléments de base plus petits que le cache de premier niveau (L1D), le cache de chargement de données ( RDCL ) ou L1TF (L1 Terminal Fault), et contiennent donc moins d'informations et sont mis à jour de manière plus intensive.

Une nouvelle classe de vulnérabilités dans les processeurs Intel a été introduite

Les attaques par canal secondaire contre les structures microarchitecturales sont beaucoup plus difficiles à réaliser que les méthodes de restauration du contenu du cache et nécessitent le suivi et l'analyse de quantités importantes de données pour déterminer leur connexion avec certaines adresses en mémoire (en substance, un attaquant ne peut pas délibérément intercepter certaines données). , mais il faudra peut-être accumuler les fuites et appliquer des méthodes statistiques pour reconstituer certains types de données). De plus, l'attaque n'affecte que les données situées sur le même cœur de processeur physique que le code de l'attaquant.

Les méthodes proposées pour déterminer le contenu des structures microarchitecturales sont basées sur le fait que ces structures sont utilisées lors de la gestion spéculative d'exceptions (défauts) ou d'opérations de chargement et de stockage.
Lors de l'exécution spéculative, le contenu des structures internes est redirigé vers des registres ou des caches pour traitement. Les opérations spéculatives ne se terminent pas et le résultat est ignoré, mais le contenu redirigé peut être déterminé à l'aide de techniques d'analyse du cache de canal secondaire.

Les ports de chargement sont utilisés par le processeur pour recevoir des données de la mémoire ou du sous-système d'E/S et fournir les informations reçues aux registres du processeur. Grâce à la fonctionnalité d'implémentation, les données des anciennes opérations de téléchargement restent dans les ports jusqu'à ce qu'elles soient écrasées par de nouvelles données, ce qui permet de déterminer indirectement l'état des données dans le port de téléchargement en manipulant les exceptions (défauts) et SSE/AVX/ Instructions AVX-512 qui chargent plus de données 64 bits. Dans de telles conditions, les opérations de chargement exposent de manière spéculative les valeurs de données obsolètes des structures internes aux opérations dépendantes. De la même manière, une fuite est organisée via le tampon de stockage, qui sert à accélérer l'écriture dans le cache du CPU et comprend un tableau d'adresses, de valeurs et d'indicateurs, ainsi qu'à travers le tampon de remplissage, qui contient des données qui n'est pas encore dans le cache L1 (cache-miss), pour l'instant en cours de chargement depuis des caches d'autres niveaux.

Une nouvelle classe de vulnérabilités dans les processeurs Intel a été introduite

problème affecte Modèles de processeurs Intel produits depuis 2011 (à partir de la 6ème génération). Dans ce cas, les vulnérabilités matérielles sont bloquées à partir de certains modèles des 8ème et 9ème générations d'Intel Core et de 2ème génération d'Intel Xeon Scalable (vous pouvez vérifier à l'aide du bit ARCH_CAP_MDS_NO dans IA32_ARCH_CAPABILITIES MSR). Les vulnérabilités sont également déjà éliminé au niveau du firmware, du microcode et des systèmes d'exploitation. Intel estime la perte de performances après l'activation du correctif pour la plupart des utilisateurs ne dépasse pas 3%. Lorsque la technologie Hyper-Threading est désactivée, la dégradation des performances peut atteindre jusqu'à 9 % dans le test SPECint_rate_base, jusqu'à 11 % dans les calculs d'entiers actifs et jusqu'à 19 % lors de l'exécution d'applications Java côté serveur (avec HT activé, il y a presque aucune dégradation des performances). Les correctifs ont peu d'impact sur les performances d'E/S.

Le noyau Linux protège contre MDS ajoutée dans aujourd'hui mises à jour 5.1.2,
4.19.43, 4.14.119 et 4.9.176. Méthode de protection En construction lors de l'effacement du contenu des tampons microarchitecturaux au moment du retour du noyau vers l'espace utilisateur ou lors du transfert du contrôle vers le système invité, pour lequel l'instruction VERW est utilisée. Pour que la protection fonctionne, elle nécessite la prise en charge du mode MD_CLEAR, implémenté dans la dernière mise à jour du microcode. Pour une protection complète, il est également recommandé de désactiver Hyper Threading. Pour vérifier l'exposition du système aux vulnérabilités du noyau Linux ajoutée gestionnaire "/sys/devices/system/cpu/vulnerabilities/mds". Pour contrôler l'inclusion de différents modes de blocage des vulnérabilités, le paramètre « mds= » a été ajouté au noyau, qui peut prendre les valeurs « full », « full,nosmt » (désactivation des Hyper-Threads), « vmwerv » et "désactivé".

Des mises à jour de packages ont déjà été publiées pour RHEL и Ubuntu, mais reste indisponible pour l'instant Debian, Fedora и SUSE.
Un correctif pour bloquer également les fuites de données des machines virtuelles formé pour l'hyperviseur Xen. Pour protéger les systèmes de virtualisation qui émettent la commande L1D_FLUSH avant de transférer le contrôle à une autre machine virtuelle, et pour protéger les enclaves Intel SGX, une mise à jour du microcode est suffisante.

Source: opennet.ru

Ajouter un commentaire