SWAPGS una nova vulnerabilitat d'execució especulativa

SWAPGS-exploit-2

Els investigadors de Bitdefender han identificat una nova vulnerabilitat en el mecanisme per a l'execució especulativa d'instruccions en processadors moderns, que van rebre el nom SWAPGS, que correspon a el nom de la instrucció de l'processador que causa el problema.

la vulnerabilitat permet que un atacant sense privilegis determini el contingut de les àrees de memòria de l'nucli o de les màquines virtuals en execució. El problema es confirma en els processadors Intel (x86_64) i afecta parcialment als processadors AMD per als quals no apareix el vector d'atac principal.

Els mètodes anti-vulnerabilitat Specter i Meltdown implementats prèviament no protegeixen contra els atacs SWAPGS utilitzant processadors Intel, però ja s'han proposat solucions per a Linux, ChromeOS, Android i Windows.

La vulnerabilitat pertany a la classe Specter v1 i es basa en la idea de recuperar dades de la memòria cau de l'processador que queda després de l'execució especulativa de les instruccions.

Els blocs de predicció de conversió de les CPU modernes utilitzen l'execució proactiva d'algunes instruccions, que és més probable que s'executin, per millorar el rendiment, però sense esperar el càlcul de tots els factors que determinen la seva execució (per exemple, quan les condicions de transició o els paràmetres d'accés encara no s'han calculat).

Si no es confirma el pronòstic, el processador descarta el resultat de l'execució especulativa, però les dades processades durant el mateix es dipositen a la memòria cau de l'processador i es poden restaurar utilitzant mètodes per determinar el contingut de la memòria cau a través de canals de tercers que analitzen el canvi en el temps d'accés a les dades emmagatzemades a la memòria cau i no emmagatzemats en memòria cau.

sobre SWAPGS

La peculiaritat d'el nou atac és l'ús d'una fugida que sorgeix durant l'execució especulativa de la instrucció SWAPGS, que s'utilitza en els sistemes operatius per a reemplaçar el valor de l'registre GS quan el control es transfereix d'l'espai de l'usuari a l'nucli de sistema operatiu (el valor GS utilitzat en l'espai de l'usuari es reemplaça pel valor utilitzat en les operacions de l'nucli) .

El nucli de Linux a GS emmagatzema el punter per_cpu, Que s'utilitza per accedir a les dades de l'nucli, i apunta TLS (Thread Local Storage) en l'espai de l'usuari.

Per excloure la doble invocació de la instrucció SWAPGS després de l'accés repetit a l'nucli des de l'espai de l'nucli o quan s'executa un codi que no requereix la substitució de l'registre GS, es realitza una comprovació i una transició condicional abans de la instrucció.

El mecanisme d'execució especulatiu s'avança a l'execució de l'codi amb la instrucció SWAPGS, sense esperar el resultat de la verificació, i si la branca seleccionada no es confirma, descarta el resultat.

Per tant, pot sorgir una situació quan una branca que especifica l'execució de SWAPGS es selecciona especulativament, Però durant l'execució especulativa el valor de l'registre GS serà canviat per la instrucció SWAPGS i es farà servir en operacions de memòria dependents que es dipositen a la memòria cau de la CPU.

Els investigadors van proposar dos escenaris d'atac per als quals es van preparar prototips de gestes.

  • El primer escenari es basa en la situació en la qual la instrucció SWAPGS no s'executa especulativament, encara que s'usa en l'execució real, i el segon escenari és el contrari, quan la instrucció SWAPGS s'executa especulativament, encara que en realitat no hauria.
  • Per a cada escenari, hi ha dues opcions operatives: l'atacant pot determinar el valor en una direcció específica en l'àrea de l'nucli i l'atacant pot buscar un valor específic en direccions aleatòries en el nucli.

La solució requereix la instal·lació d'una actualització de l'nucli tant en el sistema principal com en els entorns convidats, seguit d'un reinici de sistema. Per desactivar la protecció en Linux, es pot usar l'opció «nospectre_v1», que també deshabilita les mesures per bloquejar la vulnerabilitat SWAPGS.

La solució està disponible com un pegat per al nucli de Linux, Que ja està inclòs en les versions 4.19.65, 5.2.7, 4.14.137, 4.9.188 i 4.4.188, mentre que per a les diferents distribucions de Linux les correccions pertinents estaran arribant durant el lapse d'aquesta i la següent setmana .


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.