Nou atac a les estructures microarquitectòniques dels processadors Intel i AMD

Un grup d'investigadors de la Universitat de Virgínia i la Universitat de Califòrnia va presentar un nou tipus d'atac a les estructures microarquitectòniques dels processadors Intel i AMD, identificats durant l'enginyeria inversa de les capacitats de la CPU no documentades. El mètode d'atac proposat implica l'ús d'una memòria cau intermèdia de microoperacions en els processadors, que es pot utilitzar per recuperar la informació acumulada durant l'execució especulativa d'instruccions.

Amb finalitats d'optimització, el processador comença a executar algunes instruccions en mode especulatiu, sense esperar que finalitzin els càlculs previs, i si aleshores determina que la predicció no estava justificada, torna l'operació al seu estat original, però les dades processades durant l'execució especulativa es diposita en una memòria cau, el contingut del qual es pot determinar.

S'observa que el nou mètode supera significativament l'atac Spectre v1, fa que l'atac sigui difícil de detectar i no està bloquejat pels mètodes de protecció existents contra atacs de canal lateral dissenyats per bloquejar vulnerabilitats causades per l'execució especulativa d'instruccions (per exemple, l'ús dels blocs d'instruccions LFENCE bloqueja les fuites en les últimes etapes d'execució especulativa, però no protegeix contra les fuites a través d'estructures microarquitectòniques).

El mètode afecta els models de processadors Intel i AMD llançats des del 2011, incloses les sèries Intel Skylake i AMD Zen. Les CPU modernes divideixen instruccions complexes del processador en microoperacions més simples semblants a RISC, que s'emmagatzemen a la memòria cau en una memòria cau separada. Aquesta memòria cau és fonamentalment diferent de la memòria cau de nivell superior, no és directament accessible i actua com a memòria intermèdia per a un accés ràpid als resultats de la descodificació d'instruccions CISC en microinstruccions RISC. Tanmateix, els investigadors han trobat una manera de crear condicions que sorgeixen quan l'accés a la memòria cau entra en conflicte i permet jutjar el contingut de la memòria cau de microoperacions mitjançant l'anàlisi de les diferències en el temps d'execució de determinades accions.

Nou atac a les estructures microarquitectòniques dels processadors Intel i AMD

La memòria cau de microoperacions dels processadors Intel està segmentada en relació amb els fils de la CPU (Hyper-Threading), mentre que els processadors AMD Zen utilitzen una memòria cau compartida, que crea condicions per a la fuga de dades no només dins d'un fil d'execució, sinó també entre diferents fils en SMT. (possible fuga de dades entre el codi que s'executa en diferents nuclis de CPU lògics).

Els investigadors han proposat un mètode bàsic per detectar canvis en la memòria cau de microoperacions i diversos escenaris d'atac que permeten crear canals de transmissió de dades ocults i utilitzar codi vulnerable per filtrar dades confidencials, ambdós dins d'un sol procés (per exemple, per filtrar dades del procés quan s'executa). codi de tercers en motors amb JIT i en màquines virtuals), i entre el nucli i els processos a l'espai d'usuari.

En organitzar una variant de l'atac Spectre mitjançant una memòria cau de microoperacions, els investigadors van poder aconseguir un rendiment de 965.59 Kbps amb una taxa d'error del 0.22% i 785.56 Kbps en utilitzar la correcció d'errors, en el cas d'organitzar una filtració dins de la mateixa adreça. espai i nivell de privilegi. Amb una filtració que abastava diferents nivells de privilegis (entre el nucli i l'espai d'usuari), el rendiment va ser de 85.2 Kbps amb correcció d'errors afegit i de 110.96 Kbps amb una taxa d'error del 4%. En atacar processadors AMD Zen, creant una filtració entre diferents nuclis de CPU lògics, el rendiment era de 250 Kbps amb una taxa d'error del 5.59% i 168.58 Kbps amb correcció d'errors. En comparació amb el mètode clàssic Spectre v1, el nou atac va ser 2.6 vegades més ràpid.

S'espera que la protecció contra un atac de memòria cau de microoperacions requereixi canvis que reduiran el rendiment més que si haguéssiu habilitat la protecció d'atac Spectre. Com a compromís òptim, es proposa bloquejar aquests atacs no desactivant l'emmagatzematge en memòria cau, sinó a nivell de monitorització d'anomalies i identificació dels estats de memòria cau que són típics dels atacs.

Com en els atacs Spectre, l'organització d'una filtració del nucli o d'altres processos requereix l'execució d'una determinada seqüència d'ordres (gadgets) al costat dels processos víctimes, donant lloc a l'execució especulativa d'instruccions. S'han trobat uns 100 gadgets similars al nucli de Linux, que s'eliminaran, però periòdicament es troben solucions per a la seva generació, per exemple, relacionades amb l'execució de programes BPF dissenyats especialment al nucli.

Font: opennet.ru

Afegeix comentari