Un groupe de chercheurs de l'Université Libre d'Amsterdam a découvert une nouvelle vulnérabilité (CVE-2020-0543) dans les structures microarchitecturales des processeurs Intel, notable car elle permet de récupérer les résultats d'exécution de certaines instructions exécutées sur un autre cœur de CPU. Il s'agit de la première vulnérabilité du mécanisme d'exécution spéculative d'instructions permettant une fuite de données entre différents cœurs de CPU (auparavant, les fuites étaient limitées à différents threads d'un même cœur). Les chercheurs ont nommé ce problème CROSSTalk, mais dans la vulnérabilité est mentionnée sous le nom de SRBDS (Special Register Buffer Data Sampling).
Cette vulnérabilité est liée à il y a un an et repose sur l'application de méthodes d'analyse par canaux auxiliaires sur des données dans des structures microarchitecturales. de CROSSTalk est similaire à la vulnérabilité , mais se distingue par la source de la fuite.
La nouvelle vulnérabilité manipule la fuite d'un tampon intermédiaire précédemment non documenté, utilisé de manière commune par tous les cœurs de CPU.
est que certaines instructions du microprocesseur, notamment RDRAND, RDSEED et SGX EGETKEY, sont mises en œuvre via une opération interne microarchitecturale SRR (Special Register Reads). Sur les processeurs vulnérables, les données retournées pour SRR s'accumulent dans un tampon intermédiaire, commun à tous les cœurs de CPU, avant d'être transférées dans un tampon de remplissage lié à un cœur physique spécifique de CPU sur lequel l'opération de lecture a été initiée. Ensuite, depuis le tampon de remplissage, la valeur est copiée dans des registres visibles par les applications.
La taille du tampon intermédiaire partagé correspond à la ligne de cache, ce qui est généralement supérieur à la taille des données lues, et différentes opérations de lecture affectent différents décalages dans le tampon. Étant donné que le tampon partagé est copié dans le tampon de remplissage dans son intégralité, non seulement la portion requise pour l'opération actuelle est déplacée, mais également les données restantes d'autres opérations, y compris celles exécutées sur d'autres cœurs de CPU.
En cas d'organisation réussie d'une attaque, un utilisateur local authentifié dans le système peut déterminer le résultat d'exécution des instructions RDRAND, RDSEED et EGETKEY dans un autre processus ou à l'intérieur d'un enclave Intel SGX, indépendamment du cœur de CPU sur lequel le code est exécuté.
Les chercheurs ayant identifié le problème un prototype d'exploit démontrant la possibilité d'une fuite d'informations sur des valeurs aléatoires obtenues via les instructions RDRAND et RDSEED, pouvant restaurer une clé secrète ECDSA traitée dans l'enclave Intel SGX, après une seule opération de signature numérique effectuée dans le système.

Le problème un large éventail de processeurs Intel de bureau, mobiles et serveurs, y compris les gammes Core i3, i5, i7, i9, m3, Celeron (séries J, G et N), Atom (séries C, E et X), Xeon (familles E3, E5, E7, W et D), Xeon Scalable, etc. Il est à noter qu'Intel a été informé de la vulnérabilité en septembre 2018, et en juillet 2019, un prototype d'exploit démontrant la fuite de données entre les cœurs CPU a été fourni, mais le développement d'un correctif a été retardé en raison de la complexité de sa mise en œuvre. Dans la mise à jour du microcode proposée aujourd'hui, le problème est contourné en modifiant le comportement des instructions RDRAND, RDSEED et EGETKEY pour écrire des données redondantes dans le tampon partagé, évitant ainsi l'accumulation d'informations résiduelles. De plus, l'accès au tampon a été suspendu jusqu'à ce que les opérations de lecture et de réécriture du contenu soient terminées.
Un effet secondaire de cette protection est l'augmentation des latences lors de l'exécution de RDRAND, RDSEED et EGETKEY, et la réduction de la bande passante lors de l'exécution simultanée de ces instructions sur différents processeurs logiques. L'exécution de RDRAND, RDSEED et EGETKEY suspend également l'accès à la mémoire depuis d'autres processeurs logiques. Ces caractéristiques peuvent avoir un impact négatif sur les performances de certaines applications serveur, c'est pourquoi le firmware inclut 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
