Actualités

“Plus rapides” et “plus furtives” : 4 nouvelles déclinaisons de Spectre mises en lumière… Intel et AMD concernés ! (micro-ops, maxi-dégâts…)

Toujours aussi impopulaire, Spectre continue de briller sur la scène sécuritaire : des chercheurs viennent d’alerter sur quatre nouvelles variantes de Spectre qui exploitent les micro-opérations sous architecture x86. Les deux fondeurs, AMD et Intel sont concernés.

 

 

Impactant les produits Intel (Skylake) et AMD (l’ensemble des micro-puces sous architecture Zen, depuis la version originelle, en 2017), les micro-opérations sont contournées au sein du cache-mémoire via “des exploits de canal de synchronisation basés sur un cache micro-op à large bande passante dans trois paramètres principaux à travers les régions de code dans le même thread , mais fonctionnant à des niveaux de privilèges différents, sur différents threads co-localisés s’exécutant simultanément sur différents contextes SMT (coeurs logiques) au sein du même cœur physique, et 2 variantes d’attaque d’exécution transitoire qui exploitent le cache micro-op supportant des secrets, en contournant plusieurs atténuations matérielles et logicielles existantes, y compris la LFENCE recommandée par Intel […] La plupart des solutions de spéculation et de clôture invisibles existantes se concentrent sur le masquage des effets secondaires vulnérables involontaires de l’exécution spéculative qui se produisent à l’arrière du pipeline de processus, plutôt que sur l’inhibition de la source de spéculation sur le front-end. Cela les rend vulnérables à l’attaque que nous décrivons, qui révèle des secrets accessibles de manière spéculative via un canal frontal, avant qu’une instruction transitoire n’ait l’opportunité d’être envoyée pour exécution […] en raison de la taille relativement petite du cache micro-op, notre attaque est nettement plus rapide que les variantes Spectre existantes qui reposent sur l’amorçage et l’analyse de plusieurs ensembles de cache pour transmettre des informations secrètes, et est considérablement plus furtive, car elle utilise le cache micro-op comme sa seule primitive de divulgation, introduisant moins d’accès au cache de données / d’instructions, sans parler des échecs“, indique le papier technique des chercheurs des Université de Virginie, de Tullsen et de Mataram.

 

 

Concernant ces vulnérabilités, voici les contours techniques essentiels :

 

  • Attaque de type cross-domain au sein d’un espace d’adressage commun : la vulnérabilité prend son sein depuis le cache des micro-opérations des micro-puces. Après plusieurs observations, il a pu être dégagé un schéma prédictif (PoC) ce qui a soulevé, en l’état, une randomisation de la donnée nulle ou, dans ce cas, quasi-nulle. Un “signal binaire clairement distinguable” qui permet, d’exploiter l’ensemble en détournant cette boucle via le déploiement d’un cheval de Troie qui appliquera, alors, une boucle malveillante. “Nous atteignons notre meilleure bande passante (965,59 Kbps) et nos meilleurs taux d’erreur (0,22%) lorsque six voies de huit ensembles sont sondées, tout en nous limitant à juste cinq échantillons. Nous rapportons en outre une bande passante corrigée des erreurs en codant nos données transmises avec le codage Red-Solomon [50] qui gonfle la taille du fichier d’environ 20%, fournissant une bande passante de 785,56 Kbps sans erreur“, indiquent les chercheurs qui ont joué sur la bande-passante et le canal d’émission (pour traquer et exploiter le signal afin d’avoir une synchronisation quasi-parfaite). En finalité, cette élévation de privilège conduit à une ex-filtration de données : une routine (code) est programmée depuis le noyau directement ;
  • Attaque cross-SMT (Simultaneous MultiThreading) : la vulnérabilité concernerait uniquement les micro-puces AMD sous architecture Zen (le cache micro-op d’Intel fonctionnant sous partition statique, est-il expliqué) et tirerait parti du fait qu’un thread infecté impacte, au maximum, l’ensemble du cache micro-op. Dans ces dispositions, à la manière d’un virus, le thread infecté (qui simule les conditions légitimes à savoir, selon le modèle AMD “compétitif“, l’interrogation constante ou l’exécution constante d’instructions ce qui amènera, tôt ou tard, une viralité effective), sous la forme d’un cheval de Troie également ici, va s’instiller dans le cache micro-op. Une fois le but atteint, il exécute le schéma légitime de ces micro-op avec, progressivement, un temps d’exécution rallongé. En finalité, le canal secret ou auxiliaire est parachevé ;

 

  • Attaque par exécution transitoire (détournement de l’exécution spéculative bien connue depuis Spectre et ses variantes comme, entre-autres, Foreshadow) : une fois de plus, les vulnérabilités de Spectre sont reprises via “un index hors limites” de la table (prédiction de branches) dont l’ensemble est “malicieusement calculé“. L’ensemble n’a ainsi plus rien d’aléatoire ou de secret via un appel frauduleux. En combinant les versions 1 et 2 de Spectre découvertes à l’époque, il est malheureusement possible de combiner les plaisirs du genre : “nous identifions également 37 gadgets dans le noyau Linux (version 5.11-rc7 ) qui ont également la capacité d’effectuer une opération de masquage de bits sur le secret récupéré suivi d’une branche dépendante, pour déclencher un accès au cache micro-op” ;

 

  • Attaque par exécution transitoire en exploitant LFENCE : combinée à l’exploitation des vulnérabilités au sein du cache de micro-opérations, LFENCE est détourné en voyant les instructions les plus récentes aspirées par les cyber-attaquants potentiels. L’ensemble exploite des manquements sécuritaires au niveau des exécutions-mêmes (certaines n’ont aucun mécanisme de protection en terme de synchronisation) ainsi qu’au niveau du CPUID (absence de signal quand l’exécution spéculative est restreinte ou quasi-nulle).

 

 

