Sulm i ri në strukturat mikroarkitekturore të procesorëve Intel dhe AMD

Një grup studiuesish nga Universiteti i Virxhinias dhe Universiteti i Kalifornisë prezantuan një lloj të ri sulmi ndaj strukturave mikroarkitekturore të procesorëve Intel dhe AMD, të identifikuar gjatë inxhinierisë së kundërt të aftësive të padokumentuara të CPU. Metoda e propozuar e sulmit përfshin përdorimin e një cache të ndërmjetme mikro-op në procesorë, i cili mund të përdoret për të tërhequr informacionin e grumbulluar gjatë ekzekutimit spekulativ të instruksioneve.

Për qëllime optimizimi, procesori fillon të ekzekutojë disa udhëzime në modalitetin spekulativ, pa pritur që të përfundojnë llogaritjet e mëparshme, dhe nëse më pas konstaton se parashikimi nuk ishte i justifikuar, ai e kthen operacionin në gjendjen e tij origjinale, por të dhënat e përpunuara gjatë ekzekutimi spekulativ depozitohet në një cache, përmbajtja e së cilës mund të përcaktohet.

Vihet re se metoda e re tejkalon ndjeshëm sulmin Spectre v1, e bën sulmin të vështirë për t'u zbuluar dhe nuk bllokohet nga metodat ekzistuese të mbrojtjes kundër sulmeve të kanaleve anësore, të dizajnuara për të bllokuar dobësitë e shkaktuara nga ekzekutimi spekulativ i udhëzimeve (për shembull, përdorimi i udhëzimit LFENCE bllokon rrjedhjet në fazat e fundit të ekzekutimit spekulativ, por nuk mbron nga rrjedhjet përmes strukturave mikroarkitekturore).

Metoda prek modelet e procesorëve Intel dhe AMD të lëshuara që nga viti 2011, duke përfshirë seritë Intel Skylake dhe AMD Zen. CPU-të moderne thyejnë udhëzimet komplekse të procesorit në mikrooperacione më të thjeshta të ngjashme me RISC, të cilat ruhen në një memorie të veçantë. Ky cache është thelbësisht i ndryshëm nga memoriet e nivelit më të lartë, nuk është drejtpërdrejt i aksesueshëm dhe vepron si një tampon rrjedhës për qasje të shpejtë në rezultatet e dekodimit të udhëzimeve CISC në mikroinstruksionet RISC. Megjithatë, studiuesit kanë gjetur një mënyrë për të krijuar kushte që lindin kur qasja në cache konflikton dhe lejojnë që dikush të gjykojë përmbajtjen e cache-it të mikrooperacionit duke analizuar ndryshimet në kohën e ekzekutimit të veprimeve të caktuara.

Sulm i ri në strukturat mikroarkitekturore të procesorëve Intel dhe AMD

Memoria e mikro-operacionit në procesorët Intel është e segmentuar në lidhje me temat e CPU-së (Hyper-Threading), ndërsa procesorët AMD Zen përdorin një memorie të përbashkët, e cila krijon kushte për rrjedhje të të dhënave jo vetëm brenda një filli ekzekutimi, por edhe midis fijeve të ndryshme në SMT (rrjedhje e mundshme e të dhënave midis kodit që ekzekutohet në bërthama të ndryshme logjike të CPU).

Studiuesit kanë propozuar një metodë bazë për zbulimin e ndryshimeve në cache-in e mikro-operacionit dhe disa skenarë sulmi që lejojnë krijimin e kanaleve të fshehta të transmetimit të të dhënave dhe përdorimin e kodit të cenueshëm për të nxjerrë të dhëna konfidenciale, si brenda një procesi të vetëm (për shembull, për të nxjerrë të dhënat e procesit gjatë ekzekutimit kodi i palës së tretë në motorët me JIT dhe në makinat virtuale), dhe midis kernelit dhe proceseve në hapësirën e përdoruesit.

Kur organizuan një variant të sulmit Spectre duke përdorur një memorie mikro-operacioni, studiuesit ishin në gjendje të arrinin performancën prej 965.59 Kbps me një shkallë gabimi prej 0.22% dhe 785.56 Kbps kur përdorni korrigjimin e gabimit, në rastin e organizimit të një rrjedhjeje brenda të njëjtës adresë. hapësirë ​​dhe nivel privilegji. Me një rrjedhje që përfshin nivele të ndryshme privilegjesh (midis kernelit dhe hapësirës së përdoruesit), performanca ishte 85.2 Kbps me korrigjim gabimi të shtuar dhe 110.96 Kbps me një shkallë gabimi prej 4%. Kur sulmoni procesorët AMD Zen, duke krijuar një rrjedhje midis bërthamave të ndryshme logjike të CPU-së, performanca ishte 250 Kbps me një shkallë gabimi prej 5.59% dhe 168.58 Kbps me korrigjim gabimi. Krahasuar me metodën klasike Spectre v1, sulmi i ri ishte 2.6 herë më i shpejtë.

Pritet që mbrojtja kundër një sulmi të cache-it të mikro-op do të kërkojë ndryshime që do të ulin performancën më shumë sesa nëse aktivizoni mbrojtjen e sulmit Spectre. Si një kompromis optimal, propozohet të bllokohen sulme të tilla jo duke çaktivizuar cachimin, por në nivelin e monitorimit të anomalive dhe identifikimit të gjendjeve të cache-së që janë tipike për sulmet.

Ashtu si në sulmet Spectre, organizimi i një rrjedhjeje nga kerneli ose procese të tjera kërkon ekzekutimin e një sekuence të caktuar komandash (gadgets) në anën e proceseve të viktimës, duke çuar në ekzekutimin spekulativ të udhëzimeve. Rreth 100 pajisje të ngjashme janë gjetur në kernelin Linux, të cilat do të hiqen, por në mënyrë periodike gjenden zgjidhje për gjenerimin e tyre, për shembull, që lidhen me ekzekutimin e programeve BPF të krijuara posaçërisht në kernel.

Burimi: opennet.ru

Shto një koment