A fost prezentată o nouă clasă de vulnerabilități în procesoarele Intel

Compania Intel a publicat informații despre noua clasificare a vulnerabilităților în procesoarele sale — MDS (Microarchitectural Data Sampling). La fel ca atacurile anterioare din clasa Spectre, noile probleme pot duce la scurgeri de date confidențiale ale sistemului de operare, mașinilor virtuale și proceselor străine. Se susține că problemele au fost inițial identificate de angajații și partenerii Intel în timpul unui audit intern, după care informațiile despre probleme similare în Intel au fost transmise de cercetători independenți. Procesoarele AMD și ARM nu sunt afectate de aceste probleme.

Pe baza problemelor identificate de cercetătorii de la Universitatea Tehnică Graz (Austria) au fost dezvoltate mai multe atacuri practice prin canale laterale:

  • ZombieLoad (PDF) — permite extragerea informațiilor confidențiale din alte procese, sistemul de operare, mașinile virtuale și enclavele securizate (TEE, Trusted Execution Environment). De exemplu, a fost demonstrată posibilitatea de a determina istoricul paginilor deschise în browserul Tor, care rulează pe o altă mașină virtuală, precum și identificarea cheilor de acces și a parolelor utilizate în aplicații;


  • RIDL (PDF) — permite organizarea scurgerii de informații între diferite zone izolate din procesoarele Intel, cum ar fi buferele de umplere, buferele de stocare și porturile de încărcare. Exemple de realizare a atacului sunt prezentate pentru a organiza scurgeri din alte procese, sistemul de operare, mașinile virtuale și enclavele securizate. De exemplu, a fost demonstrat cum se poate obține conținutul hash-ului parolei root din /etc/shadow în urma unor încercări periodice de autentificare (atacul a durat 24 de ore);

    Redați video

    În plus, a fost prezentat un exemplu de atac folosind JavaScript și WebAssembly atunci când se deschide o pagină malițioasă în motorul SpiderMonkey (în browserele moderne complete, un astfel de atac este puțin probabil din cauza limitării preciziei temporizatorului și a măsurilor de protecție împotriva Spectre);

    Redați video
  • Fallout (PDF) — oferă posibilitatea de a citi date recent scrise de sistemul de operare și de a determina aranjarea memoriei OS pentru a facilita desfășurarea altor atacuri;
  • Store-To-Leak Forwarding — exploatează optimizările CPU pentru manipularea bufertului de stocare și poate fi utilizat pentru a ocoli mecanismul de randomizare a spațiului de adrese al nucleului (KASLR), pentru monitorizarea stării sistemului de operare sau pentru organizare scurgeri în combinație cu gadgeturile bazate pe metodele Spectre.

Identificate vulnerabilități:

  • CVE-2018-12126 — MSBDS (Microarchitectural Store Buffer Data Sampling), recuperarea conținutului bufferelor de stocare. Folosit în atacul Fallout. Gradul de pericol este evaluat la 6.5 puncte (CVSS);
  • CVE-2018-12127 — MLPDS (Microarchitectural Load Port Data Sampling), recuperarea conținutului porților de încărcare. Folosit în atacul RIDL. CVSS 6.5;
  • CVE-2018-12130 — MFBDS (Microarchitectural Fill Buffer Data Sampling), recuperarea conținutului bufferelor de umplere. Folosit în atacurile ZombieLoad și RIDL. CVSS 6.5;
  • CVE-2019-11091 — MDSUM (Microarchitectural Data Sampling Uncacheable Memory), recuperarea conținutului memoriei necacheabile. Folosit în atacul RIDL. CVSS 3.8.

Esenta problemelor identificate în utilizarea metodelor de analiză prin canale laterale asupra datelor din structuri microarhitecturale, la care aplicațiile nu au acces direct. Este vorba despre structuri de nivel inferior, cum ar fi bufferurile de umplere (Line Fill Buffer), bufferurile de stocare (Store Buffer) și porțiile de încărcare (Load Port), care sunt unități mai mici decât cache-ul de nivel 1 (L1D), cache-ul de încărcare a datelor (RDCL) sau L1TF (L1 Terminal Fault), și, prin urmare, conțin mai puține informații și sunt actualizate mai frecvent.

A fost prezentată o nouă clasă de vulnerabilități în procesoarele Intel

