Kompania Intel informacion mbi tĂ« re nĂ« procesorĂ«t e saj â (Sampling i tĂ« DhĂ«nave Mikroarkitekturale). Siç janĂ« shqetĂ«simet e kaluara tĂ« klasĂ«s Spectre, problemet e reja mund tĂ« çojnĂ« nĂ« rrjedhjen e tĂ« dhĂ«nave tĂ« ndjeshme nga sistemi operativ, makinat virtuale dhe procese tĂ« tjera. KĂ«to çështje u identifikuan fillimisht nga punonjĂ«sit dhe partnerĂ«t e Intel nĂ« njĂ« auditim tĂ« brendshĂ«m, pas tĂ« cilit informacioni mbi probleme tĂ« ngjashme nĂ« Intel u bĂ« i njohur pĂ«r kĂ«rkuesit e pavarur. ProcesorĂ«t AMD dhe ARM nuk janĂ« tĂ« ndjeshĂ«m ndaj kĂ«saj probleme.
Duke u bazuar në problemet e identifikuara nga kërkuesit nga Universiteti Teknik i Grazit (Austria), disa sulme praktike përmes kanaleve anësore:
- () â lejon qĂ« tĂ« nxiren informacione tĂ« konfidenciale nga procese tĂ« tjera, sistemi operativ, makinat virtuale dhe enklava tĂ« mbrojtura (TEE, Ambienti i Ekzekutimit tĂ« BesueshĂ«m). PĂ«r shembull, Ă«shtĂ« demonstruar mundĂ«sia e pĂ«rcaktimit tĂ« historikut tĂ« hapjes sĂ« faqeve nĂ« shfletuesin Tor, i aktivizuar nĂ« njĂ« makinĂ« virtuale tjetĂ«r, si dhe pĂ«rcaktimi i çelĂ«save tĂ« qasjes dhe fjalĂ«kalimeve tĂ« pĂ«rdorura nĂ« aplikacione;
- () â lejon organizimin e rrjedhjes sĂ« informacionit midis zonave tĂ« ndryshme tĂ« izoluara nĂ« procesorĂ«t Intel, siç janĂ« buferat e mbushjes, buferat e ruajtjes dhe portat e ngarkesĂ«s. Shembujt e kryerjes sĂ« sulmit janĂ« treguar pĂ«r tĂ« organizuar rrjedhjet nga procese tĂ« tjera, sistemi operativ, makinat virtuale dhe enklava tĂ« mbrojtura. PĂ«r shembull, Ă«shtĂ« treguar si mund tĂ« zbulohet pĂ«rmbajtja e hash-it tĂ« fjalĂ«kalimit root nga /etc/shadow gjatĂ« pĂ«rpjekjeve tĂ« pĂ«rkohshme pĂ«r autentifikim (sulmi zuri 24 orĂ«);

Për më tepër, është treguar një shembull i kryerjes së sulmit duke përdorur JavaScript dhe WebAssembly gjatë hapjes së një faqeje të dëmshme në motorin SpiderMonkey (në shfletuesit modernë, një sulm i tillë është shumë i pamundur për shkak të kufizimeve të saktësisë së orës dhe masave për mbrojtjen nga Spectre);

