Plundervolt ir jauna uzbrukuma metode Intel procesoriem, kas ietekmē SGX tehnoloģiju

Intel atbrīvots mikrokoda atjauninājums, kas izlabo ievainojamība (CVE-2019-14607) ļaujot manipulējot ar CPU dinamisko sprieguma un frekvences kontroles mehānismu, izraisīt datu šūnu satura bojājumus, tostarp apgabalos, kas tiek izmantoti aprēķiniem izolētajos Intel SGX anklāvos. Uzbrukumu sauc par Plundervolt, un tas potenciāli ļauj vietējam lietotājam palielināt savas privilēģijas sistēmā, izraisīt pakalpojuma atteikumu un piekļūt sensitīviem datiem.

Uzbrukums ir bīstams tikai saistībā ar manipulācijām ar aprēķiniem SGX anklāvos, jo tā veikšanai ir nepieciešamas saknes tiesības sistēmā. Vienkāršākajā gadījumā uzbrucējs var panākt anklāvā apstrādātās informācijas izkropļojumus, taču sarežģītākos scenārijos netiek novērsta iespēja atjaunot anklāvā glabātās privātās atslēgas, kuras tiek izmantotas šifrēšanai, izmantojot RSA-CRT un AES-NI algoritmus. izslēgts. Šo paņēmienu var izmantot arī kļūdu ģenerēšanai sākotnēji pareizajos algoritmos, lai radītu ievainojamības, strādājot ar atmiņu, piemēram, lai organizētu piekļuvi apgabalam ārpus piešķirtā bufera robežas.
Prototipa kods uzbrukuma veikšanai publicēta vietnē GitHub

Metodes būtība ir radīt apstākļus neparedzētu datu bojājumu rašanās aprēķinu laikā SGX, no kuriem neaizsargā šifrēšanas un atmiņas autentifikācijas izmantošana anklāvā. Lai ieviestu kropļojumus, izrādījās, ka bija iespējams izmantot standarta programmatūras saskarnes frekvences un sprieguma kontrolei, ko parasti izmanto, lai samazinātu enerģijas patēriņu sistēmas dīkstāves laikā un aktivizētu maksimālu veiktspēju intensīva darba laikā. Frekvences un sprieguma raksturlielumi aptver visu mikroshēmu, tostarp skaitļošanas ietekmi izolētā anklāvā.

Mainot spriegumu, jūs varat radīt apstākļus, kādos uzlāde nav pietiekama, lai atjaunotu atmiņas šūnu CPU iekšpusē, un tās vērtība mainās. Galvenā atšķirība no uzbrukuma RowHammer ir tas, ka RowHammer ļauj mainīt atsevišķu bitu saturu DRAM atmiņā, cikliski nolasot datus no blakus esošajām šūnām, savukārt Plundervolt ļauj mainīt bitus CPU iekšienē, kad dati jau ir ielādēti no atmiņas aprēķiniem. Šī funkcija ļauj apiet integritātes kontroles un šifrēšanas mehānismus, ko SGX izmanto atmiņā esošajiem datiem, jo ​​vērtības atmiņā paliek pareizas, taču var tikt izkropļotas, veicot darbības ar tām, pirms rezultāts tiek ierakstīts atmiņā.

Ja šī modificētā vērtība tiek izmantota šifrēšanas procesa reizināšanas procesā, izvade tiek noraidīta ar nepareizu šifrētu tekstu. Ja ir iespēja sazināties ar apdarinātāju SGX, lai šifrētu savus datus, uzbrucējs var, izraisot kļūmes, uzkrāt statistiku par izmaiņām izvades šifrētā tekstā un dažu minūšu laikā atjaunot anklāvā saglabātās atslēgas vērtību. Sākotnējais ievades teksts un pareizais izvades šifrētais teksts ir zināmi, atslēga nemainās, un nepareiza šifrēta teksta izvade norāda, ka kāds bits ir izkropļots līdz pretējai vērtībai.

Analizējot dažādu kļūmju laikā uzkrātos pareizo un bojāto šifrēto tekstu vērtību pārus, izmantojot diferenciālās atteices analīzes metodes (DFA, Diferenciālo kļūdu analīze) Var prognozēt iespējamās atslēgas, ko izmanto AES simetriskajai šifrēšanai, un pēc tam, analizējot atslēgu krustpunktus dažādās kopās, nosaka vajadzīgo atslēgu.

Problēma ietekmē dažādus Intel procesoru modeļus, tostarp Intel Core CPU ar 6
10. paaudze, kā arī piektā un sestā Xeon E3 paaudze, Intel Xeon Scalable pirmā un otrā paaudze, Xeon D,
Xeon W un Xeon E.

Atgādināsim, ka SGX tehnoloģija (Programmatūras aizsargu paplašinājumi) parādījās sestās paaudzes Intel Core procesoros (Skylake) un piedāvājumus virkne instrukciju, kas ļauj lietotāja līmeņa lietojumprogrammām piešķirt slēgtās atmiņas zonas – anklāvus, kuru saturu nevar nolasīt vai modificēt pat kodols un kods, kas darbojas ring0, SMM un VMM režīmos. Kontroles pārnešana uz kodu anklāvā nav iespējama, izmantojot tradicionālās lēciena funkcijas un manipulācijas ar reģistriem un steku, kontroles pārnešanai uz anklāvu tiek izmantota speciāli izveidota jauna instrukcija, kas veic autoritātes pārbaudi. Šajā gadījumā kods, kas ievietots anklāvā, var izmantot klasiskās izsaukšanas metodes, lai piekļūtu funkcijām anklāvā, un īpašas instrukcijas ārējo funkciju izsaukšanai. Enklāva atmiņas šifrēšana tiek izmantota, lai aizsargātu pret aparatūras uzbrukumiem, piemēram, savienojumu ar DRAM moduli.

Avots: opennet.ru

Pievieno komentāru