A Grazi Műszaki Egyetem (Ausztria) és a Helmholtz Center for Information Security (CISPA) kutatóiból álló csoport
A Foreshadow támadás azt a tényt használja ki, hogy amikor egy virtuális címen érik el a memóriát, ami kivételt (terminállaphiba) eredményez, a processzor spekulatív módon kiszámítja a fizikai címet, és betölti az adatokat, ha az elérhető az L1 gyorsítótárban. A spekulatív hozzáférést a memórialaptábla-keresés befejezése előtt hajtják végre, függetlenül a memórialaptábla-bejegyzés (PTE) állapotától, pl. mielőtt ellenőrizné az adatok fizikai memóriában való jelenlétét és olvashatóságát. A memória rendelkezésre állás ellenőrzésének befejezése után a PTE-ben a jelen jelző hiányában a művelet elvetődik, de az adatok a gyorsítótárban maradnak, és az oldalcsatornákon keresztüli gyorsítótár tartalmának meghatározására szolgáló módszerekkel (a hozzáférési idő változásának elemzésével) visszakereshetők. gyorsítótárazott és nem gyorsítótárazott adatokhoz).
A kutatók kimutatták, hogy a Foreshadow elleni védekezés meglévő módszerei nem hatékonyak, és a probléma helytelen értelmezésével hajtják végre őket. Sebezhetőség
A Foreshadow a korábban elégségesnek tartott kernel biztonsági mechanizmusoktól függetlenül kihasználható. Ennek eredményeként a kutatók bemutatták a Foreshadow támadás végrehajtásának lehetőségét viszonylag régi kernelekkel rendelkező rendszereken, amelyekben az összes elérhető Foreshadow védelmi mód engedélyezve van, valamint új kernelekkel, amelyekben csak a Spectre-v2 védelem van letiltva (a a Linux kernel beállítása nospectre_v2).
Megállapították, hogy
prefetch a memóriaelérés során, de akkor fordul elő, amikor a felhasználói terület spekulatív dereferenciái regisztrálódnak a kernelben. A sérülékenység okának ez a félreértelmezése kezdetben ahhoz a feltételezéshez vezetett, hogy a Foreshadow adatszivárgása csak az L1 gyorsítótáron keresztül történhet, míg bizonyos kódrészletek (prefetch gadgetek) jelenléte a kernelben hozzájárulhat az L1 gyorsítótáron kívüli adatszivárgáshoz. például az L3 gyorsítótárban.
Az azonosított funkció új támadások létrehozásának lehetőségét is megnyitja, amelyek célja a virtuális címek fizikai címekké történő fordítása elszigetelt környezetben, valamint a CPU-regiszterekben tárolt címek és adatok meghatározása. Demonstrációként a kutatók bemutatták annak lehetőségét, hogy az azonosított hatás segítségével adatokat vonjanak ki az egyik folyamatból a másikba, körülbelül 10 bit/másodperc teljesítménnyel egy Intel Core i7-6500U CPU-val rendelkező rendszeren. Megjelenik az Intel SGX enklávéból való regisztertartalom kiszivárgásának lehetősége is (32 percbe telt egy 64 bites regiszterbe írt 15 bites érték meghatározása). Bizonyos típusú támadásokról kiderült, hogy megvalósíthatóak a JavaScriptben és a WebAssemblyben, például meg lehetett határozni egy JavaScript-változó fizikai címét, és a 64 bites regisztereket feltölteni a támadó által szabályozott értékkel.
A Foreshadow támadásnak az L3 gyorsítótáron keresztül történő blokkolásához a retpoline javításkészletben megvalósított Spectre-BTB (Branch Target Buffer) védelmi módszer hatékony. Ezért a kutatók úgy vélik, hogy engedélyezni kell a retpoline-t még azokon az új CPU-kkal rendelkező rendszereken is, amelyek már rendelkeznek védelemmel a CPU spekulatív végrehajtási mechanizmusának ismert sebezhetőségei ellen. Az Intel képviselői ugyanakkor kijelentették, hogy nem tervezik további védelmi intézkedések bevezetését a Foreshadow ellen a processzorokba, és elegendőnek tartják a Spectre V2 és L1TF (Foreshadow) támadások elleni védelmet.
Forrás: opennet.ru