Atacurile prin canale laterale asupra structurilor microarhitecturale sunt semnificativ mai complexe de realizat față de metodele de recuperare a conținutului cache-ului și necesită urmărirea și analiza unor volume mari de date pentru a determina relația lor cu anumite adrese din memorie (în esență, atacatorul nu poate intercepta în mod țintit anumite date, ci poate acumula scurgeri pentru o perioadă îndelungată și aplica metode statistice pentru a reconstrui anumite tipuri de date). În plus, atacul afectează doar datele de pe același nucleu fizic CPU cu codul atacatorului.

Metodele propuse pentru determinarea conținutului structurilor microarhitecturale se bazează pe faptul că aceste structuri sunt utilizate în procesarea speculativă a excepțiilor (fault) sau a operațiunilor load și store.
În execuția speculativă, conținutul structurilor interne este redirecționat pentru procesare în registre sau cache. Operațiunile speculativă nu se finalizează și rezultatul este abandonat, dar conținutul redirectat poate fi determinat prin metode de analiză a cache-ului prin canale laterale.

Porțile de încărcare sunt utilizate de procesor pentru a obține date din memorie sau subsistemul de intrare/ieșire și pentru a furniza informațiile obținute în registrele CPU. Datorită specificului implementării, datele din operațiile vechi de încărcare rămân în porți până la suprascrierea acestora cu date noi, ceea ce permite determinarea indirectă a stării datelor în portul de încărcare prin manipulări cu excepții (fault) și instrucțiuni SSE/AVX/AVX-512 care încarcă mai mult de 64 de biți de date. În astfel de condiții, operațiile de încărcare speculativ exacerbează valori învechite ale datelor din structuri interne în operații dependente. O scurgere similară are loc prin bufferul de stocare, folosit pentru a accelera scrierea în cache-ul CPU și care include o tabelă de adrese, valori și steaguri, precum și prin bufferul de completare, care conține datele în absența acestora în cache-ul L1 (cache-miss), pe durata încărcării lor din cache-urile altor niveluri.

A fost prezentată o nouă clasă de vulnerabilități în procesoarele Intel

Problema implică modelele de procesoare Intel, produse din 2011 (începând cu generația 6). Totuși, vulnerabilitățile hardware sunt blocate începând cu anumite modele din generațiile 8 și 9 ale Intel Core și din generația 2 a Intel Xeon Scalable (se poate verifica prin bitul ARCH_CAP_MDS_NO în IA32_ARCH_CAPABILITIES MSR). Vulnerabilitățile au fost deja remediate la nivel de firmware, microcod și sisteme de operare. Conform estimărilor Intel, pierderea performanței după activarea corecției pentru majoritatea utilizatorilor nu depășește 3%. La dezactivarea tehnologiei Hyper-Threading, scăderea performanței poate ajunge la 9% în testul SPECint_rate_base, până la 11% în timpul calculelor întregi active și până la 19% la rularea aplicațiilor server Java (cu HT activ, scăderea performanței este practic inexistentă). Corecțiile au efecte minime asupra performanței operațiunilor legate de intrare/ieșire.

În nucleul Linux, protecția împotriva MDS a fost adăugată în actualizările de astăzi 4.19.43, 4.14.119 și 4.9.176. Metoda de protecție 5.1.2, 5.0.16,
se bazează se construiește în curățarea conținutului bufferelor de microarhitectură în momentul revenirii din nucleu în spațiul utilizatorului sau în timpul transferului controlului către sistemul gazdă, pentru care se utilizează instrucțiunea VERW. Pentru a funcționa, patch-urile necesită suport pentru modul MD_CLEAR, implementat în cea mai recentă actualizare a microcodului. De asemenea, se recomandă dezactivarea Hyper Threading pentru o protecție totală. Pentru a verifica susceptibilitatea sistemului la vulnerabilitate în nucleul Linux adăugat handler-ul „/sys/devices/system/cpu/vulnerabilities/mds”. Pentru a gestiona activarea diferitelor moduri de blocare a vulnerabilității în nucleu, s-a adăugat parametrul „mds=”, care poate accepta valorile „full”, „full,nosmt” (dezactivarea Hyper-Threads), „vmwerv” și „off”.

Actualizările pachetelor au fost deja lansate pentru RHEL și Ubuntu, dar rămân în continuare indisponibile pentru Debian, Fedora și SUSE.
Patch-ul pentru blocarea scurgerilor de date din mașinile virtuale de asemenea formatat pentru hypervisorul Xen. Pentru a proteja sistemele de virtualizare care efectuează apelul comenzii L1D_FLUSH înainte de a transfera controlul către o altă mașină virtuală, și pentru a proteja enclavele Intel SGX, este suficientă actualizarea microcodului.

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