Un atac TSA a dezvăluit scurgeri de informații din structurile microarhitecturale ale procesoarelor AMD

AMD a dezvăluit o nouă clasă de atacuri microarhitecturale asupra procesoarelor sale, numite TSA (Transient Scheduler Attack). Atacul permite unui atacator să ocolească mecanismele de izolare a procesorului și să determine datele procesate în alte contexte, cum ar fi din spațiul utilizatorului pentru a determina informațiile procesate la nivel de kernel sau de la un guest pentru a afla date utilizate în alt guest.

Vulnerabilitățile au fost descoperite în timpul dezvoltării unui set de instrumente creat de cercetătorii de la Microsoft și ETH Zurich pentru a testa la stres izolarea microarhitecturală între diferite zone de securitate, cum ar fi kernelul, mașinile virtuale și procesele.

Metoda de atac se bazează pe dependența timpului de execuție al unor instrucțiuni de starea structurilor microarhitecturale. Atunci când procesorul așteaptă o finalizare rapidă a instrucțiunii de citire a datelor din memorie (de exemplu, presupunând că datele se află în memoria cache L1), dar nu reușește să obțină cu succes datele, apare o stare de „finalizare falsă” a instrucțiunii. În acest caz, chiar înainte de a determina această stare, procesorul poate programa execuția speculativă a altor operațiuni care depind de rezultatul executării instrucțiunii de încărcare din memorie.

Deoarece încărcarea nu a fost finalizată, datele asociate acesteia sunt invalidate de procesor, iar operațiunea de încărcare este repetată ulterior. Operațiunile dependente sunt, de asemenea, reexecutate atunci când datele corecte sunt gata. Cu toate acestea, golirea conductei nu se efectuează după execuția instrucțiunii pentru care este corectată condiția de „finalizare falsă”, iar datele incorecte pot fi redirecționate către operațiuni dependente.

Executarea unor astfel de operațiuni nu modifică starea memoriei cache și a TLB-ului (Translation Lookaside Buffer), adică datele nu pot fi restaurate folosind metodele tradiționale de determinare a stării memoriei cache. Însă aceste date afectează timpul de execuție al altor instrucțiuni. Analiza timpului de execuție poate fi utilizată ca sursă de scurgere a informațiilor din structurile microarhitecturale rămase după execuția speculativă a altor operațiuni.

În funcție de sursa extragerii datelor reziduale, se identifică două vulnerabilități:

  • CVE-2024-36350 (TSA-SQ — TSA Store Queue) — o scurgere din bufferul temporar de stocare a operațiunilor de scriere (Store Queue), permițând determinarea rezultatului scrierii instrucțiunilor în memorie.
  • CVE-2024-36357 (TSA-L1 — Memorie cache de date TSA L1) — scurgere prin memoria cache L1D.

Vulnerabilitățile apar în familia de procesoare AMD (Fam19h) bazate pe microarhitecturile Zen 3 și Zen 4. De exemplu, problema este prezentă în seria de procesoare 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, AMD Ryzen Embedded 5000/7000/V3000.

Modificările necesare pentru a bloca vulnerabilitatea au fost incluse în actualizarea microcodului din decembrie și în firmware-ul Platform Initialization (PI) lansat pentru producătorii de echipamente originale (OEM). Corecturi pentru a proteja împotriva vulnerabilității au fost trimise pentru includere în kernel. Linux (Opțiunea din linia de comandă a kernelului „tsa=off” este furnizată pentru a dezactiva protecția care are un impact negativ asupra performanței.) De asemenea, a fost adăugată o remediere la hipervizorul Xen. Blocarea vulnerabilității necesită atât o actualizare a microcodului, cât și activarea modului de protecție la nivel de kernel sau hipervizor.

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster