Pár napja a Drezdai Műszaki Egyetem kutatócsoportja bemutatta hogy azonosították biztonsági rés (CVE-2020-12965) amely lehetővé teszi a Meltdown osztályú támadást a Zen + és Zen 2 alapú AMD processzorok ellen.
kezdetben Az AMD Zen + és Zen 2 processzorokat nem fogékonynak vélték a Meltdown sebezhetőségére, de a kutatók azonosítottak egy jellemzőt ami spekulatív hozzáféréshez vezet a védett memóriaterületekhez nem kanonikus virtuális címek használatakor.
A nyomozóks megemlíti, hogy az AMD64 architektúra csak az első 48 bit használatát foglalja magában a virtuális címről és figyelmen kívül hagyja a fennmaradó 16 bitet és ezzel azt határozták meg, hogy a 48-63 biteknek mindig másolniuk kell a 47 bit értékét.
Értem ha ezt a feltételt megsértik és megkísérlik a címet a felső bit tetszőleges értékeivel címezni, a processzor kivételt dob. A felső bitek ismételt kitöltése a rendelkezésre álló címtér két blokkra történő felosztásához vezet.
A megadott blokkokba illeszkedő címeket kanonikusnak, az önkényes, nagyobb bittartalmú érvénytelen címeket pedig nem kanonikusnak nevezzük. A kanonikus címek alsó tartománya általában a folyamatadatokhoz van hozzárendelve, a felső tartomány pedig a kerneladatokhoz (a megadott címekhez való hozzáférés a felhasználói térből blokkolva van a jogosultságok szétválasztásának szintjén).
A klasszikus sebezhetőség Az olvadás azon a tényen alapul, hogy a spekulatív végrehajtás során Utasítás, a processzor hozzáférhet egy privát adatterülethez, majd eldobhatja az eredményt, mivel a létrehozott jogosultságok tiltják az ilyen hozzáférést a felhasználói folyamatból.
A programban a spekulatívan végrehajtott blokkot egy feltételes ág választja el a főkódtól, amely valós körülmények között mindig aktiválódik, de amiatt, hogy a feltételes deklaráció olyan számított értéket használ, amelyet a processzor nem tud a végrehajtás során a kód, az összes elágazási opció spekulatív végrehajtása történik.
Mivel la spekulatív műveletek ugyanazt a gyorsítótárat használják mint a normálisan végrehajtott utasításoknál, végrehajtás közben lehetséges spekulatív gyorsítótárazási könyvjelzők tükrözik az egyes bitek tartalmát zárt memóriaterületen, majd normálisan végrehajtott kódban, hogy az Időelemzés segítségével meghatározza értékét a gyorsítótárazott és nem gyorsítótárazott adatokhoz.
Az új biztonsági rés sajátossága az AMD Zen + és Zen 2 processzorokat érinti, hogy a CPU -k spekulatív végrehajtást tesznek lehetővé olvasási és írási műveletek, amelyek érvénytelen, nem kanonikus címek segítségével férnek hozzá a memóriához, csak figyelmen kívül hagyva a felső 16 bitet.
Ezért a spekulatív kódvégrehajtási folyamatban a processzor mindig csak az alsó 48 bitet használja, és a cím érvényesítése külön történik. Ha egy nem kanonikus virtuális cím fizikai asszociatív fordítási pufferben (TLB) történő lefordításakor, ha a cím kanonikus része megegyezik, a spekulatív betöltési művelet a felső 16 bit tartalmától függetlenül értéket ad vissza, megkerülheti a szálak közötti memóriamegosztást. Később a műveletet érvénytelenítik és elvetik, de memóriahozzáférést hajtanak végre, és az adatokat gyorsítótárazzák.
A kísérlet során használva a gyorsítótár tartalom észlelési technikája FLUSH + RELOAD, a kutatók képesek voltak csatornát szervezni titkos adatok továbbítására sebesség 125 bájt másodpercenként.
Ugyanazok a technikák, amelyek segítenek megakadályozni a Meltdown támadásokat, mint például az LFENCE utasítások, védekezhetnek az új támadással szemben.
Ugyanakkor, a kutatók megjegyzik, Az Intel processzorokhoz képest az A processzorok architektúrájaAz MD korlátozza a valódi támadások lehetőségét, de nem zárja ki egy új módszer használatát más mikroarchitekturális támadásokkal kombinálva hatékonyságának növelése érdekében.
Különösen a javasolt támadási lehetőség nem teszi lehetővé a kernel memóriaterületeinek és más folyamatok tartalmának meghatározását, hanem csak arra korlátozódik, hogy hozzáférhet ugyanazon program más szálaihoz, amelyek ugyanazon a virtuális memóriaterületen futnak.
forrás: https://www.amd.com, https://arxiv.org/