LVI — njĂ« klasĂ« e re sulmesh ndaj mekanizmit tĂ« ekzekutimit spekulator nĂ« CPU

Janë bërë publike informacionet për një klasë të re sulmesh LVI (Load Value Injection, CVE-2020-0551) ndaj mekanizmit të ekzekutimit spekulator në CPU Intel, që mund të përdoren për organizimin e daljes së çelësave dhe të dhënave sekrete nga enklavat Intel SGX dhe proceset e tjera.

Kjo klasë e re sulmesh bazohet në manipulime me të njëjtat struktura mikroarkitekturale si në sulmet MDS (Microarchitectural Data Sampling), Spectre dhe Meltdown. Në këtë rast, sulmet e reja nuk bllokohen nga metodat ekzistuese të mbrojtjes nga Meltdown, Spectre, MDS dhe sulme të tjera të ngjashme. Për të siguruar mbrojtje efektive ndaj LVI nevojiten ndryshime harduerike në CPU. Duke organizuar mbrojtjen përmes softuerit, me shtimin e një udhëzimi LFENCE nga kompajleri pas çdo operacioni ngarkimi nga memoria dhe zëvendësimin e udhëzimit RET me POP, LFENCE dhe JMP, shkaktohen mbingarkesa të mëdha - sipas vlerësimeve të kërkuesve, mbrojtja e plotë softuerike do të çojë në një rënie të performancës nga 2 deri në 19 herë.

