Vulnerabilitățile CPU au făcut furori recent, Zenbleed și Downfall fiind două recente. Dar cât de îngrijorat ar trebui să fii?
Vulnerabilitățile CPU au apărut și ieșit din știri în ultimii ani și adesea vin cu un mesaj destul de înfricoșător atunci când vine vorba de dezvăluirea lor. În cazul în care Zenbleed și Căderea, era că orice aplicație de pe computerul tău putea accesa memoria oricărui alt program care rulează în circumstanțe potrivite. Sună intens, nu?
Cu toate acestea, nu este chiar atât de rău pe cât pare. Este evident suficient de semnificativ pentru a garanta o dezvăluire și o actualizare a software-ului pentru a remedia erorile, chiar și cu prețul performanței, dar ce se întâmplă exact pentru a cauza aceste probleme de securitate? Ar trebui să fii îngrijorat?
Ar trebui să vă îngrijorați vulnerabilitățile CPU precum Zenbleed, Downfall și Inception?
Sincer să fiu, niciuna dintre aceste exploatări nu afectează marea majoritate a oamenilor. Deși pot scurge date de la un program la altul, orice program malware de pe computerul unui consumator are deja un nivel mare de acces pe care îl poate abuza. În schimb, unde aceste atacuri sunt deosebit de îngrijorătoare este în contextele cloud computing.
Pentru a înțelege problema, trebuie să înțelegeți că multe servere cloud diferite sunt pur și simplu computere cu o mulțime de cai putere, o lățime de bandă mare de rețea și un alt hardware specializat dacă necesar. Multe companii închiriază ceea ce se numește un VPS sau un server privat virtual, care sunt mașini virtualizate cu putere limitată spre care pot rula zeci de alte mașini virtuale.
Unde poate fi o problemă este că o persoană de pe o mașină virtuală ar putea executa una dintre acestea vulnerabilități, obținând o perspectivă asupra datelor care circulă prin procesor, inclusiv date de la alte persoane mașini virtuale. Acest lucru nu ar trebui să fie posibil și reprezintă o încălcare majoră a securității. De aceea, când a fost dezvăluit Zenbleed, existau deja patch-uri pentru procesoarele AMD Epyc, care vizează utilizarea serverului.
Cele mai severe vulnerabilități ale procesorului în prezent
Standardul industriei de „clasare” a vulnerabilităților și a gravității acestora este prin Common Vulnerability Scoring System (CVSS). Oferă o măsură cantitativă a severității, deoarece diferitele aspecte ale vulnerabilității vor afecta scorul. Măsoară luând în considerare următoarele:
- Vector de atac: Rețea/Adiacent/Local/Fizic
- Complexitatea atacului: Jos sus
- Privilegii necesare: Niciunul/Scăzut/Ridicat
- Interacțiunea utilizatorului: Niciunul/Necesar
- Domeniul de aplicare: Neschimbat/Modificat
- Confidențialitate: Niciunul/Scăzut/Ridicat
- Integritate: Niciunul/Scăzut/Ridicat
- Disponibilitate: Niciunul/Scăzut/Ridicat
Toate acestea clasifică gravitatea unei erori. De exemplu, o vulnerabilitate care poate fi executată într-o rețea cu o complexitate scăzută, fără privilegii necesare, fără interacțiune cu utilizatorul, cu un domeniu de aplicare modificat, scurgerea ridicată a confidențialității datelor, încălcarea ridicată a integrității datelor și impactul mare asupra disponibilității vor obține un scor perfect de 10 în CVSS 3.1, cel mai mare scor posibil.
După această măsură, putem evalua daunele de care sunt capabile Zenbleed și Downfall. Spoiler: Sunt aceleași, deși afectează procesoare diferite. Prin urmare, în timp ce ei punctează o anumită sumă în în contextul vulnerabilităților, acestea pot afecta diferite cantități de produse, iar asta nu le va afecta Scor. Scorurile CVSS sunt în esență doar pentru triaj, dar nu spun întreaga poveste.
Zenbleed: 6,5 (mediu)
- Vector de atac: Local
- Complexitatea atacului: Scăzut
- Privilegii necesare: Scăzut
- Interacțiunea utilizatorului: Nici unul
- Domeniul de aplicare: Schimbat
- Confidențialitate: Înalt
- Integritate: Nici unul
- Disponibilitate: Nici unul
Explicaţie: Vectorul de atac necesită acces local la mașină (ca în, rulează pe mașină), fără a avea nici un impact asupra integrității datelor de pe mașină sau asupra disponibilității acesteia. Cu toate acestea, schimbă domeniul de aplicare (însemnând că afectează resursele dincolo de privilegiile sale) și complexitatea atacului, iar privilegiile necesare pentru a fi executate sunt scăzute. De asemenea, încalcă total confidențialitatea informațiilor de pe mașină.
Cădere: 6,5 (medie)
- Vector de atac: Local
- Complexitatea atacului: Scăzut
- Privilegii necesare: Scăzut
- Interacțiunea utilizatorului: Nici unul
- Domeniul de aplicare: Schimbat
- Confidențialitate: Înalt
- Integritate: Nici unul
- Disponibilitate: Nici unul
Explicaţie: Vectorul de atac necesită acces local la mașină (ca în, rulează pe mașină), fără a avea nici un impact asupra integrității datelor de pe mașină sau asupra disponibilității acesteia. Cu toate acestea, schimbă domeniul de aplicare (însemnând că afectează resursele dincolo de privilegiile sale) și complexitatea atacului, iar privilegiile necesare pentru a fi executate sunt scăzute. De asemenea, încalcă total confidențialitatea informațiilor de pe mașină.
Inceput: 5,6 (mediu)
- Vector de atac: Local
- Complexitatea atacului: Înalt
- Privilegii necesare: Scăzut
- Interacțiunea utilizatorului: Nici unul
- Domeniul de aplicare: Schimbat
- Confidențialitate: Înalt
- Integritate: Nici unul
- Disponibilitate: Nici unul
Explicaţie: Vectorul de atac necesită acces local la mașină (ca în, rulează pe mașină), fără a avea nici un impact asupra integrității datelor de pe mașină sau asupra disponibilității acesteia. Cu toate acestea, schimbă domeniul de aplicare (înseamnă că afectează resursele dincolo de privilegiile sale), complexitatea atacului este mare și privilegiile necesare pentru a fi executate sunt scăzute. De asemenea, încalcă total confidențialitatea informațiilor de pe mașină.
Spectre: 5.6 (Mediu) (Corricit)
Spectre, în ciuda faptului că este un fenomen mai răspândit, de fapt punctează Mai puțin decât Zenbleed și Downfall. Acest lucru se datorează faptului că complexitatea atacului a fost numită „Ridicată”, ceea ce a scăzut scorul.
- Vector de atac: Local
- Complexitatea atacului: Înalt
- Privilegii necesare: Scăzut
- Interacțiunea utilizatorului: Nici unul
- Domeniul de aplicare: Schimbat
- Confidențialitate: Înalt
- Integritate: Nici unul
- Disponibilitate: Nici unul
Explicaţie: Vectorul de atac necesită acces local la mașină (ca în, rulează pe mașină), fără a avea nici un impact asupra integrității datelor de pe mașină sau asupra disponibilității acesteia. Cu toate acestea, schimbă domeniul de aplicare (înseamnă că afectează resursele dincolo de privilegiile sale), complexitatea atacului este mare și privilegiile necesare pentru a fi executate sunt scăzute. De asemenea, încalcă total confidențialitatea informațiilor de pe mașină.
Meltdown: 5,6 (Mediu) (Corectat)
La fel ca Spectre, Meltdown are scoruri mai mici decât Zenbleed și Downfall, datorită complexității mai mari ale atacurilor necesare.
- Vector de atac: Local
- Complexitatea atacului: Înalt
- Privilegii necesare: Scăzut
- Interacțiunea utilizatorului: Nici unul
- Domeniul de aplicare: Schimbat
- Confidențialitate: Înalt
- Integritate: Nici unul
- Disponibilitate: Nici unul
Explicaţie: Vectorul de atac necesită acces local la mașină (ca în, rulează pe mașină), fără a avea nici un impact asupra integrității datelor de pe mașină sau asupra disponibilității acesteia. Cu toate acestea, schimbă domeniul de aplicare (înseamnă că afectează resursele dincolo de privilegiile sale), complexitatea atacului este mare și privilegiile necesare pentru a fi executate sunt scăzute. De asemenea, încalcă total confidențialitatea informațiilor de pe mașină.
Cea mai mare cauză: predicția ramurilor
Sursa: AMD
Predicția de ramură și execuția speculativă se referă în general la momentul în care computerul efectuează operațiuni care nu sunt necesare în acest moment, dar vor fi în ciclurile ulterioare. Se face adesea în momentele în care sistemul dumneavoastră are resurse libere, deoarece accelerează procesarea generală atunci când instrucțiunile sau datele nu ar fi, altfel, încă pregătite pentru procesor. Dacă munca efectuată nu este necesară, aceasta este de obicei aruncată, iar procesorul poate sări înapoi acolo unde trebuie pentru a executa următoarea instrucțiune corectă. Când face acest lucru, aceasta se numește predicție greșită de ramură.
Pentru o înțelegere mai aprofundată a predictorilor de ramuri, imaginați-vă un scenariu în care un program adaugă în mod constant aceleași două numere în execuția sa. La un moment dat, procesorul poate recunoaște acest model și poate pregăti pașii următori în cazul în care metoda în care sunt adăugate acele două numere ar fi apelată din nou. Dacă acest rezultat se schimbă la un moment dat, chiar dacă procesorul a planificat ca aceleași două numere să fie aceleași, atunci presupunerea va fi eliminată și înlocuită cu fluxul de execuție real. Cu toate acestea, pentru momentul în care acele numere sunt la fel, atunci procesorul poate sări peste acele instrucțiuni rapid.
Există însă multe probleme când vine vorba de execuția speculativă, iar vulnerabilități precum Spectre, Zenbleed, Downfall și altele sunt rezultatul. Este o caracteristică puternică căreia îi datorăm o mulțime de performanțe moderne ale procesorului, dar este o țintă majoră atunci când cercetătorii caută vulnerabilități în procesoare.
Atenuare: un inhibitor de performanță
Atenuarea acestor vulnerabilități este de cea mai mare importanță, dar problema este că aceste atenuări sunt adesea impunătoare pentru performanță. În cazul celui mai recent Zenbleed de la AMD, atenuarea ar putea înregistra costuri de performanță masive.
Motivul pentru aceasta este că singura modalitate reală de a o evita este dezactivarea sau modificarea comportamentului predictorului de ramură din procesorul afectat. Aceeași atingere de performanță poate fi găsită în atenuările pentru căderea Intel, cu rapoarte timpurii care sugerează un impact asupra performanței de până la 39%. Jocuri epice cândva împărtășit celebru Grafice de utilizare a procesorului odată ce vulnerabilitatea Meltdown a fost dezvăluită și cât de mult impact au avut acele atenuări asupra utilizării procesorului companiei. A existat o creștere majoră a utilizării procesorului, așa cum era de așteptat. Unde lucrurile devin înfricoșătoare este cu remedierea pentru Inception de la AMD, s-a constatat că performanța a scăzut cu până la 54%.
Deoarece vulnerabilități ca aceasta afectează caracteristicile fundamentale ale procesorului, este greu să le remediați cu adevărat, în afară de dezactivarea sau deteriorarea severă a caracteristicilor de bază. Execuția speculativă este incredibil de importantă, iar aceste atenuări vor fi resimțite de mulți oameni. Performanța în jocuri este mai puțin previzibilă, așa că dacă utilizarea principală a computerului este jocurile, s-ar putea să fii în regulă, deoarece computerul tău nu poate face atât de multe predicții, dar aceste probleme se extind în mult mai mult sisteme.
Sunt viitoarele procesoare afectate?
Din fericire, atât în cazul Intel Downfall, cât și în cazul Zenbleed, aceste exploit-uri afectează procesoarele mai vechi. Procesoare mai noi de la ambele companii sunt în siguranță și nu este nimic de care să vă faceți griji pentru moment. O reproiectare semnificativă este de obicei cea care ajunge să rezolve aceste probleme. De exemplu, Spectre a afectat CPU-urile Intel din a opta și a noua generație, dar a noua generație a încorporat o versiune hardware a corecțiilor software care au fost implementate, complet cu lovitura de performanță. Generația a 10-a Intel era încă în siguranță, dar nici nu a mai avut un impact asupra performanței din cauza acelor măsuri de atenuare.
Drept urmare, având în vedere că atât Downfall, cât și Zenbleed au fost deja remediate în cele mai recente versiuni ale procesoarelor respective, utilizatorii nu au de ce să-și facă griji. Desigur, pot fi întotdeauna descoperite mai multe vulnerabilități, dar în acest moment, ești în siguranță.