S-a descoperit un nou atac side-channel LVI-LFB (Load Value Injection in the Line Fill Buffers) critic

Cercetătorii Bitdefender au identificat și au creat din nou o demonstrație de concept pentru un nou atac side-channel.

Atacul, denumit LVI-LFB (Load Value Injection in the Line Fill Buffers) permite atacatorilor să injecteze valori corupte (rogue) în anumite structuri micro-arhitecturale care sunt utilizate mai apoi de victimă, ceea ce poate duce la dezvăluirea datelor secrete, protejate, cu privire la drepturile de acces.

Acest nou atac (CVE-2020-0551) afectează versiunile recente de procesoare Intel care utilizează executare speculativă.

Scurtă prezentare generală

În încercarea de a crea procesoare tot mai rapide, furnizorii au implementat diferite versiuni de execuție speculativă. Această funcționalitate permite procesorului să facă presupuneri informate cu privire la anumite instrucțiuni care ar putea fi obligatorii înainte de a determina dacă sunt, într-adevăr, obligatorii. Această execuție speculativă poate lăsa urme în memoria cache, care pot fi utilizate de atacatori pentru a publica memoria kernel bazată pe drepturi de acces.

Ceea ce face ca cercetarea acestor atacuri să fie atât de avansată comparativ cu atacurile cibernetice care vizează vulnerabilitățile tradiționale este faptul că vizează principiile de bază după care operează procesoarele moderne. Pentru a efectua investigații adecvate, echipele de cercetare trebuie să înțeleagă foarte bine aspectele interne ale procesorului (predicția branch-urilor, execuție out-of-order, executare speculativă, pipeline și memorii cache), aspectele interne ale sistemului de operare (apeluri de sistem, gestionarea întreruperilor și a excepțiilor și KPTI) și atacurile side-channel și de execuție speculativă în general.

Impacul

Acest nou atac ar putea fi devastator în special în mediile cu mai multe instanțe și mai multe workload-uri care rulează pe hardware-ul partajat între grupurile de workload-uri dintr-o organizație sau între organizații, cum ar fi cloud-urile publice și private. Acest lucru se datorează faptului că, după cum arată PoC, există posibilitatea ca un proces cu mai puține drepturi de acces, controlat de un atacator, să acceseze în mod speculativ fluxul de control al unui proces cu drepturi superioare de acces atunci când se întrunesc anumite cerințe.

Principalul risc este furtul de date secrete, care ar trebui, de altfel, să fie păstrate secrete de limitările de securitate de la nivelul hardware-ului, hypervisorului și sistemului de operare. Aceste informații pot include orice, de la chei de criptare la parole și alte informații pe care un atacator le-ar putea extrage sau utiliza pentru a obține un control sporit asupra sistemului targetat.

Cum a fost descoperit și divulgat atacul LVI-LFB

Această nouă tehnică de atac se numește Injectare Load Value, iar CVE-ul care i-a fost atribuit este CVE-2020-0551.

Cercetătorii au analizat anterior MDS (Microarchitectural Data Sampling) dintr-o singură perspectivă; victima accesează informația secretă, care este încărcată în bufferele MDS, în timp ce conținutul bufferelor MDS este publicat de atacator prin emiterea unei instrucțiuni de încărcare ce necesită programe microcode assist (de exemplu, prin citirea unei adrese nevalide). Cu toate acestea, bufferele MDS pot fi, de asemenea, poate fi utilizat în mod abuziv și în cealaltă direcție; dacă un atacator introduce o anumită valoare în bufferele MDS, este posibil ca o victimă să încarce în mod speculativ respectiva valoare atunci când o instrucțiune de încărcare declanșează un astfel de program microcode assist (de exemplu, instrucțiunea de încărcare declanșează o eroare). Analizând cu atenție ce reprezintă Spectre și MDS, o persoană cu ochi ageri va identifica rapid principala cauză a noii vulnerabilități LVI-LFB; un branch indirect de memorie ce necesită un program căruia să îi fie furnizate valori nevalide de la bufferele MDS, care poate fi controlat de un atacator, ducând astfel la executarea speculativă de cod arbitrar.

