LVI është një klasë e re e sulmeve ndaj mekanizmit të ekzekutimit spekulativ në CPU

Publikuar informacion rreth një klase të re sulmesh LVI (Injeksioni i vlerës së ngarkesës, CVE-2020-0551) në mekanizmin e ekzekutimit spekulativ në CPU-të Intel, të cilat mund të përdoren për të nxjerrë çelësa dhe të dhëna sekrete nga enklavat Intel SGX dhe procese të tjera.

Një klasë e re sulmesh bazohet në manipulimin e të njëjtave struktura mikroarkitekturore të përdorura në sulme MDS (Sampling të të dhënave mikroarkitekturore), Spectre dhe Meltdown. Në të njëjtën kohë, sulmet e reja nuk bllokohen nga metodat ekzistuese të mbrojtjes kundër Meltdown, Spectre, MDS dhe sulme të tjera të ngjashme. Mbrojtja efektive LVI kërkon ndryshime harduerike në CPU. Kur organizoni mbrojtjen në mënyrë programore, duke shtuar udhëzimin LFENCE nga përpiluesi pas çdo operacioni ngarkimi nga memoria dhe duke zëvendësuar udhëzimin RET me POP, LFENCE dhe JMP, regjistrohet shumë shpenzime - sipas studiuesve, mbrojtja e plotë e softuerit do të çojë në një ulje të performanca nga 2-19 herë.

