Ir ieviesta jauna Intel procesoru ievainojamību klase

Intel опубликовала informācija par jaunu neaizsargātības klase savos procesoros - MDS (Mikroarhitektūras datu izlase). Tāpat kā iepriekšējie Spectre uzbrukumi, jaunas problēmas var izraisīt privātu datu noplūdi no operētājsistēmas, virtuālajām mašīnām un citiem procesiem. Tiek apgalvots, ka problēmas vispirms atklāja Intel darbinieki un partneri iekšējā audita laikā, pēc kura neatkarīgi pētnieki sniedza informāciju par līdzīgām problēmām Intel. Problēma neietekmē AMD un ARM procesorus.

Pamatojoties uz Grācas Tehniskās universitātes (Austrija) pētnieku identificētajām problēmām izstrādāta Daži praktiski sānu kanālu uzbrukumi:

  • ZombieLoad (PDF) - ļauj iegūt konfidenciālu informāciju no citiem procesiem, operētājsistēmas, virtuālajām mašīnām un aizsargātajiem anklāviem (TEE, Trusted Execution Environment). Piemēram, tika demonstrēta iespēja noteikt lappušu atvēršanas vēsturi Tor pārlūkā, kas darbojas citā virtuālajā mašīnā, kā arī aplikācijās izmantoto piekļuves atslēgu un paroļu noteikšana;


  • RIDL (PDF) - ļauj nopludināt informāciju starp dažādām izolētām Intel procesoru zonām, piemēram, aizpildīšanas buferiem, uzglabāšanas buferiem un ielādes portiem. Tiek parādīti uzbrukumu piemēri, lai organizētu noplūdes no citiem procesiem, operētājsistēmas, virtuālajām mašīnām un aizsargātiem anklāviem. Piemēram, tas parāda, kā periodisku autentifikācijas mēģinājumu laikā (uzbrukums ilga 24 stundas) no /etc/shadow uzzināt saknes paroles hash saturu;

    Turklāt tiek parādīts uzbrukuma piemērs, izmantojot JavaScript un WebAssembly, atverot ļaunprātīgu lapu SpiderMonkey dzinējā (mūsdienīgās pilnvērtīgās pārlūkprogrammās šāds uzbrukums ir maz ticams ierobežotās taimera precizitātes un aizsardzības pret Spectre dēļ pasākumiem);

  • Fallout (PDF) - ļauj nolasīt nesen operētājsistēmas ierakstītos datus un noteikt OS atmiņas izkārtojumu, lai vienkāršotu citus uzbrukumus;
  • Pārsūtīšana no veikala līdz noplūdei — izmanto CPU optimizāciju darbam ar krātuves buferi, un to var izmantot, lai apietu kodola adrešu telpas nejaušināšanas mehānismu (KASLR), lai uzraudzītu operētājsistēmas stāvokli vai organizācija noplūdes kombinācijā ar sīkrīkiem, kuru pamatā ir Spectre metodes.

Identificēts ievainojamības:

  • CVE-2018-12126 — MSBDS (Microarchitectural Store Buffer Data Sampling), krātuves buferu satura atkopšana. Izmanto Fallout uzbrukumā. Bīstamības pakāpe noteikta 6.5 ​​balles (CVSS);
  • CVE-2018-12127 — MLPDS (Microarchitectural Load Port Data Sampling), ielādes porta satura atkopšana. Izmanto RIDL uzbrukumā. CVSS 6.5;
  • CVE-2018-12130 — MFBDS (Microarchitectural Fill Buffer Data Sampling), aizpildīšanas bufera satura atgūšana. Izmanto ZombieLoad un RIDL uzbrukumos. CVSS 6.5;
  • CVE-2019-11091 — MDSUM (Microarchitectural Data Sampling Uncacheable Memory), nekešatmiņā saglabājama atmiņas satura atkopšana. Izmanto RIDL uzbrukumā. CVSS 3.8.

sirds identificētas problēmas saistībā ar iespēju piemērot sānu kanālu analīzes metodes datiem mikroarhitektūras struktūrās, kurām lietojumprogrammām nav tiešas piekļuves. Mēs runājam par tādām zema līmeņa struktūrām kā aizpildīšanas buferi (Line Fill Buffer), uzglabāšanas buferi (Store Buffer) un ielādes porti (Load Port), kas ir mazāki elementi nekā pirmā līmeņa kešatmiņa (L1D), datu ielādes kešatmiņa ( RDCL ) vai L1TF (L1 termināļa kļūme), un attiecīgi ietver mazāk informācijas un tiek atjaunināti intensīvāk.

Ir ieviesta jauna Intel procesoru ievainojamību klase

Sānu kanālu uzbrukumus mikroarhitektūras struktūrām ir daudz grūtāk veikt, salīdzinot ar kešatmiņas satura atjaunošanas metodēm, un tiem ir jāizseko un jāanalizē ievērojams datu apjoms, lai noteiktu to saistību ar noteiktām adresēm atmiņā (būtībā uzbrucējs nevar mērķtiecīgi pārtvert noteiktus datus , taču var būt laiks uzkrāt noplūdes un izmantot statistikas metodes, lai rekonstruētu noteikta veida datus). Turklāt uzbrukums ietekmē tikai datus tajā pašā fiziskajā CPU kodolā, kurā atrodas uzbrucēja kods.

