Nou atac asupra structurilor microarhitecturale ale procesoarelor Intel și AMD

Un grup de cercetători de la Universitatea Virginia și Universitatea din California a prezentat un nou tip de atac asupra structurilor microarhitecturale ale procesoarelor Intel și AMD, identificate în timpul ingineriei inverse a capabilităților CPU nedocumentate. Metoda de atac propusă implică utilizarea unui cache micro-op intermediar în procesoare, care poate fi folosit pentru a prelua informațiile acumulate în timpul execuției speculative a instrucțiunilor.

În scopuri de optimizare, procesorul începe să execute unele instrucțiuni în modul speculativ, fără a aștepta finalizarea calculelor anterioare, iar dacă apoi determină că predicția nu a fost justificată, dă înapoi operația la starea inițială, dar datele procesate în timpul execuția speculativă este depusă într-un cache, al cărui conținut poate fi determinat.

Se observă că noua metodă depășește semnificativ atacul Spectre v1, face atacul dificil de detectat și nu este blocată de metodele existente de protecție împotriva atacurilor pe canale laterale menite să blocheze vulnerabilitățile cauzate de execuția speculativă a instrucțiunilor (de exemplu, utilizarea a blocurilor de instrucțiuni LFENCE blochează scurgeri în ultimele etape de execuție speculativă, dar nu protejează împotriva scurgerilor prin structuri microarhitecturale).

Metoda afectează modelele de procesoare Intel și AMD lansate începând cu 2011, inclusiv seria Intel Skylake și AMD Zen. CPU-urile moderne împart instrucțiunile complexe ale procesorului în micro-operații mai simple, asemănătoare RISC, care sunt stocate în cache într-un cache separat. Acest cache este fundamental diferit de cache-urile de nivel superior, nu este direct accesibil și acționează ca un buffer de flux pentru acces rapid la rezultatele decodării instrucțiunilor CISC în microinstrucțiuni RISC. Cu toate acestea, cercetătorii au găsit o modalitate de a crea condiții care apar atunci când accesul cache-ului intră în conflict și permit cuiva să judece conținutul cache-ului de micro-operații prin analizarea diferențelor în timpul de execuție a anumitor acțiuni.

Nou atac asupra structurilor microarhitecturale ale procesoarelor Intel și AMD

Cache-ul de microoperații din procesoarele Intel este segmentat în raport cu firele CPU (Hyper-Threading), în timp ce procesoarele AMD Zen folosesc un cache partajat, care creează condiții pentru scurgerea datelor nu numai în cadrul unui fir de execuție, ci și între diferite fire în SMT (posibilă scurgere de date între codul care rulează pe diferite nuclee logice ale procesorului).

Cercetătorii au propus o metodă de bază pentru detectarea modificărilor în memoria cache a micro-operațiilor și mai multe scenarii de atac care permit crearea de canale ascunse de transmisie a datelor și utilizarea codului vulnerabil pentru a scurge date confidențiale, atât în ​​cadrul unui singur proces (de exemplu, pentru a scurge datele procesului la executare). cod terță parte în motoarele cu JIT și în mașinile virtuale) și între nucleu și procese din spațiul utilizatorului.

La organizarea unei variante a atacului Spectre folosind un cache de microoperații, cercetătorii au reușit să atingă performanțe de 965.59 Kbps cu o rată de eroare de 0.22% și 785.56 Kbps atunci când se folosește corectarea erorilor, în cazul organizării unei scurgeri în cadrul aceleiași adrese. spațiu și nivel de privilegii. Cu o scurgere care acoperă diferite niveluri de privilegii (între kernel și spațiu de utilizator), performanța a fost de 85.2 Kbps cu corecția erorilor adăugată și 110.96 Kbps cu o rată de eroare de 4%. La atacarea procesoarelor AMD Zen, creând o scurgere între diferite nuclee logice ale procesorului, performanța a fost de 250 Kbps cu o rată de eroare de 5.59% și 168.58 Kbps cu corectarea erorilor. În comparație cu metoda clasică Spectre v1, noul atac a fost de 2.6 ori mai rapid.

Este de așteptat ca protejarea împotriva unui atac de cache micro-op va necesita modificări care vor reduce performanța mai mult decât dacă ați activa protecția împotriva atacurilor Spectre. Ca compromis optim, se propune blocarea unor astfel de atacuri nu prin dezactivarea caching-ului, ci la nivelul monitorizării anomaliilor și identificării stărilor de cache tipice pentru atacuri.

Ca și în atacurile Spectre, organizarea unei scurgeri din nucleu sau din alte procese necesită executarea unei anumite secvențe de comenzi (gadget) pe partea proceselor victime, ceea ce duce la execuția speculativă a instrucțiunilor. Aproximativ 100 de gadget-uri similare au fost găsite în nucleul Linux, care vor fi eliminate, dar se găsesc periodic soluții pentru generarea lor, de exemplu, legate de rularea programelor BPF special concepute în nucleu.

Sursa: opennet.ru

Adauga un comentariu