Një pjesë e vështirësisë në bllokimin e problemit kompensohet nga fakti se sulmi është aktualisht më shumë teorik sesa praktik (sulmi është teorikisht i mundur, por shumë i vështirë për t'u zbatuar dhe i riprodhueshëm vetëm në teste sintetike).
Intel të përvetësuara problemi ka një nivel të moderuar rreziku (5.6 nga 10) dhe lëshuar përditësimi i firmuerit dhe SDK-së për mjedisin SGX, në të cilin u përpoq të bllokonte sulmin duke përdorur një zgjidhje. Metodat e propozuara të sulmit janë aktualisht të zbatueshme vetëm për procesorët Intel, por nuk përjashtohet mundësia e përshtatjes së LVI për procesorë të tjerë për të cilët aplikohen sulmet e klasës Meltdown.

Problemi u identifikua prillin e kaluar nga studiuesi Jo Van Bulck nga Universiteti i Leuven-it, pas së cilës, me pjesëmarrjen e 9 studiuesve nga universitetet e tjera, u zhvilluan pesë metoda bazë sulmi, secila prej të cilave lejon ekzistencën e metodave më specifike. Opsionet. Në mënyrë të pavarur, në shkurt të këtij viti, studiuesit nga Bitdefender gjithashtu Zbuluar një nga variantet e sulmit LVI dhe e raportoi atë tek Intel. Variantet e sulmit dallohen nga përdorimi i strukturave të ndryshme mikroarkitekturore, të tilla si buferi i ruajtjes (SB, Store Buffer), buferi mbushës (LFB, Line Fill Buffer), bufferi i ndërprerësit të kontekstit FPU dhe cache e nivelit të parë (L1D), të përdorura më parë në sulme të tilla si ZombieLoad, RIDL, Grindja, LazyFP, Parathënie и Meltdown.

LVI është një klasë e re e sulmeve ndaj mekanizmit të ekzekutimit spekulativ në CPU

Kryesorja nderon LVI kundër sulmeve MDS është se MDS manipulon përcaktimin e përmbajtjes së strukturave mikroarkitekturore që mbeten në cache pas trajtimit spekulativ të gabimeve ose ngarkimit dhe ruajtjes së operacioneve, ndërsa
Sulmet LVI lejojnë që të dhënat e sulmuesit të futen në strukturat mikroarkitekturore për të ndikuar në ekzekutimin e mëvonshëm spekulativ të kodit të viktimës. Duke përdorur këto manipulime, një sulmues mund të nxjerrë përmbajtjen e strukturave të të dhënave private në procese të tjera kur ekzekuton një kod të caktuar në bërthamën e CPU-së së synuar.

LVI është një klasë e re e sulmeve ndaj mekanizmit të ekzekutimit spekulativ në CPU

Për problemi i shfrytëzimit në kodin e procesit të viktimës duhet të takohen sekuenca të veçanta të kodit (gadgets) në të cilat ngarkohet një vlerë e kontrolluar nga sulmuesi, dhe ngarkimi i kësaj vlere shkakton hedhjen e përjashtimeve (defekt, ndërprerje ose ndihmë), duke hedhur poshtë rezultatin dhe duke ri-ekzekutuar instruksionin. Kur përpunohet një përjashtim, shfaqet një dritare spekulative gjatë së cilës rrjedhin të dhënat e përpunuara në vegël. Në veçanti, procesori fillon të ekzekutojë një pjesë të kodit (gadget) në modalitetin spekulativ, më pas përcakton që parashikimi nuk ishte i justifikuar dhe i kthen operacionet në gjendjen e tyre origjinale, por të dhënat e përpunuara gjatë ekzekutimit spekulativ depozitohen në cache L1D. dhe buffers mikroarkitekturor dhe është i disponueshëm për t'u marrë prej tyre me përdorimin e metodave të njohura për përcaktimin e të dhënave të mbetura përmes kanaleve të palëve të treta.

Përjashtimi "asist", ndryshe nga përjashtimi "fault", trajtohet nga brenda nga procesori pa thirrur mbajtësit e softuerit. Ndihma mund të ndodhë, për shembull, kur biti A (I aksesuar) ose D (Dirty) në tabelën e faqeve të kujtesës duhet të përditësohet. Vështirësia kryesore në kryerjen e një sulmi ndaj proceseve të tjera është se si të inicohet ndodhja e ndihmës duke manipuluar procesin e viktimës. Aktualisht nuk ka mënyra të besueshme për ta bërë këtë, por është e mundur që ato të gjenden në të ardhmen. Mundësia e kryerjes së një sulmi deri më tani është konfirmuar vetëm për enklavat Intel SGX, skenarët e tjerë janë teorikë ose të riprodhueshëm në kushte sintetike (kërkon shtimin e pajisjeve të caktuara në kod)

LVI është një klasë e re e sulmeve ndaj mekanizmit të ekzekutimit spekulativ në CPU

LVI është një klasë e re e sulmeve ndaj mekanizmit të ekzekutimit spekulativ në CPU

Vektorët e mundshëm të sulmit:

  • Rrjedhja e të dhënave nga strukturat e kernelit në procesin e nivelit të përdoruesit. Mbrojtja e kernelit Linux kundër sulmeve Spectre 1, si dhe mekanizmi mbrojtës SMAP (Supervisor Mode Access Prevention) zvogëlojnë ndjeshëm gjasat e një sulmi LVI. Shtimi i mbrojtjes shtesë në kernel mund të jetë i nevojshëm nëse në të ardhmen identifikohen metoda më të thjeshta të sulmit LVI.
  • Rrjedhja e të dhënave ndërmjet proceseve të ndryshme. Sulmi kërkon praninë e pjesëve të caktuara të kodit në aplikacion dhe përcaktimin e një metode për hedhjen e një përjashtimi në procesin e synuar.
  • Rrjedhja e të dhënave nga mjedisi pritës në sistemin e mysafirëve. Sulmi klasifikohet si shumë kompleks, që kërkon hapa të ndryshëm të vështirë për t'u zbatuar dhe parashikime të aktivitetit në sistem.
  • Rrjedhja e të dhënave ndërmjet proceseve në sisteme të ndryshme të ftuar. Vektori i sulmit është afër organizimit të rrjedhjes së të dhënave midis proceseve të ndryshme, por kërkon gjithashtu manipulime komplekse për të anashkaluar izolimin midis sistemeve të ftuar.

Botuar nga studiuesit несколько prototipe me një demonstrim të parimeve të kryerjes së një sulmi, por ato ende nuk janë të përshtatshme për kryerjen e sulmeve reale. Shembulli i parë ju lejon të ridrejtoni ekzekutimin spekulativ të kodit në procesin e viktimës, ngjashëm me programimin e orientuar drejt kthimit (R.O.P.,Programimi i orientuar drejt kthimit). Në këtë shembull, viktima është një proces i përgatitur posaçërisht që përmban pajisjet e nevojshme (zbatimi i një sulmi ndaj proceseve reale të palëve të treta është i vështirë). Shembulli i dytë na lejon të përfshihemi në llogaritjet gjatë kriptimit AES brenda enklavës Intel SGX dhe të organizojmë një rrjedhje të dhënash gjatë ekzekutimit spekulativ të udhëzimeve për të rivendosur vlerën e çelësit të përdorur për kriptim.


Burimi: opennet.ru

Shto një koment