Buvo pristatyta nauja „Intel“ procesorių pažeidžiamumų klasė

Intel опубликовала informacija apie naujus pažeidžiamumo klasė savo procesoriuose - MDS (Microarchitectural Data Sampling). Kaip ir ankstesnės Spectre atakos, dėl naujų problemų gali nutekėti privatūs duomenys iš operacinės sistemos, virtualių mašinų ir kitų procesų. Teigiama, kad problemas pirmiausia „Intel“ darbuotojai ir partneriai nustatė vidaus audito metu, po kurio nepriklausomi tyrėjai pateikė informaciją apie panašias problemas „Intel“. AMD ir ARM procesorių ši problema neveikia.

Remiantis Graco technikos universiteto (Austrija) mokslininkų nustatytomis problemomis sukurta Keletas praktinių šoninių kanalų atakų:

  • „ZombieLoad“ (PDF) – leidžia išgauti konfidencialią informaciją iš kitų procesų, operacinės sistemos, virtualių mašinų ir apsaugotų anklavų (TEE, Trusted Execution Environment). Pavyzdžiui, buvo pademonstruota galimybė nustatyti puslapių atidarymo istoriją Tor naršyklėje, veikiančioje kitoje virtualioje mašinoje, taip pat nustatyti programose naudojamus prieigos raktus ir slaptažodžius;


  • RIDL (PDF) – leidžia informacijai nutekėti tarp įvairių izoliuotų „Intel“ procesorių sričių, tokių kaip užpildymo buferiai, saugojimo buferiai ir įkėlimo prievadai. Rodomi atakų pavyzdžiai, skirti organizuoti nutekėjimą iš kitų procesų, operacinės sistemos, virtualių mašinų ir apsaugotų anklavų. Pavyzdžiui, parodoma, kaip periodiškai bandant autentifikuoti (ataka truko 24 valandas) sužinoti pagrindinio slaptažodžio maišos turinį iš /etc/shadow;

    Be to, atakos naudojant „JavaScript“ ir „WebAssembly“ pavyzdys rodomas atidarant kenkėjišką puslapį „SpiderMonkey“ variklyje (šiuolaikinėse pilnavertėse naršyklėse tokia ataka mažai tikėtina dėl riboto laikmačio tikslumo ir priemonių, apsaugančių nuo „Spectre“);

  • Fallout (PDF) - leidžia nuskaityti neseniai operacinės sistemos parašytus duomenis ir nustatyti OS atminties išdėstymą, kad būtų supaprastintos kitos atakos;
  • Persiuntimas iš parduotuvės iki nutekėjimo — išnaudoja procesoriaus optimizavimą darbui su saugojimo buferiu ir gali būti naudojamas apeiti branduolio adresų erdvės atsitiktinių imčių mechanizmą (KASLR), stebėti operacinės sistemos būseną arba organizacija nutekėjimai kartu su programėlėmis, pagrįstomis Spectre metodais.

Identifikuota pažeidžiamumų:

  • CVE-2018-12126 – MSBDS (Microarchitectural Store Buffer Data Sampling), saugojimo buferių turinio atkūrimas. Naudojamas „Fallout“ atakoje. Pavojaus laipsnis nustatytas 6.5 balo (CVSS);
  • CVE-2018-12127 – MLPDS (Microarchitectural Load Port Data Sampling), apkrovos prievado turinio atkūrimas. Naudojamas RIDL atakoje. CVSS 6.5;
  • CVE-2018-12130 – MFBDS (Microarchitectural Fill Buffer Data Sampling), užpildymo buferio turinio atkūrimas. Naudojamas ZombieLoad ir RIDL atakose. CVSS 6.5;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), talpyklos neįkeliamo atminties turinio atkūrimas. Naudojamas RIDL atakoje. CVSS 3.8.

širdis nustatė problemas, susijusias su galimybe taikyti šalutinio kanalo analizės metodus duomenims mikroarchitektūrinėse struktūrose, prie kurių programos neturi tiesioginės prieigos. Mes kalbame apie tokias žemo lygio struktūras kaip užpildymo buferiai (Line Fill Buffer), saugojimo buferiai (Store Buffer) ir įkėlimo prievadai (Load Port), kurie yra mažesni blokai nei pirmojo lygio talpykla (L1D), duomenų įkėlimo talpykla ( RDCL ) arba L1TF (L1 terminalo gedimas), atitinkamai įtraukiama mažiau informacijos ir yra intensyviau atnaujinama.

Buvo pristatyta nauja „Intel“ procesorių pažeidžiamumų klasė

Šoninio kanalo atakas prieš mikroarchitektūrines struktūras yra daug sunkiau vykdyti, palyginti su talpyklos turinio atkūrimo metodais, todėl reikia sekti ir analizuoti didelius duomenų kiekius, kad būtų galima nustatyti jų ryšį su tam tikrais atmintyje esančiais adresais (iš esmės užpuolikas negali tikslingai perimti tam tikrų duomenų , tačiau gali prireikti nutekėjimo kaupti ir taikyti statistinius metodus tam tikrų tipų duomenims atkurti). Be to, ataka paveikia tik duomenis tame pačiame fiziniame procesoriaus branduolyje kaip ir užpuoliko kodas.

