informacione mbi një klas të ri sulmesh (Load Value Injection, ) në mekanizmin e ekzekutimit spekulativ në CPU-të Intel, të cilat mund të përdoren për të organizuar rrjedhjen e çelësave dhe informacioneve sekrete nga enklavat Intel SGX dhe procese të tjera.
Klasa e re e sulmeve bazohet nĂ« manipulimin e tĂ« njĂ«jtave struktura mikroarkitekturore si nĂ« sulmet (Microarchitectural Data Sampling), SidoqoftĂ«, sulmet e reja nuk bllokohen nga metodat ekzistuese tĂ« mbrojtjes ndaj Meltdown, Spectre, MDS dhe sulmeve tĂ« tjera tĂ« ngjashme. PĂ«r tĂ« siguruar mbrojtje efektive ndaj LVI-s, kĂ«rkohen ndryshime nĂ« harduerin e CPU-sĂ«. NĂ«se organizohet mbrojtja nĂ« mĂ«nyrĂ« softuerike, pĂ«rmes shtimit tĂ« instruksioneve LFENCE nga kompajluesi pas çdo operacioni ngarkimi nga memoria dhe zĂ«vendĂ«simit tĂ« instruksionit RET me POP, LFENCE dhe JMP, regjistrohen njĂ« ngarkesĂ« tepĂ«r e madhe â sipas vlerĂ«simeve tĂ« hulumtuesve, mbrojtja e plotĂ« softuerike do tĂ« sjellĂ« njĂ« rĂ«nie tĂ« performancĂ«s nga 2-19 herĂ«.
Pjesërisht, vështirësia e bllokimit të problemit kompenzohet nga fakti që për momentin sulmi ka një karakter më tepër teorik sesa praktik (sulmi është teorikisht i mundshëm, por shumë i vështirë për t'u realizuar dhe është përsëritës vetëm në teste sintetike).
Kompania Intel problemit një nivel të moderuar rreziku (5.6 nga 10) dhe një përditësim të firmuerit dhe SDK për mjedisin SGX, në të cilin tentoi të bllokonte realizimin e sulmit me anë të një rruge anashkalimi. Metodat e sugjeruara të sulmit aktualisht janë të aplikueshme vetëm për procesorët Intel, por nuk përjashtohet mundësia e adaptimit të LVI-së dhe për procesorë të tjerë ndaj të cilëve janë të zbatueshme sulmet e klasës Meltdown.
Problemi u zbulua në prill të vitit të kaluar nga hulumtuesi Jo Van Bulck nga Universiteti i Leven, pas së cilës, me pjesëmarrjen e 9 hulumtuesve nga universitetet e tjera, u zhvilluan pesë metoda themelore të realizimit të sulmeve, të cilat lejojnë ekzistencën e varianteve më specifike. . Pavarësisht, në shkurt të këtij viti, hulumtuesit nga kompania Bitdefender gjithashtu një nga variantet e sulmit LVI dhe e raportuan atë në Intel. Variantet e sulmeve ndryshojnë në përdorimin e strukturave të ndryshme mikroarkitekturore, siç janë bufferi i ruajtjes (SB, Store Buffer), bufferi i mbushjes (LFB, Line Fill Buffer), bufferi i switch-it të kontekstit FPU dhe cache-në e nivelit të parë (L1D), të cilat janë përdorur më parë në sulme si , , , , dhe .
Dallimi kryesor sulmet LVI lejojnë përfshirjen e të dhënave nga sulmuesi në strukturat mikroarkitekturore për të ndikuar në përpunimin e ardhshëm spekulativ të kodit të viktimës. Me anë të këtyre manipulimeve, sulmuesi mund të nxjerrë përmbajtjen e strukturave të dhënash të mbyllura në procese të tjera gjatë ekzekutimit të një kodo të caktuar në bërthamat e CPU-së të synuara.
eksplorimit të problemit
Për duhet të përmbushen sekuenca speciale kodi (gadget) në të cilat ngarkohet një vlerë e kontrolluar nga sulmuesi, dhe ngarkimi i kësaj vlere çon në shfaqjen e përjashtimeve (fault, abort ose assist) që hedhin poshtë rezultatin dhe rishkruajnë instrukcionin. Gjatë përpunimit të përjashtimit ndodh një dritare spekulative, 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ë copë kodi (gadget), më pas përcakton se parashikimi nuk është realizuar dhe rikthen operacionet në gjendjen e saj të mëparshme, por të dhënat e përpunuara gjatë ekzekutimit spekulativ qëndrojnë në cache-në L1D dhe tamponët mikroarkitekturalë dhe janë të disponueshme për t'u nxjerrë nga to duke përdorur metoda të njohura të identifikimit të të dhënave mbetëse përmes kanaleve anësore.
Përjashtimi 'assist', ndryshe nga 'fault', përpunojë brenda procesorit pa apelimin e trajtuesve softuerikë. Assist mund të ndodhë, për shembull, kur kërkohet për të përmirësuar bitin A (Accessed) ose D (Dirty) në tabelën e faqeve të memories. Vështirësia kryesore e kryerjes së sulmit ndaj proceseve të tjera është se si të ngacmohet shfaqja e assist, duke manipuluar procesin viktimë. Aktualisht nuk ka mënyra të besueshme për ta bërë këtë, por në të ardhmen nuk përjashtohet që të gjenden. Mundësia e kryerjes së sulmit deri më tani është konfirmuar vetëm për enklavat Intel SGX, skenarët e tjerë janë të teorikshëm ose të riprodhueshëm në kushte sintetike (duhet të shtohet në kod disa gadget të veçanta)
Vektorë të mundshëm sulmesh:
- Shkalla e të dhënave nga strukturat thelbësore në procesin në nivelin e përdoruesit. Mbrojtja që ekziston në bërthamën Linux kundër sulmeve të klasës Spectre 1, si dhe mekanizmi i mbrojtjes SMAP (Mbrojtja e Qasjes në Modin Mbikëqyrës), ndihmojnë ndjeshëm në zvogëlimin e mundësisë së sulmit LVI. Një mbrojtje shtesë në bërthamë mund të kërkohet nëse zbulohet në të ardhmen metoda më të thjeshta për kryerjen e sulmit LVI.
- Shkalla e të dhënave ndërmjet proceseve të ndryshme. Për këtë sulm kërkohet që të ekzistojnë fragmente të caktuara kodi në aplikacion dhe të përcaktohet mënyra e formimit të përjashtimit në procesin e synuar.
- Shkalla e të dhënave nga mjedisi mikpritës në sistemin mysafir. Sulmi është klasifikuar si shumë i komplikuar, i cili kërkon kryerjen e hapave të ndryshëm të vështirë dhe parashikimin e aktiviteteve në sistem.
- Shkalla e të dhënave ndërmjet proceseve në sisteme të ndryshme mysafire. Vektori i sulmit është i ngjashëm me organizimin e shkallës së të dhënave ndërmjet proceseve të ndryshme, por kërkon gjithashtu kryerjen e manovrave të komplikuara për të kaluar përmes izolimit ndërmjet sistemeve mysafire.
Kërkuesit kanë publikuar me demostrimin e principeve të kryerjes së sulmit, por ato ende nuk janë të përshtatshme për kryerjen e sulmeve të vërteta. Shembulli i parë lejon të drejtohet ekzekutimi spekullativ i kodit në procesin viktimë, në mënyrë të ngjashme me programimin e orientuar nga kthimi (, Return-Oriented Programming). Në këtë shembull, procesi viktimë është një proces i përgatitur posaçërisht, që përmban gadgets të nevojshme (aplikimi i sulmit ndaj proceseve të jashtme është i vështirësuar). Shembulli i dytë lejon të ndërhyhet në llogaritjet gjatë enkriptimit AES brenda enklavës Intel SGX dhe të organizohet një shkallë të dhënash gjatë ekzekutimit spekullativ të instruksioneve për të rikuperuar vlerën e çelësit të përdorur për enkriptim.

Burimi: opennet.ru
