A Google Cloud csapat fejlesztői biztonsági rést azonosítottak (CVE-2019-9836) az AMD SEV technológia (biztonságos titkosított virtualizáció), amely veszélyeztetheti az ezzel a technológiával védett adatokat.
AMD SEV hardver szintene biztosítja a virtuális gépek átlátszó memóriatitkosítását, ahol csak a jelenlegi vendégrendszer fér hozzá a visszafejtett adatokhoz, míg a többi virtuális gép és a hipervizor titkosított adatok halmazát kapja meg, amikor hozzáfér ehhez a memóriához.
A feltárt probléma lehetővé teszi a PDH magánkulcs tartalmának teljes visszaállítását amelyet egyetlen védett PSP (AMD Security Processor) processzor szintjén dolgoznak fel, amely a fő operációs rendszer számára nem elérhető.
A támadó a PDH kulcs birtokában visszaállíthatja a munkamenet kulcsát és a titkos sorrendjét a virtuális gép létrehozásakor és a titkosított adatok elérésekor kell megadni.
A sérülékenység az elliptikus görbék végrehajtásának hibáinak köszönhető (ECC) a titkosításhoz, amelyek lehetővé teszik a támadás számára a görbe paramétereinek visszaállítását.
A védett virtuális gép start parancsának végrehajtása során a támadó olyan görbeparamétereket küldhet, amelyek nem egyeznek a NIST által ajánlott paraméterekkel, ami alacsony sorrendű pontértékek használatához vezet a szorzási műveletekben a privát adatokkal kulcs.
Megállapítást nyert, hogy az SEV Elliptical Curve (ECC) megvalósítása sérülékeny az érvénytelen görbe támadással szemben. Az indítás indításakor a támadó küldhet
A kis sorrendű ECC pontok nem szerepelnek a hivatalos NIST görbékben, és arra kényszerítik az SEV firmware-t, hogy szorozzon egy kis rendelési pontot a skaláris firmware saját DH-jával.
Elegendő moduláris hulladék összegyűjtésével a támadó helyreállíthatja a teljes PDH magánkulcsot. A PDH használatával a támadó helyreállíthatja a munkamenet kulcsát és elindíthatja a virtuális gép titkát. Ez megsérti az SEV által biztosított titoktartási garanciákat.
Az ECDH protokoll biztonsága közvetlenül függ a létrehozott kezdőpont sorrendjétől görbe, amelynek diszkrét logaritmusa nagyon összetett feladat.
Az AMD SEV környezet inicializálásának egyik lépése során a felhasználótól kapott paramétereket használják a számításokhoz egy privát kulccsal.
Lényegében két pont megszorzásának műveletét hajtják végre, amelyek egyike megfelel a magánkulcsnak.
Ha a második pont alacsony sorrendű prímszámokra utal, akkor a támadó az összes lehetséges érték felsorolásával meghatározhatja az első pont paramétereit (a hatványozási modulo műveletben használt modulo bitjeit). A prímszámok kiválasztott töredékei kombinálhatók a magánkulcs meghatározásához a maradványokra vonatkozó kínai tétel segítségével.
Érvénytelen görbetámadás esetén az ECDH pontszorzást egy másik görbén hajtják végre - különböző paraméterekkel (a, b). Ez a rövid Weierstrass pontösszeg függvényben lehetséges, mivel a "b" paramétert nem használják.
Ezen a görbén a pontnak kis az elsődleges sorrendje. A kis rendelési pont összes lehetséges értékének kipróbálásával a támadó lekérheti a privát skalárbiteket (módosíthatja a sorrendet).
Problémát jelentenek az AMD EPYC szerverplatformok, amelyek a SEV firmware-t használják a 0.17-es verzió 11-ig.
Az AMD már kiadott egy firmware-frissítést, amely zárolást adott a NIST görbével nem egyező pontok használatára.
Ugyanakkor a PDH-kulcsok korábban generált tanúsítványai érvényesek maradnak, lehetővé téve a támadó számára, hogy támadást hajtson végre a virtuális gép migrációja ellen olyan környezetekből, amelyek védettek a probléma által érintettek sebezhetősége ellen.
Ugyancsak megemlítik az előző sérülékeny verzió firmware-verziójának visszavágási támadásának lehetőségét, de ezt a funkciót még nem erősítették meg.
forrás: https://seclists.org/