CROSSTalk – az Intel CPU-k biztonsági rése, amely adatszivárgáshoz vezet a magok között

A Vrije Universiteit Amsterdam kutatócsoportja újat azonosított sebezhetőség (CVE-2020-0543) az Intel processzorok mikroarchitektúrás struktúráiban, ami abból a szempontból figyelemre méltó, hogy lehetővé teszi néhány másik CPU magon végrehajtott utasítás végrehajtásának eredményének visszaállítását. Ez az első sérülékenység a spekulatív utasítás-végrehajtási mechanizmusban, amely lehetővé teszi az egyes CPU-magok közötti adatszivárgást (korábban a szivárgások ugyanazon mag különböző szálaira korlátozódtak). A kutatók a problémát CROSSTalk-nak nevezték el, de Intel dokumentumok A sérülékenységet SRBDS-nek (Special Register Buffer Data Sampling) nevezik.

A sebezhetőség a következőhöz kapcsolódik bemutatott egy évvel ezelőtt az MDS (Microarchitectural Data Sampling) problémák osztályába került, és az oldalcsatornás elemzési módszerek alkalmazásán alapul mikroarchitektúra-struktúrák adataira. A működés elve A CROSSTalk közel áll a sebezhetőséghez RIDL, de különbözik a szivárgás forrásától.
Az új biztonsági rés egy korábban nem dokumentált köztes puffer szivárgását manipulálja, amelyen az összes CPU mag osztozik.

CROSSTalk – az Intel CPU-k biztonsági rése, amely adatszivárgáshoz vezet a magok között

A probléma lényege az, hogy néhány mikroprocesszor utasítás, köztük az RDRAND, RDSEED és SGX EGETKEY, a belső mikroarchitektúrás SRR (Special Register Reads) művelettel valósul meg. Az érintett processzorokon az SRR-hez visszaküldött adatok egy, az összes CPU magra közös köztes pufferbe kerülnek, majd átkerülnek egy kitöltési pufferbe, amely ahhoz a konkrét fizikai CPU maghoz van társítva, amelyen az olvasási műveletet kezdeményezték. Ezután a feltöltési puffer értékeit az alkalmazások számára látható regiszterekbe másolja.

A közbenső megosztott puffer mérete megfelel a gyorsítótár sorának, amely általában nagyobb, mint az olvasott adatok mérete, és a különböző olvasások a puffer különböző eltolásait befolyásolják. Mivel a megosztott puffer teljes egészében a kitöltési pufferbe másolásra kerül, nem csak az aktuális művelethez szükséges rész kerül áthelyezésre, hanem a többi műveletből megmaradt adatok is, beleértve a más CPU magokon végrehajtott műveleteket is.

CROSSTalk – az Intel CPU-k biztonsági rése, amely adatszivárgáshoz vezet a magok között

CROSSTalk – az Intel CPU-k biztonsági rése, amely adatszivárgáshoz vezet a magok között

Ha a támadás sikeres, a rendszerben hitelesített helyi felhasználó meghatározhatja az RDRAND, RDSEED és EGETKEY utasítások végrehajtásának eredményét egy idegen folyamatban vagy egy Intel SGX enklávéban, függetlenül attól, hogy a kódot melyik CPU magon hajtják végre.
Kutatók, akik azonosították a problémát közzétett Prototípus kihasználása, amely bemutatja az RDRAND és RDSEED utasításokon keresztül nyert véletlen értékek információinak kiszivárogtatását az Intel SGX enklávéban feldolgozott ECDSA privát kulcs visszaállítására, miután csak egy digitális aláírási műveletet hajtottak végre a rendszeren.


probléma fogékony asztali, mobil és szerver Intel processzorok széles választéka, beleértve a Core i3, i5, i7, i9, m3, Celeron (J, G és N sorozat), Atom (C, E és X sorozat), Xeon (E3, E5, E7 családok , W és D), Xeon Scalable stb. Figyelemre méltó, hogy az Intelt 2018 szeptemberében értesítették a sérülékenységről, 2019 júliusában pedig egy exploit prototípust biztosítottak, amely a CPU magok közötti adatszivárgást demonstrálja, de a javítás kidolgozása a megvalósítás bonyolultsága miatt késett. A mai javasolt mikrokód-frissítés úgy oldja meg a problémát, hogy megváltoztatja az RDRAND, RDSEED és EGETKEY utasítások viselkedését, így felülírja az adatokat a megosztott pufferben, hogy megakadályozza a maradék információk lerakódását. Ezenkívül a pufferelérés szünetel, amíg a tartalom be nem olvassa és átírja.

Az ilyen típusú védelem mellékhatása a megnövekedett késleltetés az RDRAND, RDSEED és EGETKEY végrehajtásakor, valamint az átviteli sebesség csökkenése, ha ezeket az utasításokat különböző logikai processzorokon egyidejűleg próbálják végrehajtani. Az RDRAND, RDSEED és EGETKEY végrehajtása felfüggeszti a többi logikai processzor memóriahozzáférését is. Ezek a szolgáltatások negatívan befolyásolhatják egyes szerveralkalmazások teljesítményét, ezért a firmware egy olyan mechanizmust (RNGDS_MITG_DIS) biztosít, amely letiltja az Intel SGX enklávéján kívül végrehajtott RDRAND és RDSEED utasítások védelmét.

Forrás: opennet.ru

Hozzászólás