SWAPGS o nouă vulnerabilitate de execuție speculativă

SWAPGS-exploat-2

L Cercetătorii Bitdefender au identificat o nouă vulnerabilitate în mecanismul de execuție speculativă a instrucțiunilor în procesoarele moderne, care a primit numele SWAPGS, Un corespondent cu numele instrucțiunii procesorului care cauzează problema.

Vulnerabilitate permite unui atacator neprivilegiat să determine conținutul zonelor de memorie ale nucleului sau care rulează mașini virtuale. Problema este confirmată pe procesoarele Intel (x86_64) și afectează parțial procesoarele AMD pentru care nu apare vectorul de atac principal.

Metodele de vulnerabilitate Spectre și Meltdown implementate anterior nu protejează împotriva atacurilor SWAPGS folosind procesoare Intel, dar soluții pentru Linux, ChromeOS, Android și Windows au fost deja propuse.

Vulnerabilitatea aparține clasei Spectre v1 și se bazează pe ideea de recuperare a datelor din memoria cache a procesorului care rămâne după executarea speculativă a instrucțiunilor.

Blocurile de predicție de conversie ale procesorelor moderne folosesc execuția proactivă a unor instrucțiuni, care sunt mai susceptibile de a fi executate, pentru a îmbunătăți performanța, dar fără a aștepta calculul tuturor factorilor care determină execuția lor (de exemplu, atunci când instrucțiunile sunt condițiile de tranziție sau parametrii de acces nu au fost încă calculați).

Dacă prognoza nu este confirmată, procesorul renunță la rezultatul execuției speculative, dar datele procesate în timpul alergării sunt stocate în cache de către procesor și pot fi restaurate folosind metode pentru a determina conținutul cache-ului pe mai multe canale. schimbarea timpului de acces la datele cache și non-cache.

Despre SWAPGS

Particularitatea noului atac este utilizarea unei scurgeri care apare în timpul execuției speculative a instrucțiunii SWAPGS, care este utilizat în sistemele de operare pentru a înlocui valoarea registrului GS atunci când controlul este transferat din spațiul utilizatorului către nucleul sistemului de operare (valoarea GS utilizată în spațiul utilizatorului este înlocuită cu valoarea utilizată în operațiile nucleului).

Kernel-ul Linux în GS stochează pointerul per_cpu, care este utilizat pentru a accesa datele kernelului și indică spre TLS (Thread Local Storage) în spațiul utilizatorului.

Pentru a exclude invocarea dublă a instrucțiunii SWAPGS după acces repetat la nucleu din spațiul nucleului sau când se execută cod care nu necesită înlocuirea registrului GS, se efectuează o verificare și o tranziție condiționată înainte de instrucțiune.

Mecanismul de execuție speculativ precede executarea codului cu instrucțiunea SWAPGS, fără a aștepta rezultatul verificării și, dacă ramura selectată nu este confirmată, acesta aruncă rezultatul.

În consecință, poate apărea o situație atunci când o ramură care specifică executarea SWAPGS este selectată speculativ, dar în timpul execuției speculative, valoarea registrului GS va fi modificată de instrucțiunea SWAPGS și va fi utilizată în operațiile dependente de memorie care sunt stocate în cache de CPU.

Cercetătorii au propus două scenarii de atac pentru care s-au pregătit prototipuri de exploatare.

  • Primul scenariu se bazează pe situația în care instrucțiunea SWAPGS nu este executată speculativ, deși este utilizată în execuția efectivă, iar al doilea scenariu este opus, când instrucțiunea SWAPGS este executată speculativ, deși într-adevăr nu ar trebui.
  • Pentru fiecare scenariu, există două opțiuni operaționale: atacatorul poate determina valoarea într-o anumită adresă din zona de bază și atacatorul poate căuta o valoare specifică în adrese aleatorii din nucleu.

Soluția necesită instalarea unei actualizări de nucleu atât pe mediul gazdă, cât și pe cel de oaspeți, urmată de o repornire a sistemului. Pentru a dezactiva protecția în Linux, puteți utiliza opțiunea „nospectre_v1”, care dezactivează și măsurile de blocare a vulnerabilității SWAPGS.

Soluția este disponibilă ca un patch pentru kernel-ul Linux, care este deja inclus în versiunile 4.19.65, 5.2.7, 4.14.137, 4.9.188 și 4.4.188, în timp ce pentru diferitele distribuții Linux, soluțiile pertinente vor ajunge în perioada acestei și a săptămânii următoare.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.