CROSSTalk - une vulnérabilité dans les processeurs Intel qui entraîne des fuites de données entre les cœurs

Une équipe de chercheurs de la Vrije Universiteit Amsterdam a identifié un nouveau vulnérabilité (CVE-2020-0543) dans les structures microarchitecturales des processeurs Intel, remarquable en ce qu'il permet de restaurer les résultats de l'exécution de certaines instructions exécutées sur un autre cœur de processeur. Il s'agit de la première vulnérabilité du mécanisme d'exécution d'instructions spéculatives qui permet des fuites de données entre des cœurs de processeur individuels (auparavant, les fuites étaient limitées à différents threads du même cœur). Les chercheurs ont nommé le problème CROSSTalk, mais Documents Intel La vulnérabilité est appelée SRBDS (Special Register Buffer Data Sampling).

La vulnérabilité concerne présenté il y a un an à la classe de problèmes MDS (Microarchitectural Data Sampling) et est basé sur l'application de méthodes d'analyse par canal secondaire aux données des structures microarchitecturales. le principe de fonctionnement CROSSTalk est proche de la vulnérabilité RIDL, mais diffère par la source de la fuite.
La nouvelle vulnérabilité manipule la fuite d'un tampon intermédiaire auparavant non documenté et partagé par tous les cœurs de processeur.

CROSSTalk - une vulnérabilité dans les processeurs Intel qui entraîne des fuites de données entre les cœurs

L'essence du problème est que certaines instructions du microprocesseur, notamment RDRAND, RDSEED et SGX EGETKEY, sont implémentées à l'aide de l'opération microarchitecturale interne SRR (Special Register Reads). Sur les processeurs concernés, les données renvoyées pour SRR sont déposées dans un tampon intermédiaire commun à tous les cœurs de processeur, après quoi elles sont transférées vers un tampon de remplissage associé au cœur de processeur physique spécifique sur lequel l'opération de lecture a été lancée. Ensuite, la valeur du tampon de remplissage est copiée dans des registres visibles par les applications.

La taille du tampon partagé intermédiaire correspond à la ligne de cache, qui est généralement plus grande que la taille des données en cours de lecture, et différentes lectures affectent différents décalages dans le tampon. Étant donné que le tampon partagé est entièrement copié dans le tampon de remplissage, non seulement la partie nécessaire à l'opération en cours est déplacée, mais également les données restantes des autres opérations, y compris celles effectuées sur d'autres cœurs de processeur.

CROSSTalk - une vulnérabilité dans les processeurs Intel qui entraîne des fuites de données entre les cœurs

CROSSTalk - une vulnérabilité dans les processeurs Intel qui entraîne des fuites de données entre les cœurs

Si l'attaque réussit, un utilisateur local authentifié dans le système peut déterminer le résultat de l'exécution des instructions RDRAND, RDSEED et EGETKEY dans un processus étranger ou à l'intérieur d'une enclave Intel SGX, quel que soit le cœur du processeur sur lequel le code est exécuté.
Des chercheurs qui ont identifié le problème ont publié Un prototype d'exploit démontrant la capacité de divulguer des informations sur des valeurs aléatoires obtenues via les instructions RDRAND et RDSEED pour récupérer une clé privée ECDSA traitée dans l'enclave Intel SGX après avoir effectué une seule opération de signature numérique sur le système.


problème sensible une large gamme de processeurs Intel pour ordinateurs de bureau, mobiles et serveurs, notamment Core i3, i5, i7, i9, m3, Celeron (séries J, G et N), Atom (séries C, E et X), Xeon (E3, E5, Familles E7, W et D), Xeon Scalable, etc. Il convient de noter qu'Intel a été informé de la vulnérabilité en septembre 2018 et qu'en juillet 2019, un prototype d'exploit a été fourni démontrant une fuite de données entre les cœurs du processeur, mais le développement d'un correctif a été retardé en raison de la complexité de sa mise en œuvre. La mise à jour du microcode proposée aujourd'hui résout le problème en modifiant le comportement des instructions RDRAND, RDSEED et EGETKEY pour écraser les données dans le tampon partagé afin d'empêcher les informations résiduelles de s'y installer. De plus, l'accès au tampon est suspendu jusqu'à ce que le contenu soit lu et réécrit.

Un effet secondaire de ce type de protection est une latence accrue lors de l'exécution de RDRAND, RDSEED et EGETKEY, et une réduction du débit lors de la tentative d'exécution de ces instructions simultanément sur différents processeurs logiques. L'exécution de RDRAND, RDSEED et EGETKEY suspend également l'accès à la mémoire des autres processeurs logiques. Ces fonctionnalités peuvent affecter négativement les performances de certaines applications serveur, c'est pourquoi le micrologiciel fournit un mécanisme (RNGDS_MITG_DIS) pour désactiver la protection des instructions RDRAND et RDSEED exécutées en dehors de l'enclave Intel SGX.

Source: opennet.ru

Ajouter un commentaire