Pjesërisht, vështirësia e bllokimit të problemit kompensohet nga fakti se aktualisht sulmi ka më shumë karakter teorik se sa praktike (sulmi është teorikisht i mundur, por shumë i vështirë për t'u realizuar dhe i riprodhueshëm vetëm në teste sintetike).
Kompania Intel përcaktoi problemit një nivel të moderuar rreziku (5.6 nga 10) dhe ka lançuar një përditësim të firmware dhe SDK për mjedisin SGX, në të cilat përpiqeshin të bllokonin sulmin përmes një rruge tjetër. Metodat e propozuara të sulmit aktualisht janë të aplikueshme vetëm për procesorët Intel, por nuk përjashtohet mundësia e adapitimit të LVI edhe për procesorë të tjerë për të cilët janë të aplikueshme sulmet e klasës Meltdown.

Problemi u identifikua në prill të vitit të kaluar nga kërkuesi Jo Van Bulck nga Universiteti i Leuvenit, pas së cilës, me pjesëmarrjen e 9 kërkuesve të tjerë nga universitete të tjera, u zhvilluan pesë metoda bazë sulmesh, secila prej të cilave rregullon ekzistencën e varianteve më specifike variantesh. Pavarësisht, në shkurt të këtij viti, kërkuesit nga kompania Bitdefender gjithashtu zbuluan një nga variantet e sulmit LVI dhe e kanë raportuar atë në Intel. Variantet e sulmeve ndryshojnë për nga përdorimi i strukturave të ndryshme mikroarkitekturore, siç janë bufferi i ruajtjes (SB, Store Buffer), bufferi i mbushjes (LFB, Line Fill Buffer), bufferi i ndërrimit të kontekstit FPU dhe cache i nivelit të parë (L1D), që janë përdorur më parë në sulme si ZombieLoad, , por ndan burimin e rrjedhjes., Fallout, LazyFP, Foreshadow dhe Meltdown.

LVI - një klasë e re sulmesh ndaj mekanizmit të ekzekutimit spekullativ në CPU

Dallimi kryesor mes LVI dhe sulmeve MDS është se MDS manipulojnë definimin e përmbajtjes së strukturave mikroarkitekturore, që mbeten në cache pas trajtimit spekullativ të përjashtimeve (fault) ose operacioneve të ngarkimit dhe ruajtjes, ndërsa
sulmet LVI lejojnë zëvendësimin e të dhënave të sulmuesit në strukturat mikroarkitekturore për të ndikuar në ekzekutimin e mëtejshëm spekullativ të kodit të viktimës. Me ndihmën e këtyre manipulimeve, sulmuesi mund të nxjerrë përmbajtjen e strukturave të dhënash të mbyllura në procese të tjera gjatë ekzekutimit të një kodi të caktuar në bërthamën e synuar të CPU.

LVI - një klasë e re sulmesh ndaj mekanizmit të ekzekutimit spekullativ në CPU

Për eksploitimi i problemit në kodin e procesit-viktimë duhet të takohen sekuenca të veçanta kodi (gadgete), në të cilat ngarkohet një vlerë e kontrolluar nga sulmuesi, dhe ngarkimi i kësaj vlere shkakton shfaqjen e përjashtimeve (fault, abort ose assist), që hedhin rezultatet dhe ripërsërisin instrukcionin. Gjatë përpunimit të përjashtimit ndodh një dritare spekullative, gjatë së cilës ndodh rrjedhja e të dhënave të përpunuara në gadget. Në veçanti, procesori fillon të ekzekutojë në mënyrë spekulative një pjesë të kodit (gadget), më pas përcakton se parashikimi nuk e justifikon dhe rikthen operacionet në gjendjen e origjinës, por të dhënat e përpunuara gjatë ekzekutimit spekullativ qëndrojnë në cache L1D dhe bufferat mikroarkitekturore dhe janë të dispozita për t'u nxjerrë prej tyre duke përdorur metoda të njohura për përcaktimin e të dhënave mbetëse përmes kanaleve anësore.

Përjashtimi «assist», ndryshe nga «fault», trajtohet brenda procesorit pa thirrjen e përpunuesve të programit. Assist mund të ndodhë, për shembull, kur duhet të përditësohet bita A (Accessed) ose D (Dirty) në tabelën e faqeve të memories. Vështirësia kryesore për të kryer një sulm ndaj proceseve të tjera është se si të inicioni shfaqjen e assist, duke manipuluar procesin e viktimës. Aktualisht nuk ekzistojnë mënyra të sigurta për ta bërë këtë, por në të ardhmen nuk përjashtohet gjetja e tyre. Mundësia e kryerjes së një sulmi deri tani është konfirmuar vetëm për enclave-t Intel SGX, skenarët e tjerë janë teorik ose të riprodhueshëm në kushte sintetike (duhet shtuar në kod disa gadgets të caktuara)

LVI - një klasë e re sulmesh ndaj mekanizmit të ekzekutimit spekullativ në CPU

LVI - një klasë e re sulmesh ndaj mekanizmit të ekzekutimit spekullativ në CPU

Vektorët e mundshëm të sulmeve:

  • Shkarkimi i tĂ« dhĂ«nave nga strukturat e bĂ«rthamĂ«s nĂ« procesin e nivelit pĂ«rdorues. Mbrojtja ekzistuese nĂ« bĂ«rthamĂ«n Linux kundĂ«r sulmeve tĂ« klasĂ«s Spectre 1, si dhe mekanizmi i mbrojtes SMAP (Supervisor Mode Access Prevention), redukton ndjeshĂ«m probabilitetin e sulmit LVI. Shtimi i njĂ« mbrojtjeje tĂ« gjithanshme nĂ« bĂ«rthamĂ« mund tĂ« jetĂ« i nevojshĂ«m nĂ« rast se nĂ« tĂ« ardhmen zbulohen metoda mĂ« tĂ« lehta pĂ«r tĂ« kryer sulmin LVI.
  • Shkarkimi i tĂ« dhĂ«nave midis proceseve tĂ« ndryshme. PĂ«r sulmin kĂ«rkohet tĂ« ketĂ« disa fragmente kodi nĂ« aplikacion dhe pĂ«rcaktimi i metodĂ«s sĂ« formimit tĂ« pĂ«rjashtimit nĂ« procesin e targetuar.
  • Shkarkimi i tĂ« dhĂ«nave nga ambienti host nĂ« sistemin e mysafirĂ«ve. Sulmi Ă«shtĂ« nĂ« kategorinĂ« e atyre shumĂ« tĂ« komplikuara, qĂ« kĂ«rkojnĂ« realizimin e hapave tĂ« ndryshĂ«m tĂ« vĂ«shtirĂ« pĂ«r t'u realizuar dhe parashikimin e aktiviteve nĂ« sistem.
  • Shkarkimi i tĂ« dhĂ«nave midis proceseve nĂ« sisteme tĂ« ndryshme tĂ« mysafirĂ«ve. Vektori i sulmit Ă«shtĂ« i ngjashĂ«m me organizimin e shkarkimeve tĂ« tĂ« dhĂ«nave midis proceseve tĂ« ndryshme, por gjithashtu kĂ«rkon kryerjen e manipulimeve tĂ« komplikuara pĂ«r tĂ« anashkaluar izolimin midis sistemeve tĂ« mysafirĂ«ve.

Kërkuesit kanë publikuar disa prototipe me demonstruar parimet e kryerjes së sulmit, por ato ende nuk janë të përdorshme për realizimin e sulmeve reale. Shembulli i parë lejon që të ri-direktohet ekzekutimi spekulativ i kodit në procesin e viktimës në mënyrë të ngjashme me programimin e orientuar nga kthimi (ROP, Programimi i Orientuar ndaj Kthimit). Në këtë shembull, viktima është një proces i përgatitur në mënyrë të veçantë që përmban pajisjet e nevojshme (aplikimi i sulmit në procese të jashtme reale është i vështirësuar). Shembulli i dytë lejon ndërhyrjen në llogaritjet gjatë enkriptimit AES brenda enklavës Intel SGX dhe organizimin e rrjedhjes së të dhënave gjatë ekzekutimit spekullativ të instrukcioneve për të rikuperuar vlerën e përdorur për enkriptimin e çelësit.


Luaj videon

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster