Il s’avère que la cause principale de plusieurs attaques d’exécution spéculative précédemment divulguées contre des processeurs modernes, tels que Meltdown et Foreshadow, a été attribuée à tort à un « effet de prélecture », ce qui a conduit les fournisseurs de matériel à publier des atténuations et des contre-mesures incomplètes.
Partageant ses résultats avec The Hacker News, un groupe d’universitaires de l’Université de technologie de Graz et du CISPA Helmholtz Center for Information Security a finalement révélé la raison exacte pour laquelle les adresses du noyau sont mises en cache en premier lieu, ainsi que présenté plusieurs nouvelles attaques qui exploiter le problème sous-jacent non identifié auparavant, permettant aux attaquants de détecter les données sensibles.
le nouvelle recherche explique Les attaques microarchitecturales ont en fait été causées par un déréférencement spéculatif des registres de l’espace utilisateur dans le noyau, ce qui a non seulement un impact sur les processeurs Intel les plus récents avec les dernières atténuations matérielles, mais aussi sur plusieurs processeurs modernes d’ARM, IBM et AMD – auparavant considérés comme non affectés .
« Nous avons découvert que les effets rapportés dans plusieurs articles universitaires au cours des 4 dernières années n’étaient pas correctement compris, ce qui a conduit à des hypothèses incorrectes sur les contre-mesures », ont déclaré les chercheurs à The Hacker News.
« Ce effet de prélecture est en fait sans rapport avec les instructions de prélecture logicielle ou les effets de prélecture matérielle dus aux accès à la mémoire et à la place est causée par un déréférencement spéculatif des registres d’espace utilisateur dans le noyau. «
Outre l’analyse de la cause profonde réelle de l’effet de prélecture, d’autres conclusions clés de la recherche sont:
- Découverte de plusieurs nouvelles attaques exploitant la cause racine sous-jacente, y compris une attaque de traduction d’adresse dans des contextes plus restreints, une fuite directe de valeurs de registre dans des scénarios spécifiques et un exploit Foreshadow de bout en bout ciblant des données non L1.
- Une nouvelle attaque de canal secret cross-core qui, dans certains cas, pourrait permettre aux attaquants d’observer la mise en cache de l’adresse (ou de la valeur) stockée dans un registre sans s’appuyer sur la mémoire partagée.
- Les gadgets de « prélecture » Spectre peuvent directement divulguer des données réelles, ce qui rend non seulement l’attaque ZombieLoad efficace sur les processeurs Intel pour faire fuir les données sensibles des tampons internes ou de la mémoire, mais aussi avoir un impact sur les processeurs non Intel.
- Le problème de déréférencement spéculatif – dans certaines attaques comme Rowhammer, les attaques de cache et DRAMA – pourrait permettre aux attaquants de récupérer les adresses physiques des variables JavaScript et d’exfiltrer des informations via exécution transitoire à distance via un navigateur Web.
De plus, les chercheurs ont également démontré que la vulnérabilité Foreshadow sur les processeurs Intel pourrait être exploitée même lorsque les atténuations recommandées sont activées. Ceci est rendu possible grâce au fait que l’attaque peut être montée sur des données ne résidant pas dans le cache L1 sur les versions du noyau contenant des gadgets «prefetch».
De l’attaque de traduction d’adresse à la préfiguration
L’idée derrière cela est simple. Le logiciel système s’appuie sur le mécanisme de traduction d’adresse du processeur pour implémenter l’isolation entre les différents processus. Chaque processus a son propre espace de mémoire virtuelle et ne peut pas accéder aux adresses de mémoire physique arbitraires en dehors de celui-ci.
La traduction d’adresse agit donc comme une couche intermédiaire qui mappe l’espace d’adressage virtuel, qui est utilisé par un programme, à l’adresse physique sur une adresse physique.
L’espace d’adressage virtuel comprend également un espace d’adressage du noyau pour héberger les threads du noyau Linux, ce qui permet au matériel sous-jacent de gérer facilement les instructions privilégiées des threads utilisateur en mode noyau.
Alors que les noyaux du système d’exploitation peuvent être sécurisés contre les attaques de canaux secondaires de prélecture via une technique appelée isolation de table de pages du noyau (KPTI ou KAISER) – qui impose une isolation stricte du noyau et de l’espace utilisateur de sorte que le matériel ne contienne aucune information sur les adresses du noyau lorsqu’il s’exécute en mode utilisateur – les chercheurs ont constaté que cela ne garantissait pas une protection complète contre les attaques de traduction d’adresses, où un attaquant tente de vérifier si deux adresses virtuelles différentes correspondent à la même adresse physique.
En d’autres termes, «l’attaque de traduction d’adresses permet aux applications non privilégiées de récupérer des adresses de noyau arbitraires dans le cache et de résoudre ainsi les adresses virtuelles en adresses physiques sur les systèmes Linux 64 bits».
Alors que l’idée originale était que de telles attaques étaient liées à des instructions de prélecture, la nouvelle découverte prouve le contraire, validant ainsi que KAISER n’est pas une contre-mesure adéquate contre les attaques par canal latéral microarchitecturales sur l’isolement du noyau.
Au lieu de cela, il exploite un gadget Spectre-BTB-SA-IP (Branch Target Buffer, même adresse, en place) pour provoquer des fuites d’informations, provoquant une exécution spéculative, et poursuivre les attaques Meltdown and Foreshadow (L1 Terminal Fault) en contournant le courant Atténuations L1TF.
Spectre-BTB-SA-IP est une variante de Vulnérabilité du spectre qui exploite le Branch Target Buffer – un composant de type cache dans les processeurs utilisé pour la prédiction de branche – pour effectuer des attaques dans le même espace d’adressage et le même emplacement de branche.
« Le même effet de prélecture peut être utilisé pour effectuer Foreshadow », ont déclaré les chercheurs. «Si un secret est présent dans le cache L3 et que l’adresse de la carte physique directe est déréférencée dans le noyau de l’hyperviseur, les données peuvent être récupérées dans le L1. Cela réactive Foreshadow même avec les atténuations Foreshadow activées si les atténuations Spectre-BTB non liées sont désactivées. «
«La conséquence est que nous sommes capables de monter une attaque Foreshadow sur des noyaux plus anciens corrigés contre Foreshadow avec toutes les atténuations activées et sur un noyau entièrement corrigé si seules les atténuations Spectre-v2 sont désactivées.
Activer les atténuations Spectre-BTB telles que Retpoline
Pour mettre en évidence l’impact des attaques par canal latéral, les chercheurs ont établi un canal secret basé sur le cache qui exfiltrait les données d’un processus fonctionnant sur un processeur Intel Core i7-6500U vers un autre processus furtif, atteignant un taux de transmission de 10 bits / s à relayer un total de 128 octets de l’expéditeur au processus récepteur.
En outre, les chercheurs ont révélé qu’il était possible de fuir le contenu d’un registre à partir d’une enclave SGX de processeurs Intel à l’aide d’un registre déréférencé de manière spéculative (appelé « Dereference Trap »), en l’utilisant pour récupérer une valeur 32 bits stockée dans un registre 64 bits dans 15 minutes.
Enfin, «certaines attaques» peuvent désormais être montées à distance à l’aide de JavaScript dans un navigateur Web et «remplir les registres 64 bits avec une valeur contrôlée par l’attaquant en JavaScript à l’aide de WebAssembly».
Pour atténuer ces attaques, il est recommandé que les processeurs actuels activent les atténuations Spectre-BTB, y compris retpoline (abréviation de «retour trampoline»), qui vise à empêcher l’injection de cible de branche en isolant succursales indirectes d’une exécution spéculative.
Poster un commentaire