- () â ofron mundĂ«sinĂ« pĂ«r tĂ« lexuar tĂ« dhĂ«na tĂ« sapo shkruara nga sistemi operativ dhe pĂ«r tĂ« pĂ«rcaktuar pĂ«rbĂ«rjen e memories sĂ« OS pĂ«r tĂ« lehtĂ«suar kryerjen e sulmeve tĂ« tjera;
- â shfrytĂ«zon optimizimet e CPU nĂ« punĂ«n me buferin e ruajtjes dhe mund tĂ« pĂ«rdoret pĂ«r tĂ« anashkaluar mekanizmin e rastĂ«simit tĂ« adresĂ«s sĂ« hapĂ«sirĂ«s sĂ« bĂ«rthamakĂ«s (KASLR), pĂ«r tĂ« monitoruar gjendjen e sistemit operativ ose pĂ«r rrjedhje nĂ« kombinim me gjeneratorĂ« tĂ« bazuar nĂ« metodat Spectre.
Identifikuar :
- CVE-2018-12126 â MSBDS (Sampling i tĂ« DhĂ«nave tĂ« Bufferave tĂ« Ruajtjes Mikroarkitekturore), rikuperimi i pĂ«rmbajtjes sĂ« bufferave tĂ« ruajtjes. PĂ«rdoret nĂ« sulmin Fallout. Shkalla e rrezikshmĂ«risĂ« Ă«shtĂ« e pĂ«rcaktuar nĂ« 6.5 pikĂ« (CVSS);
- CVE-2018-12127 â MLPDS (Sampling i tĂ« DhĂ«nave tĂ« Portave tĂ« NgarkesĂ«s Mikroarkitekturore), rikuperimi i pĂ«rmbajtjes sĂ« portave tĂ« ngarkesĂ«s. PĂ«rdoret nĂ« sulmin RIDL. CVSS 6.5;
- CVE-2018-12130 â MFBDS (Sampling i tĂ« DhĂ«nave tĂ« Bufferave tĂ« PlotĂ«simit Mikroarkitekturore), rikuperimi i pĂ«rmbajtjes sĂ« bufferave tĂ« plotĂ«simit. PĂ«rdoret nĂ« sulmet ZombieLoad dhe RIDL. CVSS 6.5;
- CVE-2019-11091 â MDSUM (Sampling i tĂ« DhĂ«nave Mikroarkitekturore nĂ« Memories tĂ« PapĂ«rfituara), rikuperimi i pĂ«rmbajtjes sĂ« memories sĂ« papĂ«rfituar. PĂ«rdoret nĂ« sulmin RIDL. CVSS 3.8.
problemet e identifikuara në kapacitetin e përdorimit të metodave të analizës nga kanalet anësore ndaj të dhënave në strukturat mikroarkitekturore, të cilat aplikacionet nuk kanë qasje direkte. Bëhet fjalë për struktura të tilla me nivel të ulët si bufferat e plotësimit (Line Fill Buffer), bufferat e ruajtjes (Store Buffer) dhe portat e ngarkesës (Load Port), të cilat janë blloqe më të vogla se cache i nivelit të parë (L1D), cache i ngarkesës së të dhënave (RDCL) ose L1TF (Gabimi i Terminalit të L1), dhe për rrjedhojë përfshijnë më pak informacion dhe përditësohen më intensivisht.

