AccueilSécuritéSpectre V2 est aussi de retour chez ARM et Intel : attaque...

Spectre V2 est aussi de retour chez ARM et Intel : attaque sur Branch History Buffer

Une nouvelle forme de Branch Target Injection (BTI), alias Spectre V2, affecte tous les processeurs Intel, y compris les derniers Core i-12000 (Alder Lake), ainsi que tous les systèmes sur puce (SoC) avec des cœurs standard haute performance d’ARM, y compris les Cortex-X2, Cortex-A710 et Cortex-A78. Ces cœurs ARM sont présents dans la plupart des smartphones.

Cinq chercheurs de la Vrije Universiteit Amsterdam ont trouvé un nouveau moyen (PDF) de contourner les mécanismes de protection qu’ARM et Intel ont jusqu’à présent intégrés dans le matériel. Branch History Injection (BHI), également appelé Spectre Branch History Buffer (Spectre-BHB), vise le Branch Target Buffer (BTB) : une petite mémoire cache qui stocke les dernières adresses de destination pour différentes branches et contextes de branchements.

Comme les attaques correspondantes sont compliquées, notamment en raison du timing nécessaire, SuSE classe les deux numéros CVE CVE-2022-0001 et CVE-2022-0002 appartenant à Intel comme « modérément dangereux » avec un score CVSS de 5,6, Intel lui-même et AWS étant encore un peu plus bas avec un score de 4,7.

Pour les PC de bureau et les ordinateurs portables typiquement utilisés, les nouvelles vulnérabilités ne représentent pas une menace importante car elles sont beaucoup plus difficiles à exploiter que d’autres vulnérabilités courantes.

Les processeurs AMD ne sont pas concernés, mais doivent faire face à d’autres nouvelles failles de sécurité.

Sommaire

Les unités de prédiction de saut se réfèrent au Branch Target Buffer lors de l’exécution spéculative. Le clou : le cache fonctionne globalement, de sorte que le code malveillant pour le Branch Target Buffer peut également influencer des plages d’adresses qui exigent en fait des droits d’accès plus élevés, et provoquer ainsi de fausses prédictions de saut. ARM écrit à ce sujet dans sa propre documentation : « Avec de telles implémentations, un code malveillant pourrait manipuler l’historique des branchements à partir d’un contexte et forcer de fausses prédictions dans un autre contexte, ce qui conduirait à l’exécution spéculative de faux flux de commandes ».

L’analyse temporelle des accès à la mémoire peut ensuite être utilisée pour accéder à des données en principe secrètes. Dans une démonstration de faisabilité, les chercheurs ont lu 160 octets par seconde et ont ainsi pu trouver des mots de passe.

Les unités de prédiction de saut dans les processeurs modernes sont sûres. Spectre-BHB s’est donc penché sur le cache auquel ces unités accèdent.

(Image : ARM)

Spectre-BHB contourne les mécanismes de protection matérielle existants tels que l’eIBRS (extended Indirect Branch Restricted Speculation) d’Intel et le CSV2 d’ARM, qui isolent les entrées du tampon Branch-Target à l’intérieur des unités de prédiction de saut à travers les domaines de privilège, mais n’incluent pas le cache.

Intel recommande désormais de désactiver l’accès aux environnements d’exécution gérés en mode privilégié afin d’éviter que les exécutions gérées, comme le filtre de paquets eBPF (Extended Berkeley Packet Filter) non privilégié, ne soient utilisées comme porte d’entrée en mode noyau. Les outils nécessaires à cet effet sont inclus dans le noyau Linux 5.16.

ARM recommande d’utiliser des boucles d’instructions pour fausser l’historique dans le Branch Target Buffer ou de vider complètement le cache à intervalles réguliers (fuites de cache). Cependant, c’est surtout cette dernière méthode qui est potentiellement coûteuse en termes de performances.

Plus d'articles