AMD on kinnitanud AMD Zen 3 protsessorite potentsiaalset haavatavust Spectre-STL rünnaku suhtes

AMD on avaldanud Zen 3 seeria protsessorites rakendatud PSF (Predictive Store Forwarding) optimeerimistehnoloogia turvalisust analüüsiva raporti.Uuring kinnitas teoreetiliselt 4. aasta mais tuvastatud Spectre-STL (Spectre-v2018) ründemeetodi rakendatavust PSF-tehnoloogia, kuid praktikas ei ole veel leitud koodimalle, mis suudaksid rünnakuni viia ja üldist ohtu hinnatakse ebaoluliseks.

Tuletagem meelde, et Spectre-v4 (Spekulatiivne Store Bypass) rünnak põhineb protsessori vahemällu settinud andmete taastamisel pärast operatsioonide spekulatiivse täitmise tulemusest loobumist vahelduvate kirjutamis- ja lugemisoperatsioonide töötlemisel kaudse adresseerimisega. Kui lugemisoperatsioon järgneb kirjutamistoimingule (nt mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), võib lugemisaadressi nihe olla juba teada sarnaste sooritatavate toimingute tõttu (lugemistoimingud on tehakse palju sagedamini ja lugemisi saab teha vahemälust) ning protsessor võib spekulatiivselt lugeda enne kirjutamist, ootamata kirjutamise kaudsuuna nihke arvutamist.

See funktsioon võimaldab lugemisjuhisel juurdepääsu vanale väärtusele mõnel aadressil, kui poe toiming pole veel lõppenud. Kui esineb ennustusviga, jäetakse ebaõnnestunud spekulatiivne toiming kõrvale, kuid selle täitmise jäljed jäävad protsessori vahemällu ja neid saab kätte ühe vahemälu sisu määramise meetodi abil, mis põhineb juurdepääsu muutuste analüüsil. aega vahemällu salvestatud ja vahemällu salvestamata andmetele.

AMD Zen 3 protsessoritele lisatud PSF optimeerib STLF-i (Store-To-Load-Forwarding), mis teostab lugemistoiminguid spekulatiivselt, ennustades lugemis- ja kirjutamistoimingute vahelist seost. Klassikalise STLF-i kasutamisel sooritab protsessor eelmisest "poe" käsust otse edastatud andmetele operatsiooni "laadimine", ootamata, kuni tulemus reaalselt mällu kirjutatakse, vaid jälgides, et "laadimisel" kasutatavad aadressid oleksid õiged. ja "poe" käsud sobivad. PSF-i optimeerimine muudab aadressi kontrollimise spekulatiivseks ja teostab enne aadressiteabe arvutamist "laadimise" operatsiooni, kui ühte aadressi manipuleeriv poe/laadimise paar on eelnevalt käivitatud. Kui ennustus ebaõnnestub, keeratakse olek tagasi, kuid andmed jäävad vahemällu.

PSF-i rünnak on võimalik ainult ühe privileegide taseme raames, see hõlmab ainult praegust protsessi konteksti ja on blokeeritud aadressiruumi eraldamise meetodite või riistvaraliste liivakastimehhanismidega. Sel juhul võib probleem mõjutada tarkvara liivakasti meetodeid protsessides. Rünnak kujutab endast ohtu sellistele süsteemidele nagu brauserid, koodikäivitamisega virtuaalmasinad ja JIT-id, mis käivitavad ühe protsessi raames kolmanda osapoole koodi (rünnak võib võimaldada ebausaldusväärsel liivakastikoodil juurdepääsu muudele protsessiandmetele).

AMD on pakkunud mitmeid meetodeid PSF-i täielikuks või valikuliseks keelamiseks, kuid arvestades enamiku rakenduste ebaolulist riski, on soovitanud seda optimeerimist vaikimisi mitte keelata. Ebausaldusväärse koodi täitjaid isoleerivate protsesside valikuliseks kaitsmiseks tehakse ettepanek PSF keelata, seadistades MSR-bitid „SSBD” ja „PSFD”, sealhulgas üksikute lõimede jaoks. Linuxi tuuma jaoks on ette valmistatud paigad, mis rakendavad käsurea valikuid "psfd" ja "nopsfd", mis juhivad PSF-i sisse- ja väljalülitamist.

Allikas: opennet.ru

Lisa kommentaar