Piedāvātās metodes mikroarhitektūras konstrukciju satura noteikšanai ir balstītas uz to, ka šīs konstrukcijas tiek izmantotas spekulatīvas izņēmumu (defektu) apstrādes vai slodzes un uzglabāšanas operāciju laikā.
Spekulatīvas izpildes laikā iekšējo struktūru saturs tiek novirzīts uz reģistriem vai kešatmiņām apstrādei. Spekulatīvās darbības netiek pabeigtas, un rezultāts tiek atmests, taču novirzīto saturu var noteikt, izmantojot sānu kanālu kešatmiņas analīzes metodes.

Slodzes portus procesors izmanto, lai saņemtu datus no atmiņas vai I/O apakšsistēmas un nodrošinātu saņemto informāciju CPU reģistriem. Īstenošanas funkcijas dēļ dati no vecajām lejupielādes operācijām paliek portos, līdz tos pārraksta jauni dati, kas ļauj netieši noteikt datu stāvokli lejupielādes portā, manipulējot ar izņēmumiem (kļūdām) un SSE/AVX/ AVX-512 instrukcijas, kas ielādē vairāk nekā 64 bitu datus. Šādos apstākļos ielādes operācijas spekulatīvi pakļauj novecojušas datu vērtības no iekšējām struktūrām uz atkarīgām darbībām. Līdzīgā veidā noplūde tiek organizēta caur krātuves buferi, ko izmanto, lai paātrinātu rakstīšanu CPU kešatmiņā un kas ietver adrešu, vērtību un karodziņu tabulu, kā arī caur aizpildīšanas buferi, kurā ir dati, kas vēl nav L1 kešatmiņā (cache-miss), pagaidām ielādējas no citu līmeņu kešatmiņām.

Ir ieviesta jauna Intel procesoru ievainojamību klase

problēma ietekmē Intel procesoru modeļi, kas ražoti kopš 2011. gada (sākot no 6. paaudzes). Šajā gadījumā aparatūras ievainojamības tiek bloķētas, sākot ar dažiem Intel Core 8. un 9. paaudzes modeļiem un Intel Xeon Scalable 2. paaudzes modeļiem (var pārbaudīt, izmantojot ARCH_CAP_MDS_NO bitu IA32_ARCH_CAPABILITIES MSR). Arī ievainojamības jau ir likvidēta programmaparatūras, mikrokoda un operētājsistēmu līmenī. Intel lēš veiktspējas zudumu pēc ielāpa aktivizēšanas lielākajai daļai lietotāju mazāk nekā 3%. Ja Hyper-Threading tehnoloģija ir atspējota, veiktspējas pasliktināšanās var sasniegt līdz pat 9% SPECint_rate_base testā, līdz 11% aktīvo veselo skaitļu aprēķinos un līdz 19%, ja tiek darbinātas servera puses Java lietojumprogrammas (ar iespējotu HT, ir gandrīz nav veiktspējas pasliktināšanās). Ielāpiem ir maza ietekme uz I/O veiktspēju.

Linux kodols aizsargā pret MDS pievienots šodienā atjauninājumus 5.1.2, 5.0.16,
4.19.43, 4.14.119 un 4.9.176. Aizsardzības metode būvniecības stadijā par mikroarhitektūras buferu satura notīrīšanu, atgriežoties no kodola lietotāja telpā vai nododot vadību viesu sistēmai, kurai tiek izmantota VERW instrukcija. Lai aizsardzība darbotos, ir nepieciešams MD_CLEAR režīma atbalsts, kas ieviests jaunākajā mikrokoda atjauninājumā. Lai nodrošinātu pilnīgu aizsardzību, ieteicams arī atspējot hipervītņu funkciju. Lai pārbaudītu sistēmas pakļaušanu Linux kodola ievainojamībām piebilda apdarinātājs "/sys/devices/system/cpu/vulnerabilities/mds". Lai kontrolētu dažādu ievainojamību bloķēšanas režīmu iekļaušanu, kodolam ir pievienots parametrs “mds=”, kas var iegūt vērtības “full”, “full,nosmt” (atspējojot Hyper-Threads), “vmwerv” un "izslēgts".

Pakotņu atjauninājumi jau ir izlaisti RHEL и Ubuntu, bet pagaidām nav pieejams Debian, Fedora и SUSE.
Labojums, lai bloķētu arī datu noplūdi no virtuālajām mašīnām veidojas Xen hipervizoram. Lai aizsargātu virtualizācijas sistēmas, kas izdod komandu L1D_FLUSH pirms vadības pārsūtīšanas uz citu virtuālo mašīnu, un lai aizsargātu Intel SGX anklāvus, pietiek ar mikrokoda atjauninājumu.

Avots: opennet.ru

Pievieno komentāru