informacionet për një klasë të re sulmesh (Load Value Injection, ) 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 (Microarchitectural Data Sampling), . 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 problemit një nivel të moderuar rreziku (5.6 nga 10) dhe 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 . Pavarësisht, në shkurt të këtij viti, kërkuesit nga kompania Bitdefender gjithashtu 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 , , , , dhe .
Dallimi kryesor 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.
Për në kodin e procesit-viktimë 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)
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 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 (, 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.

Burimi: opennet.ru
