LVI — une nouvelle classe d'attaques contre le mĂ©canisme d'exĂ©cution spĂ©culative dans le CPU

Renseignements publiĂ©s sur une nouvelle classe d'attaques LVI (Load Value Injection, CVE-2020-0551 ) sur le mĂ©canisme d'exĂ©cution spĂ©culative dans les processeurs Intel, qui peuvent ĂȘtre utilisĂ©s pour provoquer une fuite de clĂ©s et de donnĂ©es secrĂštes des enclaves Intel SGX et d'autres processus.Cette nouvelle classe d'attaques repose sur des manipulations des mĂȘmes structures microarchitecturales que celles des attaques

(Microarchitectural Data Sampling), MDS Spectre et Meltdown . Cependant, les nouvelles attaques ne peuvent pas ĂȘtre bloquĂ©es par les mĂ©thodes de protection existantes contre Meltdown, Spectre, MDS et autres attaques similaires. Pour assurer une protection efficace contre LVI, des modifications matĂ©rielles doivent ĂȘtre apportĂ©es aux processeurs. La mise en Ɠuvre d'une protection logicielle, en ajoutant une instruction LFENCE aprĂšs chaque opĂ©ration de chargement en mĂ©moire et en remplaçant l'instruction RET par POP, LFENCE et JMP, entraĂźne des coĂ»ts trop Ă©levĂ©s - selon les chercheurs, la protection logicielle complĂšte entraĂźnerait une baisse de performance allant de 2 Ă  19 fois.Partiellement, la difficultĂ© de bloquer ce problĂšme est compensĂ©e par le fait qu'Ă  l'heure actuelle, l'attaque a un caractĂšre plus thĂ©orique que pratique (elle est thĂ©oriquement possible, mais trĂšs difficile Ă  rĂ©aliser et ne peut ĂȘtre reproduite que dans des tests synthĂ©tiques).

a attribué
La sociĂ©tĂ© Intel un niveau de danger modĂ©rĂ© Ă  ce problĂšme (5.6 sur 10) et a publiĂ© une mise Ă  jour du micrologiciel et un SDK pour l'environnement SGX, dans lequel elle a tentĂ© de bloquer l'attaque par contournement. Les mĂ©thodes proposĂ©es d'attaque ne sont actuellement applicables qu'aux processeurs Intel, mais il n'est pas exclu que LVI soit adaptĂ© Ă  d'autres processeurs susceptibles d'ĂȘtre sujets aux attaques de type Meltdown. Le problĂšme a Ă©tĂ© identifiĂ© en avril de l'annĂ©e derniĂšre par le chercheur Jo Van Bulck de l'UniversitĂ© de Louvain, aprĂšs quoi, avec la participation de 9 chercheurs d'autres universitĂ©s, cinq mĂ©thodes de base pour effectuer des attaques ont Ă©tĂ© dĂ©veloppĂ©es, chacune admettant l'existence de variantes plus spĂ©cifiques.

Indépendamment, en février de cette année, des chercheurs de la société Bitdefender ont également détectél'une des variantes de l'attaque LVI et en ont informé Intel. Les variantes des attaques diffÚrent par l'utilisation de diverses structures microarchitecturales, telles que le tampon de stockage (SB, Store Buffer), le tampon de remplissage (LFB, Line Fill Buffer), le tampon de commutation de contexte FPU et le cache de premier niveau (L1D), précédemment utilisés dans des attaques telles que Fallout LazyFP ZombieLoad, RIDL, Foreshadow, Foreshadow, Préfiguré et Effondrement.

LVI - une nouvelle classe d'attaques sur le mécanisme d'exécution spéculative dans le CPU

La principale différence entre LVI et les attaques MDS est que MDS manipule la définition du contenu des structures microarchitecturales restantes dans le cache aprÚs un traitement spéculatif d'exceptions (fault) ou d'opérations de chargement et de stockage, tandis que
les attaques LVI permettent d'injecter des donnĂ©es de l'attaquant dans les structures microarchitecturales pour influencer l'exĂ©cution spĂ©culative ultĂ©rieure du code de la victime. GrĂące Ă  ces manipulations, l'attaquant peut extraire le contenu des structures de donnĂ©es privĂ©es dans d'autres processus lors de l'exĂ©cution d'un certain code sur le cƓur CPU cible.

LVI - une nouvelle classe d'attaques sur le mécanisme d'exécution spéculative dans le CPU