Des mesures de protection ou d’atténuation sont proposées :

 

  • Effacement du cache via l’instruction TranslationLookAsideBuffer (iTLB) : une tâche déjà possible via Intel SGX (entrée et sortie des enclaves) mais qui peut impacter “gravement” sur les performances. Un vidage sélectif (sélection des lignes incriminées… !) reste, alors, possible, pour limiter l’impact sur les performances mais, là aussi, outre une veille constante du cache micro-op, l’ensemble subirait, selon les chercheurs, tout de même un ralentissement conséquent, notamment lors de l’étape de reconstitution des données-cache ;
  • Veille depuis les indicateurs de performances : observation de “sauts soudains” lors des lignes mises en mode “échec” au sein du cache micro-op. Là aussi, la consultation chronique de ces indicateurs soulèvent un impact notable sur la performance des micro-puces et donc des systèmes les intégrant ;
  • Effectuer un partitionnement reposant sur le type de privilège “de sorte que, par exemple, le noyau et le code utilisateur n’interfèrent pas les uns avec les autres dans le cache micro-op“. Outre le fait d’un cache micro-op sous-exploité, cette protection serait, par contre, inefficace, pour la première variante (cf. premier point : attaque cross-domain) dont l’exploit repose en partie sur une interrogation depuis le code utilisateur.

 

A voir ce que choisiront, donc, Intel et AMD : dans tout les cas et comme pour les autres vulnérabilités que l’ensemble des utilisateurs ont pu goûter et digérer, il y aura un impact sur les performances de ces produits… A veiller !

 

 

 

Source : Virginia (Université) – Spectre : 4 nouvelles variantes dévoilées techniquement (PDF – Anglais).




  • 50% J'apprécieVS
    50% Je n'apprécie pas
    Pas de commentaire

    Laisser un commentaire

    ;) :zzz: :youpi: :yes: :xmas: :wink: :whistle: :warning: :twisted: :sw: :sleep: :sg1: :schwarzy: :sarko: :sante: :rollol: :roll: :rip: :pt1cable: :popcorn: :pff: :patapai: :paf: :p :ouch: :oops: :o :non: :na: :mrgreen: :mdr: :macron: :love: :lol: :kissou: :kaola: :jesuisdehors: :jap: :ilovesos: :idea: :houra: :hello: :heink: :grumpy: :fume: :frenchy: :fouet: :fouet2: :first: :fessee: :evil: :dispute: :demon: :cryy: :cry: :cpignon: :cool: :cassepc: :capello: :calin: :bug: :boxe: :bounce: :bluesbro: :bisou: :babyyoda: :assassin: :arrow: :annif: :ange: :amen: :D :??: :?: :/ :-| :-x :-o :-P :-D :-? :-1: :+1: :) :( 8-O 8)

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

    Copyright © Association SOSOrdi.net 1998-2021 - v1.11.5