AMD ir apstiprinājusi AMD Zen 3 CPU iespējamo ievainojamību pret Spectre-STL uzbrukumu

AMD ir publicējusi ziņojumu, kurā analizēta Zen 3 sērijas procesoros ieviestās PSF (Predictive Store Forwarding) optimizācijas tehnoloģijas drošība. Pētījums teorētiski apstiprināja 4. gada maijā identificētās Spectre-STL (Spectre-v2018) uzbrukuma metodes pielietojamību. PŠŠ tehnoloģija, taču praksē vēl nav atrastas koda veidnes, kas varētu izraisīt uzbrukumu, un kopējās briesmas tiek vērtētas kā nenozīmīgas.

Atgādināsim, ka Spectre-v4 (Speculative Store Bypass) uzbrukuma pamatā ir procesora kešatmiņā nogulsnējušo datu atjaunošana pēc spekulatīvas operāciju izpildes rezultāta izmešanas, apstrādājot mainīgas rakstīšanas un lasīšanas darbības, izmantojot netiešo adresēšanu. Kad lasīšanas darbība seko rakstīšanas darbībai (piemēram, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), lasīšanas adreses nobīde jau var būt zināma līdzīgu darbību dēļ (lasīšanas darbības ir tiek veikta daudz biežāk un nolasīšanu var veikt no kešatmiņas), un procesors var spekulatīvi veikt nolasīšanu pirms rakstīšanas, negaidot, kamēr tiks aprēķināta rakstīšanas novirzes nobīde.

Šī funkcija ļauj lasīt instrukciju, lai piekļūtu vecai vērtībai noteiktā adresē, kamēr veikala darbība vēl nav pabeigta. Ja ir prognozēšanas kļūda, neveiksmīgā spekulatīvā darbība tiks atmesta, bet tās izpildes pēdas paliks procesora kešatmiņā, un tās var izgūt, izmantojot kādu no kešatmiņas satura noteikšanas metodēm, pamatojoties uz piekļuves izmaiņu analīzi. laiks kešatmiņā saglabātajiem un neglabātajiem datiem.

AMD Zen 3 procesoriem pievienotais PSF optimizē STLF (Store-To-Load-Forwarding), kas spekulatīvi veic lasīšanas darbības, paredzot attiecības starp lasīšanas un rakstīšanas darbībām. Lietojot klasisko STLF, procesors veic "load" operāciju datiem, kas tieši pārsūtīti no iepriekšējās komandas "veikals", negaidot, kad rezultāts reāli tiks ierakstīts atmiņā, bet pārliecinoties, ka "ielādē" izmantotās adreses un "veikals" komandas sakrīt. PSF optimizācija padara adreses pārbaudi spekulatīvu un veic "slodzes" darbību pirms adreses informācijas aprēķināšanas, ja iepriekš ir izpildīts veikala/ielādēšanas pāris, kas manipulē ar vienu adresi. Ja prognozēšana neizdodas, stāvoklis tiek atgriezts, bet dati paliek kešatmiņā.

Uzbrukums PŠŠ ir iespējams tikai viena līmeņa privilēģiju ietvaros, aptver tikai pašreizējo procesa kontekstu un tiek bloķēts ar adrešu telpas izolācijas metodēm vai aparatūras smilškastes mehānismiem. Šajā gadījumā problēma var ietekmēt programmatūras smilškastes metodes procesos. Uzbrukums apdraud tādas sistēmas kā pārlūkprogrammas, koda izpildes virtuālās mašīnas un JIT, kas viena procesa ietvaros izpilda trešās puses kodu (uzbrukums var ļaut neuzticamam smilškastes kodam piekļūt citiem procesa datiem).

AMD ir piedāvājis vairākas metodes pilnīgai vai selektīvai PŠŠ atspējošanai, taču, ņemot vērā niecīgo risku lielākajai daļai lietojumprogrammu, ir ieteikusi šo optimizāciju neatspējot pēc noklusējuma. Lai selektīvi aizsargātu procesus, kas izolē tos, kas izpilda neuzticamu kodu, tiek piedāvāts atspējot PSF, iestatot “SSBD” un “PSFD” MSR bitus, tostarp atsevišķiem pavedieniem. Linux kodolam ir sagatavoti ielāpi, ieviešot komandrindas opcijas “psfd” un “nopsfd”, kas kontrolē, kā tiek ieslēgts un izslēgts PSF.

Avots: opennet.ru

Pievieno komentāru