Une nouvelle attaque critique par canal auxiliaire, baptisée LVI-LFB (Load Value Injection in the Line Full Buffers), a été découverte

Les chercheurs de Bitdefender ont une fois de plus identifié une nouvelle attaque par canal auxiliaire et créé une preuve de concept la concernant.

L'attaque, baptisée LVI-LFB (Load Value Injection in the Line Full Buffers) permet à un attaquant d'injecter des valeurs malveillantes dans certaines structures micro-architecturales qui sont ensuite utilisées par la victime, ce qui peut conduire à la révélation de données secrètes et protégées à tous les niveaux de privilèges.

Cette nouvelle attaque (CVE-2020-0551) affecte les processeurs Intel les plus récents qui recourent à l'exécution spéculative.

Présentation rapide

Dans leur quête de processeurs toujours plus rapides, les fournisseurs ont mis en œuvre diverses versions d'exécution spéculative. Cette fonctionnalité permet au processeur de faire des suppositions éclairées sur les instructions qui pourraient être nécessaires avant de déterminer si elles le sont vraiment. Cette exécution spéculative peut laisser des traces dans le cache, dont les attaquants peuvent tirer parti pour provoquer une fuite de la mémoire privilégiée du noyau.

Ce qui rend avant-gardiste la recherche relative à ces attaques par rapport à celle portant sur des cyberattaques ciblant des vulnérabilités plus traditionnelles est qu'elle se concentre sur le fonctionnement fondamental des processeurs modernes. Pour mener des investigations efficaces, les équipes de recherche doivent avoir une compréhension approfondie des éléments internes des processeurs (prédiction de branchement, exécution hors ordre, exécution spéculative, pipeline et caches), des éléments internes des systèmes d'exploitation (appels système, gestion des interruptions et des exceptions et KPTI) ainsi que des attaques par canaux auxiliaires et par exécution spéculative en général.

Impact

Cette nouvelle attaque peut être particulièrement dévastatrice dans les environnements multi-tenants à charges de travail multiples qui s'exécutent sur du matériel partagé entre groupes de charges de travail au sein d'une organisation ou entre organisations, tels que les clouds publics et privés. Cela est dû, comme le montre la preuve de concept, au fait qu'un processus moins privilégié sous le contrôle d'un attaquant a la possibilité de détourner spéculativement le flux de contrôle d'un processus plus privilégié lorsque certaines conditions sont réunies.

Le risque le plus direct est le vol de données secrètes, censées être protégées par des limites de sécurité aux niveaux du matériel, de l'hyperviseur et du système d'exploitation. Il peut s'agir de clés de chiffrement, de mots de passe ou d'autres informations qu'un attaquant pourrait exfiltrer ou utiliser pour prendre le contrôle d'un système ciblé.

Comment l'attaque LVI-LFB a été découverte et divulguée

Cette nouvelle technique d'attaque s'appelle « injection de valeur de charge » (LVI), et l'identifiant CVE qui lui est attribué est CVE-2020-0551.