Sulmet nga kanale anësore ndaj strukturave mikroarkitekturore janë ndjeshëm më të vështira për t'u realizuar krahasuar me metodat e rikuperimit të përmbajtjes së cache-it dhe kërkojnë ndjekjen dhe analizimin e sasive të mëdha të të dhënave për të përcaktuar lidhjen e tyre me adresa të caktuara në memorie (thelbësisht, sulmuesi nuk mund të kapë drejtpërdrejt të dhëna të caktuara, por mund të akumulojë rrjedhje për një kohë të gjatë dhe të përdorë metoda statistikore për të rikonstruktuar lloje të caktuara të të dhënave). Për më tepër, sulmi prek vetëm të dhënat në të njëjtin bërthamë fizike CPU siç është kodi i sulmuesit.
Metodat e propozuara për identifikimin e përmbajtjes së strukturave mikroarkitekturore bazohen në atë që këto struktura përdoren gjatë përpunimit spekulativ të përjashtimeve (fault) ose operacioneve të ngarkesës dhe ruajtjes.
Gjatë kryerjes spekulative, përmbajtja e strukturave të brendshme riorientohet për përpunim në regjistra ose cache. Operacionet spekulative nuk përfundojnë dhe rezultati anulohet, por përmbajtja e riorientuar mund të përcaktohet përmes metodave të analizës së cache-it nga kanalet anësore.
Portat e ngarkesës përdoren nga procesori për të marrë të dhëna nga memoria ose nën-sistemi i input/output dhe për të ofruar informacionin e marrë në regjistrat e CPU. Për shkak të karakteristikës së implementimit, të dhënat nga operacionet e vjetra të ngarkesës mbeten në portat deri sa të shkruhen rishtas nga të dhëna të reja, çka lejon përcaktimin indirekt të gjendjes së të dhënave në portin e ngarkesës përmes manipulimeve me përjashtimet (fault) dhe instrukcioneve SSE/AVX/AVX-512 që ngarkojnë më shumë se 64 bit të dhëna. Në këto kushte, operacionet e ngarkesës spekulativisht ekspozojnë vlerat e vjetra të të dhënave nga strukturat e brendshme në operacionet varësuese. Një mënyrë e ngjashme organizon rrjedhjen përmes tamponit të ruajtjes, i cili përdoret për të përshpejtuar shkrimin në cache të CPU dhe përfshin një tabelë adresash, vlerash dhe flagash, si dhe përmes tamponit të mbushjes, i cili përmban të dhëna që mungojnë në cache L1 (cache-miss), deri sa ato ngarkohen nga cache të niveleve të tjera.
Problemi modelet e procesorëve Intel, që prodhohen që nga viti 2011 (duke filluar nga gjenerata e 6-të). Në të njëjtën kohë, dobësitë harduerike bllokohen duke filluar nga disa modele të gjeneratës 8 dhe 9 të Intel Core dhe 2 të gjeneratës Intel Xeon Scalable (mund të kontrollohet përmes bit ARCH_CAP_MDS_NO në IA32_ARCH_CAPABILITIES MSR). Dobësitë gjithashtu tashmë në nivelin e firmware, mikro-kodit dhe sistemeve operative. Sipas vlerësimit të Intel, humbja e performancës pas aktivizimit të korrigjimeve për shumicën e përdoruesve 3%. Kur teknologjia Hyper-Threading është e çaktivizuar, ulja e performancës mund të arrijë deri në 9% në testin SPECint_rate_base, deri në 11% gjatë llogaritjeve të numrave të plotë dhe deri në 19% gjatë ekzekutimit të aplikacioneve Java në server (kur HT është aktivizuar, humbja e performancës është pothuajse e papërfillshme). Korrigjimet praktikisht nuk ndikojnë në performancën e operacioneve të lidhura me input/output.
Në kernelin Linux, mbrojtja nga MDS në përditësimet e sotme 5.1.2, 5.0.16,
bazohet në pastrimin e përmbajtjes së mikroarkitekturës buffers gjatë rikthimit nga bërthama në hapësirën e përdoruesit ose gjatë kalimit të kontrollit në sistemin mysliman, për të cilën përdoret instruksioni VERW. Për funksionimin e mbrojtjes kërkohet mbështetje për modin MD_CLEAR, i implementuar në përditësimin e fundit të mikro-kodit. Për mbrojtje të plotë, rekomandohet gjithashtu që të çaktivizohet Hyper Threading. Për të verifikuar nëse sistemi është i ndjeshëm ndaj dobësive të bërthamës Linux përpunuesi "/sys/devices/system/cpu/vulnerabilities/mds". Për të menaxhuar aktivizimin e mënyrave të ndryshme të bllokimit të dobësive, në bërthamë është shtuar parametri "mds=" i cili mund të pranojë vlerat "full", "full,nosmt" (çaktivizimi i Hyper-Threads), "vmwerv" dhe "off".
Paketat e përditësimeve janë tashmë lëshuar për dhe , por ende mbeten të pa aksesueshme për , dhe .
Korrigjimi për bllokimin e rrjedhjeve të të dhënave nga makinat virtuale gjithashtu për hipervizorin Xen. Për të mbrojtur sistemet e virtualizimit, që kryejnë thirrjen e komandës L1D_FLUSH para se t'i kalojnë kontrollin një makine virtuale tjetër dhe për të mbrojtur enklavat Intel SGX, është e mjaftueshme përditësimi i mikro-kodit.
Burimi: opennet.ru