Siūlomi mikroarchitektūrinių konstrukcijų turinio nustatymo metodai yra pagrįsti tuo, kad šios konstrukcijos naudojamos spekuliacinio išimčių (gedimų) tvarkymo arba apkrovos ir sandėliavimo operacijų metu.
Spekuliacinio vykdymo metu vidinių struktūrų turinys nukreipiamas į registrus arba talpyklas apdoroti. Spekuliacinės operacijos nebaigtos, o rezultatas atmetamas, tačiau peradresuotą turinį galima nustatyti naudojant šoninio kanalo talpyklos analizės metodus.

Apkrovos prievadus naudoja procesorius duomenims iš atminties arba I/O posistemio priimti ir gautą informaciją teikti procesoriaus registrams. Dėl įdiegimo funkcijos senų atsisiuntimo operacijų duomenys lieka prievaduose tol, kol jie neperrašomi naujais duomenimis, o tai leidžia netiesiogiai nustatyti duomenų būseną atsisiuntimo prievade, manipuliuojant išimtimis (gedimais) ir SSE/AVX/ AVX-512 instrukcijos, kurios įkelia daugiau nei 64 bitų duomenis. Esant tokioms sąlygoms, įkėlimo operacijos spekuliatyviai atskleidžia pasenusias vidinių struktūrų duomenų reikšmes priklausomoms operacijoms. Panašiai nutekėjimas organizuojamas per saugojimo buferį, kuris naudojamas pagreitinti įrašymą į procesoriaus talpyklą ir apima adresų, reikšmių ir vėliavėlių lentelę, taip pat per užpildymo buferį, kuriame yra duomenų, dar nėra L1 talpykloje (cache-miss), kol kas įkeliama iš kitų lygių talpyklų.

Buvo pristatyta nauja „Intel“ procesorių pažeidžiamumų klasė

problema paveikia Intel procesorių modeliai, gaminami nuo 2011 m. (pradedant nuo 6 kartos). Tokiu atveju aparatinės įrangos pažeidžiamumas blokuojamas pradedant kai kuriais 8-osios ir 9-osios kartos „Intel Core“ ir 2-osios kartos „Intel Xeon Scalable“ modeliais (galite patikrinti naudodami ARCH_CAP_MDS_NO bitą IA32_ARCH_CAPABILITIES MSR). Pažeidžiamumų taip pat jau yra pašalinta programinės įrangos, mikrokodo ir operacinių sistemų lygiu. „Intel“ įvertina daugelio vartotojų našumo praradimą aktyvavus pataisą mažiau nei 3 proc. Kai „Hyper-Threading“ technologija išjungta, našumo pablogėjimas gali siekti iki 9 % atliekant SPECint_rate_base testą, iki 11 % skaičiuojant aktyvius sveikuosius skaičius ir iki 19 %, kai veikia serverio pusės Java programos (įjungus HT, beveik nėra veikimo pablogėjimo). Pataisos turi mažai įtakos įvesties / išvesties našumui.

Linux branduolys apsaugo nuo MDS pridėta šiandieninėje atnaujinimus 5.1.2, 5.0.16,
4.19.43, 4.14.119 ir 4.9.176. Apsaugos metodas statomas apie mikroarchitektūrinių buferių turinio išvalymą grįžus iš branduolio į vartotojo erdvę arba perduodant valdymą svečių sistemai, kuriai naudojama VERW instrukcija. Kad apsauga veiktų, reikalingas MD_CLEAR režimo palaikymas, įdiegtas naujausiame mikrokodo atnaujinime. Norint užtikrinti visišką apsaugą, taip pat rekomenduojama išjungti „Hyper Threading“. Norėdami patikrinti, ar sistema susiduria su Linux branduolio pažeidžiamumu pridėta tvarkytojas „/sys/devices/system/cpu/vulnerabilities/mds“. Norint kontroliuoti įvairių pažeidžiamumo blokavimo režimų įtraukimą, prie branduolio buvo pridėtas parametras „mds=“, kuris gali turėti reikšmes „full“, „full,nosmt“ (išjungiant „Hyper-Threads“), „vmwerv“ ir "išjungta".

Paketo atnaujinimai jau buvo išleisti RHEL и ubuntu, bet kol kas nepasiekiamas debian, Minkšta fetrinė skrybėlė и SUSA.
Pataisa taip pat blokuoti duomenų nutekėjimą iš virtualių mašinų susiformavo skirtas Xen hipervizoriui. Norint apsaugoti virtualizacijos sistemas, kurios išduoda komandą L1D_FLUSH prieš perkeldamos valdymą į kitą virtualią mašiną, ir apsaugoti Intel SGX anklavus, pakanka mikrokodo atnaujinimo.

Šaltinis: opennet.ru

Добавить комментарий