Technique

La nouvelle attaque contourne les mécanismes de défense matérielle contre le trou Spectre dans les processeurs Intel et ARM

La nouvelle attaque contourne les mécanismes de défense matérielle contre le trou Spectre dans les processeurs Intel et ARM

 

Bien qu’elle ne soit pas facile à exploiter, cette preuve de concept montre que certains processeurs Intel et ARM sont toujours vulnérables aux attaques par canal latéral.


Trou de spectre

 

Les contre-mesures matérielles qui ont été mises en place sur les processeurs Intel et ARM au cours des dernières années pour supprimer un défaut majeur appelé Spectre ne sont pas aussi fortes que prévu. Les scientifiques ont développé une nouvelle méthode d’attaque capable de surmonter les mécanismes de défense, mais son utilisation n’est pas aussi simple que le trou de ver d’origine.

La nouvelle attaque, découverte par des chercheurs du Systems and Network Security Group de VU Amsterdam (VUSec), s’appelle Spectre-BHI (Branch History Injection) ou Spectre-BHB (Branch History Store) car Intel et ARM lui ont donné des noms différents. Selon l’équipe de recherche, il s’agit d’une extension de l’attaque Spectre v2 de 2017, également connue sous le nom de Spectre-BTI (Branch Target Injection), et comme Spectre v2, elle peut faire fuir des informations sensibles de l’espace mémoire privilégié du noyau.

Vérifiez également :

Un exploit de preuve de concept par les chercheurs de VUSec consiste à divulguer les hachages de mot de passe root de /etc/shadow à l’aide d’un compte non privilégié. Le fichier /etc/shadow est un fichier système sous Linux accessible uniquement par le compte administrateur root. Essentiellement, l’exploit force le noyau à charger un fichier en mémoire où il serait normalement protégé contre l’accès par des processus non privilégiés, mais utilise ensuite une attaque Spectre-BHI pour accéder et divulguer son contenu. Il s’agit d’une grave violation de la frontière de sécurité de base des systèmes d’exploitation modernes qui sépare les applications en mode utilisateur et l’espace mémoire de l’espace mémoire privilégié du noyau.

Qu’est-ce que Spectre ?

Spectre est une classe de vulnérabilités, révélée à l’origine en janvier 2017, qui découle d’une fonctionnalité de performance du processeur moderne appelée exécution spéculative, dans laquelle le processeur tente de prédire à l’avance le chemin qu’un programme prendra lorsqu’il accède à une branche conditionnelle et exécute des instructions le long de cette piste tôt. Si les prédictions, basées sur des algorithmes internes, s’avèrent erronées, les résultats stockés dans le cache du processeur seront rejetés. Les attaques d’exécution spéculative comme Spectre et bien d’autres qui ont suivi utilisent ce mécanisme pour divulguer des informations à partir de caches temporaires qui agissent comme des canaux secondaires.

« Au moment où Spectre a été découvert, Branch Target Injection (BTI ou Spectre-v2), le type de Spectre le plus dangereux, était facile à utiliser à tous les niveaux d’autorisation », expliquent les chercheurs de VUSec. « Par exemple, un attaquant non privilégié de l’espace utilisateur pourrait transmettre n’importe quelle cible enfant à un prédicteur de branche intermédiaire de l’espace utilisateur et forcer le noyau à sauter de manière spéculative vers la cible de code injectée et à exécuter le code qui s’y trouve. »

Pour réduire le risque, les éditeurs de logiciels tels que Google et les fabricants de noyaux Linux ont développé des solutions logicielles telles que retpoline. Bien qu’il soit efficace, il a entraîné une baisse significative des performances, de sorte que les fabricants de processeurs ultérieurs ont développé une sécurité matérielle. La solution d’Intel s’appelle EIBRS et ARM est CSV2.

« Ces solutions sont complexes – l’article de recherche original est disponible sur ce lien – mais l’essentiel est que le prédicteur suit » d’une manière ou d’une autre « le niveau d’autorisation (utilisateur/noyau) auquel la cible est exécutée », expliquent les chercheurs de VUSec. « Et comme vous vous en doutez, si la cible appartient à un niveau de privilège inférieur, le noyau ne l’utilisera pas (c’est-à-dire qu’il n’y aura plus d’emplacements de code aléatoires fournis par l’attaquant pouvant être saisis de manière spéculative pour le flux de contrôle du noyau). « 

Le problème, cependant, est que le prédicteur de CPU s’appuie sur l’historique global pour sélectionner les entrées cibles pour une exécution spéculative, et comme les chercheurs de VUSec l’ont démontré, cet historique global peut être corrompu. En d’autres termes, alors que le Spectre v2 d’origine permettait aux attaquants d’injecter physiquement l’emplacement du code cible, puis d’exécuter furtivement ce code par le noyau, la nouvelle attaque Spectre-BHI/BHB pourrait forcer le noyau à mal prédire et à exécuter quelque chose d’intéressant. Gadgets ou extraits de code qui existent déjà. C’est dans l’histoire et a été fait dans le passé, mais cela peut entraîner une fuite de données.

« Intel eIBRS et Arm CSV2 sont-ils corrompus ? Comme si. Cela signifie que les mesures de sécurité fonctionnent comme prévu, mais la surface d’attaque restante est plus importante que ne le supposaient initialement les fabricants. […] Cependant, trouver des outils pouvant être utilisés devient de plus en plus important. » Plus difficile qu’auparavant, car un attaquant ne peut pas injecter des cibles cibles directement au-delà des limites d’autorisation. »

Atténuation du nouveau bogue Spectre-BHI

Intel a identifié le nouveau Spectre-BHI comme CVE-2022-0001 pour la variante à privilèges multiples et CVE-2022-0002 pour la variante à privilèges multiples. ARM le décrit comme CVE-2022-23960 pour les deux variantes.

Selon Intel, la plupart des processeurs de l’entreprise sont concernés, à l’exception de ceux de la famille Atom. Pour ARM, les processeurs faibles sont Cortex-A15, Cortex-A57, Cortex-A72, Cortex-A73, Cortex-A75, Cortex-A76, Cortex-A76AE, Cortex-A77, Cortex-A78, Cortex-A78AE, Cortex – A78C Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1.

Les deux sociétés ont fait des recommandations et proposent actuellement des contre-mesures logicielles. ARM propose cinq solutions d’atténuation différentes en fonction du système.

Dans leur exploit Linux, les chercheurs de VUSec ont utilisé eBPF, une technologie disponible depuis la version 4.4 du noyau qui permet de mettre les programmes en sandbox dans le noyau du système d’exploitation. Bien que eBPF ne fasse pas partie du problème sous-jacent et que d’autres outils de code pouvant divulguer des données puissent être trouvés, la présence d’un eBPF non privilégié « facilite grandement les attaques spéculatives (et autres) », ont déclaré les chercheurs. Pour cette raison, ils recommandent de le désactiver, et certaines distributions Linux ont commencé à le désactiver par défaut.

Source : OSC

Regardez aussi

.

Articles similaires

Bouton retour en haut de la page