Az AMD megerősítette az AMD Zen 3 CPU-k potenciális sebezhetőségét a Spectre-STL támadással szemben

Az AMD közzétett egy jelentést, amely a Zen 3 sorozatú processzorokban megvalósított PSF (Predictive Store Forwarding) optimalizálási technológia biztonságát elemzi. A tanulmány elméletileg megerősítette a 4 májusában azonosított Spectre-STL (Spectre-v2018) támadási módszer alkalmazhatóságát. PSF technológia, de a gyakorlatban még nem találtak olyan kódsablont, amely támadáshoz vezethetne, és az általános veszélyt jelentéktelennek értékelik.

Emlékezzünk vissza, hogy a Spectre-v4 (Spekulatív Store Bypass) támadás a processzor gyorsítótárában elhelyezkedő adatok visszaállításán alapul, miután a műveletek spekulatív végrehajtásának eredményét elvettük a váltakozó írási és olvasási műveletek indirekt címzéssel történő feldolgozásakor. Ha egy olvasási művelet írási műveletet követ (pl. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), az olvasási cím eltolása már ismert lehet a hasonló műveletek végrehajtása miatt (az olvasási műveletek sokkal gyakrabban hajtják végre, és az olvasás a gyorsítótárból is végrehajtható), és a processzor spekulatív módon tud olvasni az írás előtt anélkül, hogy megvárná az írási indirekt eltolás kiszámítását.

Ez a funkció lehetővé teszi, hogy egy olvasási utasítás hozzáférjen egy régi értékhez egy bizonyos címen, miközben a tárolási művelet még nem fejeződött be. Előrejelzési hiba esetén a sikertelen spekulatív műveletet eldobják, de végrehajtásának nyomai a processzor gyorsítótárában maradnak, és a gyorsítótár tartalmának meghatározásának egyik módszerével visszakereshetők a hozzáférés változásainak elemzése alapján. idő a gyorsítótárazott és nem gyorsítótárazott adatokhoz.

Az AMD Zen 3 processzorokhoz hozzáadott PSF optimalizálja az STLF-et (Store-To-Load-Forwarding), amely az olvasási és írási műveletek közötti kapcsolat előrejelzésével spekulatív módon hajtja végre az olvasási műveleteket. Klasszikus STLF használatakor a processzor "load" műveletet hajt végre az előző "store" parancsból közvetlenül továbbított adatokon, anélkül, hogy megvárná, hogy az eredmény ténylegesen a memóriába kerüljön, hanem ügyeljen arra, hogy a "load" során használt címek legyenek. és a "store" parancsok egyeznek. A PSF optimalizálás spekulatívsá teszi a címellenőrzést, és "betöltési" műveletet hajt végre a címinformáció kiszámítása előtt, ha előzőleg egyetlen címet manipuláló tároló/betöltés pár került végrehajtásra. Ha az előrejelzés sikertelen, az állapot visszaáll, de az adatok a gyorsítótárban maradnak.

A PSF elleni támadás csak egy jogosultsági szint keretein belül lehetséges, csak az aktuális folyamatkörnyezetet fedi le, és blokkolja a címtér-izolációs módszerek vagy a hardveres sandbox mechanizmusok. Ebben az esetben a probléma potenciálisan érintheti a folyamatokban lévő szoftveres sandbox-módszereket. A támadás fenyegetést jelent az olyan rendszerekre, mint a böngészők, kódvégrehajtó virtuális gépek és JIT-ek, amelyek harmadik féltől származó kódot hajtanak végre egyetlen folyamaton belül (a támadás lehetővé teheti, hogy a nem megbízható sandbox kód hozzáférjen más folyamatadatokhoz).

Az AMD számos módszert kínált a PSF teljes vagy szelektív letiltására, de tekintettel a legtöbb alkalmazás elhanyagolható kockázatára, azt javasolta, hogy ez az optimalizálás alapértelmezés szerint ne legyen letiltva. A megbízhatatlan kódot futtatókat elkülönítő folyamatok szelektív védelme érdekében javasolt a PSF letiltása az „SSBD” és „PSFD” MSR bitek beállításával, beleértve az egyes szálakat is. A Linux kernelhez javításokat készítettek a „psfd” és „nopsfd” parancssori opciókkal, amelyek szabályozzák a PSF be- és kikapcsolását.

Forrás: opennet.ru

Hozzászólás