Jauns Foreshadow uzbrukuma variants, kas ietekmē Intel, AMD, ARM un IBM procesorus

Pētnieku grupa no Grācas Tehniskās universitātes (Austrija) un Helmholca informācijas drošības centra (CISPA), atklāts (PDF) jauns vektors sānu kanālu uzbrukumu izmantošanai Priekšvēse (L1TF), kas ļauj iegūt datus no Intel SGX anklāvu atmiņas, SMM (System Management Mode), OS kodola atmiņas apgabaliem un virtuālajām mašīnām virtualizācijas sistēmās. Atšķirībā no sākotnējā uzbrukuma, kas tika ierosināts 2018. gadā Priekšvēse Jaunais variants nav raksturīgs Intel procesoriem un ietekmē citu ražotāju, piemēram, ARM, IBM un AMD, CPU. Turklāt jaunajam variantam nav nepieciešama augsta veiktspēja un uzbrukumu var veikt pat palaižot JavaScript un WebAssembly tīmekļa pārlūkprogrammā.

Foreshadow uzbrukums izmanto to, ka, piekļūstot atmiņai no virtuālās adreses, kas rada izņēmumu (termināla lapas kļūda), procesors spekulatīvi aprēķina fizisko adresi un ielādē datus, ja tie ir pieejami L1 kešatmiņā. Spekulatīvā piekļuve tiek veikta pirms atmiņas lappušu tabulas meklēšanas pabeigšanas un neatkarīgi no atmiņas lappušu tabulas ieraksta (PTE) stāvokļa, t.i. pirms pārbaudīt datu esamību fiziskajā atmiņā un to lasāmību. Pēc atmiņas pieejamības pārbaudes pabeigšanas, ja PTE nav karoga Present, darbība tiek atmesta, bet dati paliek kešatmiņā un tos var izgūt, izmantojot metodes kešatmiņas satura noteikšanai, izmantojot sānu kanālus (analizējot piekļuves laika izmaiņas uz kešatmiņā saglabātajiem un nekešatajiem datiem).

Pētnieki ir pierādījuši, ka esošās metodes aizsardzībai pret Foreshadow ir neefektīvas un tiek ieviestas ar nepareizu problēmas interpretāciju. Neaizsargātība
Foreshadow var izmantot neatkarīgi no kodola drošības mehānismiem, kas iepriekš tika uzskatīti par pietiekamiem. Rezultātā pētnieki demonstrēja iespēju veikt Foreshadow uzbrukumu sistēmām ar salīdzinoši veciem kodoliem, kurās ir iespējoti visi pieejamie Foreshadow aizsardzības režīmi, kā arī ar jauniem kodoliem, kuros ir atspējota tikai Spectre-v2 aizsardzība (izmantojot Linux kodola opcija nospectre_v2).

Tika konstatēts, ka priekšslodzes efekts nav saistīts ar programmatūras priekšielādēšanas instrukcijām vai aparatūras efektu
pirmsiegūšana atmiņas piekļuves laikā, bet notiek, kad kodolā tiek reģistrētas spekulatīvas lietotāja vietas atsauču atkāpes. Šī ievainojamības iemesla nepareiza interpretācija sākotnēji noveda pie pieņēmuma, ka datu noplūde programmā Foreshadow var notikt tikai caur L1 kešatmiņu, savukārt noteiktu koda fragmentu (iepriekšējas ielādes sīkrīku) klātbūtne kodolā varētu veicināt datu noplūdi ārpus L1 kešatmiņas. piemēram, L3 kešatmiņā.

Identificētā funkcija paver arī iespēju veidot jaunus uzbrukumus, kas vērsti uz virtuālo adrešu pārvēršanas procesiem fiziskās izolētās vidēs un CPU reģistros glabāto adrešu un datu noteikšanu. Kā demonstrāciju pētnieki parādīja iespēju izmantot identificēto efektu, lai iegūtu datus no viena procesa uz otru ar aptuveni 10 bitu sekundē veiktspēju sistēmā ar Intel Core i7-6500U centrālo procesoru. Tiek parādīta arī reģistra satura noplūdes iespēja no Intel SGX anklāva (bija nepieciešamas 32 minūtes, lai noteiktu 64 bitu vērtību, kas ierakstīta 15 bitu reģistrā). Dažus uzbrukumu veidus izrādījās iespējams ieviest JavaScript un WebAssembly, piemēram, bija iespējams noteikt JavaScript mainīgā fizisko adresi un aizpildīt 64 bitu reģistrus ar uzbrucēja kontrolētu vērtību.

Lai bloķētu Foreshadow uzbrukumu, izmantojot L3 kešatmiņu, efektīva ir retpolina ielāpu komplektā ieviestā aizsardzības metode Spectre-BTB (Branch Target Buffer). Tādējādi pētnieki uzskata, ka ir nepieciešams atstāt iespējotu retpolinu pat sistēmās ar jauniem CPU, kurām jau ir aizsardzība pret zināmām CPU spekulatīvās izpildes mehānisma ievainojamībām. Vienlaikus Intel pārstāvji norādīja, ka neplāno procesoriem pievienot papildu aizsardzības pasākumus pret Foreshadow un uzskata par pietiekamu iekļaut aizsardzību pret Spectre V2 un L1TF (Foreshadow) uzbrukumiem.

Avots: opennet.ru

Pievieno komentāru