Vulnérabilité des processeurs Intel entraînant une fuite de données via des canaux tiers

Un groupe de chercheurs d'universités chinoises et américaines a identifié une nouvelle vulnérabilité dans les processeurs Intel qui entraîne une fuite d'informations par des tiers sur le résultat d'opérations spéculatives, qui peuvent être utilisées, par exemple, pour organiser un canal de communication caché entre des processus ou identifier les fuites lors des attaques Meltdown.

L'essence de la vulnérabilité est qu'une modification dans le registre du processeur EFLAGS qui se produit à la suite d'une exécution spéculative d'instructions affecte le temps d'exécution ultérieur des instructions JCC (saut lorsque les conditions spécifiées sont remplies). Les opérations spéculatives ne se terminent pas et le résultat est rejeté, mais le changement EFLAGS rejeté peut être déterminé en analysant le temps d'exécution des instructions JCC. Les opérations de comparaison effectuées en mode spéculatif avant la transition, si elles réussissent, entraînent un léger retard qui peut être mesuré et utilisé comme signe pour la sélection du contenu.

Vulnérabilité des processeurs Intel entraînant une fuite de données via des canaux tiers

Contrairement à d'autres attaques similaires par canal secondaire, la nouvelle méthode n'analyse pas les changements de temps d'accès aux données mises en cache et non mises en cache et ne nécessite pas d'étape pour réinitialiser le registre EFLAGS à son état initial, ce qui rend difficile la détection et le blocage de l'attaque. À titre de démonstration, les chercheurs ont mis en œuvre une variante de l'attaque Meltdown, en utilisant une nouvelle méthode pour obtenir des informations sur le résultat d'une opération spéculative. Le fonctionnement de la méthode d'organisation des fuites d'informations lors de l'attaque Meltdown a été démontré avec succès sur des systèmes équipés d'un processeur Intel Core i7-6700 et i7-7700 dans un environnement avec Ubuntu 22.04 et le noyau Linux 5.15. Sur un système doté d'un processeur Intel i9-10980XE, l'attaque n'a été que partiellement menée.

La vulnérabilité Meltdown est basée sur le fait que lors de l'exécution spéculative d'instructions, le processeur peut accéder à une zone de données privée puis ignorer le résultat car les privilèges définis interdisent un tel accès au processus de l'utilisateur. Dans le programme, le bloc exécuté de manière spéculative est séparé du code principal par une branche conditionnelle qui, dans des conditions réelles, se déclenche toujours, mais du fait que l'instruction conditionnelle utilise une valeur calculée que le processeur ne connaît pas lors de l'exécution préemptive de le code, toutes les options de branchement sont exécutées de manière spéculative.

Dans la version classique de Meltdown, puisque le même cache est utilisé pour les opérations exécutées de manière spéculative comme pour les instructions normalement exécutées, il est possible lors de l'exécution spéculative de définir des marqueurs dans le cache qui reflètent le contenu des bits individuels dans une zone mémoire fermée, puis déterminer dans un code normalement exécuté leur signification grâce à l'analyse du temps d'accès aux données mises en cache et non mises en cache. La nouvelle variante utilise un changement dans le registre EFLAGS comme marqueur de fuite. Dans la démonstration du canal secret, un processus a modulé les données transmises pour créer les conditions permettant de modifier le contenu du registre EFLAGS, et un autre processus a analysé le changement du temps d'exécution de l'instruction JCC pour recréer les données transmises par le premier processus.

Source: opennet.ru

Ajouter un commentaire