Training Solo — noi variante de atac Spectre-v2 care afectează CPU Intel

Un grup de cercetători de la Universitatea Liberă din Amsterdam a identificat mai multe noi vulnerabilități de tip Spectre-v2, publicate sub numele de cod Training Solo, care permit ocolirea mecanismelor de izolare a memoriei. În contextul sistemelor de virtualizare, aceste vulnerabilități oferă posibilitatea de a determina conținutul memoriei mediului gazdă din sistemele gazdă, iar în contextul serverelor — de a determina conținutul memoriei kernel-ului în timpul execuției unui exploit în spațiul utilizatorului. Exemple de exploits pentru realizarea unor astfel de atacuri sunt disponibile pe GitHub. Exploiturile prezentate permit extragerea de date arbitrare din memoria kernel-ului cu o viteză de 17 KB/sec, iar din memoria hipervizorului — 8.5 KB/sec.

În atacurile de tip Spectre-v2, pentru a organiza scurgeri de date, se utilizează substituția valorilor în bufferul de adresare a ramificației (Branch Target Buffer) sau bufferul de istoric al tranzițiilor (Branch History Buffer), utilizate pentru prezicerea următoarei operațiuni de ramificație. Prin manipularea istoriei tranzițiilor, se creează condiții pentru o predicție greșită a tranziției în timpul execuției speculative a instrucțiunilor. Sarcina atacatorului este ca, în timpul execuției operațiunii speculative de ramificație, adresa pentru tranziție să fie luată din zona de memorie dorită. După efectuarea tranziției speculative, în cache-ul procesorului rămâne adresa citită din memorie (sub formă de adresă, datele necesare atacatorului sunt citite din memorie). Pentru extragerea informațiilor din cache poate fi utilizată una dintre metodele de determinare a conținutului cache-ului, bazată pe analiza modificărilor timpului de acces la datele cache-u și necache-u.

Metodele de atac Training Solo vizează ocolirea mecanismelor de izolare a domeniilor de execuție (domain isolation), cum ar fi IBPB, eIBRS și BHI_NO, utilizate pentru blocarea atacurilor de tip Spectre-v2. De exemplu, instrucțiunea IBPB (Indirect Branch Prediction Barriers) asigură resetarea stării blocului de prezicere a tranzițiilor la fiecare schimbare de context — atunci când controlul este transferat între spațiul utilizatorului și kernel sau între sistemul gazdă și mediul gazdă. Resetarea stării blochează posibilitatea utilizării codului propriu pentru a influența comportamentul blocului de prezicere a tranzițiilor indirecte.

Diferențele dintre metodele Training Solo constau în faptul că, pentru a influența blocul de predicție a tranzițiilor, se propune să nu se execute un cod controlat de atacator, ci să se utilizeze codul deja existent în zona privilegiată de execuție (nucleu sau hipervizor), din care atacatorul obține scurgeri. În rest, metodele sunt asemănătoare cu atacul clasic Spectre-v2. Pe lângă acest lucru, cercetătorii au identificat două probleme hardware (CVE-2024-28956 și CVE-2025-24495) care permit ocolirea completă a izolării zonelor de execuție și realizarea scurgerilor din procesele altor utilizatori, alte sisteme gazdă sau mediu de gazdă.

Training Solo - noi variante de atac Spectre-v2 care afectează CPU-urile Intel

Au fost propuse trei tipuri de atacuri Training Solo:

  • Distorsiunea logicii predicției tranzițiilor prin apelarea secvențelor de comenzi (gadgets) deja existente în nucleu, care influențează conținutul buffer-ului cu istoricul tranzițiilor. Ca gadgeturi, se propune utilizarea mecanismului de restricționare a accesului la apeluri sistemice SECCOMP, care permite, prin substituirea filter-elor BPF, atingerea unui salt indirect fals în modul speculativ (filter-ele în SECCOMP sunt definite folosind cBPF clasic, activat implicit spre deosebire de eBPF). La testarea pe CPU Intel Tiger Lake și Lion Cove, viteza scurgerii utilizând această metodă a fost de 1.7KB/sec.
  • Utilizarea coliziunilor IP (Instruction Pointer) în blocul de predicție a tranzițiilor. Atacatorul poate crea condiții în care adresa pentru săritura speculativă este aleasă doar pe baza adresei deja existente în buffer, fără a ține cont de istoricul tranzițiilor. Ideea este că o operațiune de salt indirect poate influența alta, dacă apare o coliziune în stocarea hash-urilor adreselor acestora în BTB (Branch Target Buffer).
  • Utilizarea influenței săriturilor directe asupra predicției săriturilor indirecte. Un astfel de comportament este cauzat de două vulnerabilități hardware: CVE-2024-28956 — ITS (Indirect Target Selection) și CVE-2025-24495 — o problemă în CPU Intel cu nuclee Lion Cove. Viteza scurgerii de date din memorie utilizând această metodă a fost de 17 KB/sec. În exploit-ul demonstrat pentru determinarea hash-ului parolei utilizatorului root, salvat în memorie după apelarea comenzii „passwd -s”, au fost necesare 60 de secunde.

Training Solo - noi variante de atac Spectre-v2 care afectează CPU-urile Intel

Atacurile care distorsionează istoricul cache-ului sunt vulnerabile pe toate CPU-urile Intel care suportă mecanismul eIBRS, inclusiv CPU-urile Intel Coffee Lake și Lion Cove. Pentru a bloca vulnerabilitatea, compania Intel a lansat o actualizare a microcodului cu implementarea unei noi instrucțiuni IBHF (Indirect Branch History Fence), care ar trebui specificată după codul care afectează istoricul cache-ului. Pentru vechile CPU-uri Intel, s-a propus utilizarea unei metode software pentru curățarea istoricului cache-ului. O modificare a fost acceptată în kernel-ul Linux, care adaugă metode software și hardware, protecia contra atacurilor, realizate folosind cBPF. Compania AMD a declarat că metoda de atac nu funcționează pe CPU-urile sale. Compania ARM a raportat că problema afectează doar vechile procesoare ARM, vulnerabile la atacurile Spectre-v2 și care nu suportă extensiile FEAT_CSV2_3 și FEAT_CLRBHB.

Vulnerabilitatea Indirect Target Selection (ITS, CVE-2024-28956) afectează CPU-urile Intel Core din generațiile 9-11 (Cascade Lake, Cooper Lake, Whiskey Lake V, Coffee Lake R, Comet Lake, Ice Lake, Tiger Lake și Rocket Lake) și Intel Xeon din generațiile 2-3. Vulnerabilitatea CVE-2025-24495 se manifestă în CPU-urile bazate pe microarhitecturile Lunar Lake și Arrow Lake. Problemele au fost remediate în actualizarea microcodului de ieri. O modificare a fost acceptată în kernel-ul Linux, care blochează problema prin mutarea salturilor indirecte în partea superioară a rândului de cache.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster