AMD a dévoilé une nouvelle classe d'attaques microarchitecturales ciblant ses processeurs, appelée TSA (Transient Scheduler Attack). Cette attaque permet à un attaquant de contourner les mécanismes d'isolation du processeur et d'identifier les données traitées dans d'autres contextes, par exemple depuis l'espace utilisateur pour déterminer les informations traitées au niveau du noyau, ou depuis un invité pour connaßtre les données utilisées par un autre invité.
Les vulnérabilités ont été découvertes lors du développement d'une boßte à outils créée par des chercheurs de Microsoft et de l'ETH Zurich pour tester l'isolation microarchitecturale entre différentes zones de sécurité telles que le noyau, les machines virtuelles et les processus.
La mĂ©thode d'attaque repose sur la dĂ©pendance du temps d'exĂ©cution de certaines instructions Ă l'Ă©tat des structures microarchitecturales. Lorsque le processeur s'attend Ă une exĂ©cution rapide de l'instruction de lecture de donnĂ©es en mĂ©moire (par exemple, en supposant que les donnĂ©es se trouvent dans le cache L1), mais ne parvient pas Ă les obtenir, l'instruction est dĂ©clarĂ©e « fausse exĂ©cution ». Dans ce cas, avant mĂȘme de dĂ©terminer cet Ă©tat, le processeur peut planifier l'exĂ©cution spĂ©culative d'autres opĂ©rations dĂ©pendant du rĂ©sultat de l'exĂ©cution de l'instruction de chargement en mĂ©moire.
Le chargement n'Ă©tant pas terminĂ©, les donnĂ©es associĂ©es sont invalidĂ©es par le processeur et l'opĂ©ration de chargement est rĂ©pĂ©tĂ©e ultĂ©rieurement. Les opĂ©rations dĂ©pendantes sont Ă©galement rĂ©exĂ©cutĂ©es lorsque les donnĂ©es correctes sont disponibles. Cependant, le vidage du pipeline n'est pas effectuĂ© aprĂšs l'exĂ©cution de l'instruction pour laquelle la condition de « faux achĂšvement » est corrigĂ©e, et les donnĂ©es incorrectes peuvent ĂȘtre redirigĂ©es vers les opĂ©rations dĂ©pendantes.
L'exĂ©cution de telles opĂ©rations ne modifie pas l'Ă©tat du cache ni celui du TLB (Translation Lookaside Buffer), c'est-Ă -dire que les donnĂ©es ne peuvent pas ĂȘtre restaurĂ©es par les mĂ©thodes traditionnelles de dĂ©termination de l'Ă©tat du cache. Cependant, ces donnĂ©es affectent le temps d'exĂ©cution des autres instructions. L'analyse du temps d'exĂ©cution peut ĂȘtre utilisĂ©e comme source de fuite d'informations provenant des structures microarchitecturales subsistant aprĂšs l'exĂ©cution spĂ©culative d'autres opĂ©rations.
Selon la source dâextraction des donnĂ©es rĂ©siduelles, deux vulnĂ©rabilitĂ©s sont identifiĂ©es :
- CVE-2024-36350 (TSA-SQ â TSA Store Queue) â une fuite du tampon de stockage temporaire des opĂ©rations d'Ă©criture (Store Queue), permettant de dĂ©terminer le rĂ©sultat de l'Ă©criture des instructions en mĂ©moire.
- CVE-2024-36357 (TSA-L1 â Cache de donnĂ©es TSA L1) â fuite via le cache L1D.
Les vulnérabilités affectent la famille de processeurs AMD (Fam19h) basée sur les microarchitectures Zen 3 et Zen 4. Par exemple, le problÚme est présent sur les processeurs AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4 et AMD Ryzen Embedded 5000/7000/V3000.
Les modifications nécessaires pour corriger la vulnérabilité ont été intégrées à la mise à jour du microcode et au firmware d'initialisation de la plateforme (PI) de décembre, distribués aux équipementiers. Des correctifs visant à se prémunir contre cette vulnérabilité ont été soumis pour intégration au noyau. Linux (L'option de ligne de commande du noyau « tsa=off » permet de désactiver les protections qui affectent négativement les performances.) Un correctif a également été intégré à l'hyperviseur Xen. Le blocage de cette vulnérabilité nécessite une mise à jour du microcode et l'activation du mode de protection au niveau du noyau ou de l'hyperviseur.
Source: opennet.ru