Jusqu'ici, les chercheurs n'avaient envisagé les attaques MDS (échantillonnage de données micro-architecturales) que dans une seule direction : la victime accède aux données secrètes, qui sont chargées dans les blocs de mémoire MDS, tandis que l'attaquant exfiltre le contenu des blocs de mémoire MDS en émettant une instruction de chargement nécessitant l'assistance d'un microcode (par exemple, pour la lecture d'une adresse non valide). Toutefois, les blocs de mémoire MDS peuvent également être compromis dans l'autre sens ; si un attaquant pulvérise les blocs de mémoire MDS avec une valeur particulière, une victime peut charger de manière spéculative cette valeur particulière lorsqu'une instruction de chargement déclenche une telle assistance de microcode (par exemple, l'instruction de chargement déclenche un faute). En analysant soigneusement la nature des vulnérabilités Spectre et MDS, un œil attentif peut identifier rapidement la cause profonde de la nouvelle vulnérabilité LVI-LFB : une branche de mémoire indirecte qui nécessite l'assistance d'un microcode, alimentée par des valeurs obsolètes issues des blocs de mémoire MDS qui peuvent être contrôlés par un attaquant, conduisant ainsi à l'exécution spéculative de code arbitraire.

D'autres scénarios d'attaque ont été décrits par des chercheurs universitaires qui ont découvert le problème de manière indépendante et l'ont signalé à Intel pour la première fois en avril 2019. Bitdefender a signalé le problème à Intel le 10 février 2020. Leur réponse, en date du 25 février, reconnaissait le problème et indiquait qu'il serait divulgué au public le 10 mars 2020.

Quels sont les systèmes affectés ?

L'attaque LVI-LFB affecte les processus Intel les plus récents qui recourent à l'exécution spéculative.

Atténuation

Les stratégies d'atténuation des attaques matérielles par canal auxiliaire relèvent de plusieurs catégories, chacune ayant une certaine incidence opérationnelle sur les organisations.

  1. Mesures matérielles. Il s'agit de corrections directement intégrées au matériel ; cette stratégie ne s'applique qu'aux générations de processeurs conçues après l'identification des failles architecturales.
  2. Mesures logicielles. Il s'agit d'implémentations de correctifs qui fonctionnent entièrement dans les logiciels. L'isolation de la table des pages du noyau (KPTI) est un exemple de correctif qui protège la mémoire du noyau dans un espace d'adressage virtuel isolé, rendant ainsi inefficaces plusieurs attaques spéculatives par canal auxiliaire, telles que Meltdown. Toutefois, pour être efficace contre les attaques LVI-LFB entre applications, un nouveau type de KPTI (KPTI horizontal) est nécessaire. Parallèlement à cela, le système d'exploitation doit également vider les blocs de mémoire MDS (LFB en particulier) lors de la transition d'un mode moins privilégié vers un mode plus privilégié, afin d'éviter que les accès à la mémoire assistée par microcode s'exécutent spéculativement avec des données contrôlées par des attaquants.
  3. Microcode. Ces atténuations nécessitent une coopération entre le matériel et les logiciels. Le fournisseur de matériel fournit un correctif de microcode pour exposer de nouvelles fonctionnalités (par exemple, les mesures d'atténuation Spectre, L1TF ou MDS) qui sont ensuite utilisées par l'hyperviseur ou le(s) fournisseur(s) du système d'exploitation pour atténuer les vulnérabilités.
  4. Désactivation des fonctionnalités. Il est intéressant de désactiver l'hyper-threading sur les systèmes ayant un niveau de sécurité critique et de sérialiser toutes les opérations de chargement critiques utilisant l'instruction Ifence. D'autres mesures d'atténuation pourraient impliquer des modifications de compilateurs, afin de générer du code qui ne soit pas vulnérable à ce type d'attaques.

Une autre attaque par canal auxiliaire découverte par Bitdefender, l'attaque SWAPGS, peut être atténuée à l'aide de la technologie Bitdefender Hypervisor Introspection.

Crédits

L'équipe de recherche avancée de Bitdefender souhaite créditer les chercheurs qui ont en premier signalé ce problème à Intel en avril 2019, et les remercier pour leur coopération et leur collaboration jusqu'à la divulgation publique de ce problème et au-delà. Les chercheurs universitaires sont :

Jo Van Bulck, Daniel Moghimi, Michael Schwarz, Moritz Lipp, Marina Minkin, Daniel Genkin, Yuval Yarom, Berk Sunar, Daniel Gruss et Frank Piessens

Ces chercheurs ont créé un site Internet dédié et rédigé un article universitaire, disponibles aux adresses suivantes :

https://lviattack.eu/ (description détaillée du problème)

https://lviattack.eu/lvi.pdf (article universitaire)

D'autres informations sont également disponibles auprès d'Intel :

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00334.html (conseils)

https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection (approfondissement technique)