Pour exploitation du problĂšme dans le code du processus victime doivent apparaĂźtre des sĂ©quences de code particuliĂšres (gadgets), dans lesquelles une valeur contrĂŽlĂ©e par l'attaquant est chargĂ©e, et le chargement de cette valeur entraĂźne la levĂ©e d'exceptions (fault, abort ou assist), qui rejettent le rĂ©sultat et rĂ©exĂ©cutent l'instruction. Lors du traitement de l'exception, une fenĂȘtre spĂ©culative se crĂ©e, durant laquelle des donnĂ©es traitĂ©es dans le gadget fuient. En particulier, le processeur commence Ă  exĂ©cuter en mode spĂ©culatif un morceau de code (gadget), puis dĂ©termine que la prĂ©diction Ă©tait incorrecte et annule les opĂ©rations Ă  leur Ă©tat initial, mais les donnĂ©es traitĂ©es pendant l'exĂ©cution spĂ©culative s'accumulent dans le cache L1D et les tampons microarchitecturaux et sont accessibles pour ĂȘtre extraites au moyen de mĂ©thodes connues de dĂ©tection de donnĂ©es rĂ©siduelles par des canaux latĂ©raux.

L'exception « assist », contrairement Ă  la « fault », est traitĂ©e Ă  l'intĂ©rieur du processeur sans appel aux gestionnaires de logiciels. Une assist peut survenir, par exemple, lorsqu'il est nĂ©cessaire de mettre Ă  jour le bit A (Accessed) ou D (Dirty) dans la table des pages mĂ©moire. La principale difficultĂ© pour mener une attaque sur d'autres processus rĂ©side dans la maniĂšre d'initier la survenue d'une assist en manipulant le processus victime. Actuellement, aucune mĂ©thode fiable n'existe pour ce faire, mais il n'est pas exclu qu'elles soient dĂ©couvertes Ă  l'avenir. La possibilitĂ© de mener une attaque a jusqu'Ă  prĂ©sent Ă©tĂ© confirmĂ©e uniquement pour les enclaves Intel SGX, les autres scĂ©narios Ă©tant thĂ©oriques ou reproductibles dans des conditions synthĂ©tiques (des gadgets spĂ©cifiques doivent ĂȘtre ajoutĂ©s au code)

LVI - une nouvelle classe d'attaques sur le mécanisme d'exécution spéculative dans le CPU

LVI - une nouvelle classe d'attaques sur le mécanisme d'exécution spéculative dans le CPU

Vecteurs d'attaques possibles :

  • Fuite de donnĂ©es du noyau vers un processus au niveau utilisateur. La protection du noyau Linux contre les attaques de type Spectre 1, ainsi que le mĂ©canisme de protection SMAP (Supervisor Mode Access Prevention), rĂ©duisent considĂ©rablement le risque d'attaque LVI. Un ajout de protection dans le noyau peut ĂȘtre nĂ©cessaire Ă  l'avenir si des mĂ©thodes d'attaque LVI plus simples sont dĂ©couvertes.
  • Fuite de donnĂ©es entre diffĂ©rents processus. Une attaque nĂ©cessite la prĂ©sence de fragments de code spĂ©cifiques dans l'application et la dĂ©termination de la mĂ©thode de levĂ©e d'exception dans le processus cible.
  • Fuite de donnĂ©es de l'environnement hĂŽte vers le systĂšme invitĂ©. L'attaque est considĂ©rĂ©e comme trop complexe, nĂ©cessitant l'exĂ©cution de diverses Ă©tapes difficiles Ă  rĂ©aliser et des prĂ©visions d'activitĂ© au sein du systĂšme.
  • Fuite de donnĂ©es entre des processus dans diffĂ©rents systĂšmes invitĂ©s. Le vecteur d'attaque est similaire Ă  l'organisation d'une fuite de donnĂ©es entre diffĂ©rents processus, mais nĂ©cessite en plus l'exĂ©cution de manipulations complexes pour contourner l'isolation entre les systĂšmes invitĂ©s.

Des chercheurs ont publié plusieurs des prototypes démontrant les principes de l'attaque, mais ils ne sont pas encore utilisables pour réaliser de véritables attaques. Le premier exemple permet de diriger l'exécution spéculative du code dans le processus cible de maniÚre similaire à la programmation orientée sur le retour (ROP, Return-Oriented Programming). Dans cet exemple, le processus ciblé est préparé spécifiquement, contenant les gadgets nécessaires (l'application de l'attaque à de véritables processus tiers est difficile). Le deuxiÚme exemple permet de s'immiscer dans les calculs lors du chiffrement AES à l'intérieur de l'enclave Intel SGX et d'organiser une fuite de données durant l'exécution spéculative des instructions pour récupérer la valeur utilisée pour le chiffrement de la clé.


Lire la vidéo

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster