AMD procesoros ir konstatēta vēl viena ievainojamība, kas pieļauj Meltdown uzbrukumus

Grācas Tehniskās universitātes (Austrija) un Helmholca informācijas drošības centra (CISPA) pētnieku komanda ir atklājusi informāciju par ievainojamību (CVE-2021-26318) visos AMD procesoros, kas ļauj veikt Meltdown klases. sānu kanālu uzbrukumi (sākotnēji tika pieņemts, ka AMD procesorus neietekmē Meltdown ievainojamība). Praktiski uzbrukumu var izmantot, lai izveidotu slēptus sakaru kanālus, uzraudzītu darbību kodolā vai iegūtu informāciju par adresēm kodola atmiņā, lai apietu KASLR aizsardzību, vienlaikus izmantojot kodola ievainojamības.

AMD uzskata par nepiemērotu veikt īpašus pasākumus problēmas bloķēšanai, jo ievainojamība, tāpat kā līdzīgs augustā atklātais uzbrukums, reālos apstākļos ir maz noderīga, to ierobežo pašreizējās procesa adrešu telpas robežas, un tai ir nepieciešama noteikta gatavas instrukciju secības (sīkrīki) kodolā. Lai demonstrētu uzbrukumu, pētnieki ielādēja savu kodola moduli ar mākslīgi pievienotu sīkrīku. Reālos apstākļos uzbrucēji var izmantot, piemēram, regulāri uznirstošās eBPF apakšsistēmas ievainojamības, lai aizstātu nepieciešamās secības.

Lai aizsargātu pret šī jaunā veida uzbrukumiem, AMD ieteica izmantot drošas kodēšanas metodes, kas palīdz bloķēt Meltdown uzbrukumus, piemēram, izmantot LFENCE instrukcijas. Pētnieki, kuri identificēja problēmu, iesaka iespējot stingrāku atmiņas lapu tabulas izolāciju (KPTI), kas iepriekš tika izmantota tikai Intel procesoriem.

Eksperimenta laikā pētniekiem izdevās nopludināt informāciju no kodola uz procesu lietotāja telpā ar ātrumu 52 baiti sekundē, ņemot vērā sīkrīka klātbūtni kodolā, kas veic operāciju “if (offset < data_len) tmp = LUT[dati[nobīde] * 4096];” . Ir ierosinātas vairākas metodes informācijas izgūšanai pa sānu kanāliem, kas spekulatīvas izpildes laikā nonāk kešatmiņā. Pirmā metode ir balstīta uz noviržu analīzi procesora instrukcijas “PREFETCH” (Prefetch+Time) izpildes laikā, bet otrā – uz enerģijas patēriņa izmaiņu maiņu, izpildot “PREFETCH” (Prefetch+Power).

Atgādinām, ka klasiskā Meltdown ievainojamība ir balstīta uz faktu, ka spekulatīvas instrukciju izpildes laikā procesors var piekļūt privātam datu apgabalam un pēc tam izmest rezultātu, jo iestatītās privilēģijas aizliedz šādu piekļuvi lietotāja procesam. Programmā spekulatīvi izpildītais bloks ir atdalīts no galvenā koda ar nosacījuma atzaru, kas reālos apstākļos vienmēr tiek aktivizēts, bet sakarā ar to, ka nosacījuma priekšraksts izmanto aprēķinātu vērtību, kuru procesors nezina priekšlaicīgas izpildes laikā. kods, visas filiāles opcijas tiek veiktas spekulatīvi.

Tā kā spekulatīvi izpildītās operācijas izmanto to pašu kešatmiņu, ko parasti izpilda instrukcijas, spekulatīvās izpildes laikā ir iespējams iestatīt marķierus kešatmiņā, kas atspoguļo atsevišķu bitu saturu privātajā atmiņas apgabalā un pēc tam parasti izpildītā kodā, lai noteiktu to vērtību, izmantojot laiku. analīzes piekļuve kešatmiņā saglabātajiem un neglabātajiem datiem.

Avots: opennet.ru

Pievieno komentāru