Au fost descrise și alte scenarii de atac de către cercetătorii care au descoperit în mod independent și au raportat prima dată problema către Intel în aprilie 2019. Bitdefender a raportat problema către Intel pe 10 februarie 2020. În răspunsul pe care l-au oferit pe 25 februarie, au recunoscut problema și au spus că dezvăluirea publică va avea loc pe 10 martie 2020.

Ce sisteme sunt afectate?

Atacul LVI-LFB afectează versiunile mai noi de procesoare Intel care utilizează execuția speculativă.

Remediere

Strategiile de remediere pentru atacurile side-channel bazate pe hardware se încadrează în mai multe categorii, fiecare dintre ele având un anumit grad de impact operațional asupra organizațiilor.

  1. Hardware. Acestea sunt măsuri de remediere integrate direct în hardware și se aplică doar generațiilor de procesoare produse după ce au fost identificate erorile arhitecturale.
  2. Software. Acestea sunt implementări de patch-uri de securitate care funcționează exclusiv la nivelul software-ului. Kernel Page Table Isolation (KPTI) este un exemplu de remediere care protejează memoria kernel într-un spațiu izolat de adrese virtuale, care clasifică numeroase atacuri side-channel speculative, cum ar fi Meltdown, ca fiind ineficiente. Cu toate acestea, pentru a fi eficiente împotriva LVI-LFB de la aplicație la aplicație, e nevoie de un nou tip de KPTI – KPTI orizontal. Ca alternativă, sistemul de operare trebuie, de asemenea, să elimine bufferele MDS (în special LFB-urile) atunci când trece de la un mod cu mai puține drepturi de acces la un mod cu drepturi superioare de acces, pentru a împiedica accesările memoriei bazate pe programe microcode assist să se execute speculativ cu date controlate de atacator
  3. Microcod. Aceste remedieri necesită o cooperare între hardware și software. Furnizorul de hardware oferă un patch tip microcod pentru a expune noua funcționalitate (de exemplu, remedierile Spectre, L1TF sau MDS) care este mai apoi utilizat de furnizorii hypervisor-ului sau sistemului de operare pentru remedierea vulnerabilităților.
  4. Dezactivarea caracteristicilor. Dezactivarea caracteristicii hyperthreading este o idee bună în cazul sistemelor pentru care securitatea este de importanță critică, la fel ca serializarea tuturor operațiunilor critice de încărcare care utilizează instrucțiune lfence. Alte remedieri ar putea implica modificări ale programelor compiler pentru a genera cod care nu are vulnerabil la astfel de tipuri de atacuri.

Un alt atac side-channel care a fost descoperit de Bitdefender, Atacul SWAPGS poate fi remediat utilizând soluția Bitdefender Hypervisor Introspection.

Credite

Echipa Bitdefender de cercetare avansată ar dori să acorde meritele cercetătorilor care au raportat prima dată această problemă la Intel în aprilie 2019, și, de asemenea, ar vrea să le mulțumească pentru cooperarea și colaborarea de dinainte (și de după) dezvăluirea publică. Acești cercetători sunt:

Jo Van Bulck, Daniel Moghimi, Michael Schwarz, Moritz Lipp, Marina Minkin, Daniel Genkin, Yuval Yarom, Berk Sunar, Daniel Gruss și Frank Piessens

Acești cercetători au creat un site web dedicat și o lucrare academică detaliată care sunt disponibile la următoarele adrese:

https://lviattack.eu/ (o descriere detaliată a problemei)

https://lviattack.eu/lvi.pdf (un raport academic)

De asemenea, sunt disponibile informații suplimentare și de la Intel, după cum urmează:

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00334.html (consultativ)

https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection (analiză tehnică detaliată)