Skupina raziskovalcev s Tehnične univerze v Gradcu (Avstrija) in Helmholtz Centra za informacijsko varnost (CISPA),
Napad Foreshadow izkorišča dejstvo, da pri dostopu do pomnilnika na navideznem naslovu, ki povzroči izjemo (napaka terminalske strani), procesor špekulativno izračuna fizični naslov in naloži podatke, če so na voljo v predpomnilniku L1. Špekulativni dostop se izvede, preden je iskanje v tabeli pomnilniških strani končano in ne glede na stanje vnosa v tabeli pomnilniških strani (PTE), tj. pred preverjanjem prisotnosti podatkov v fizičnem pomnilniku in njihove berljivosti. Ko je preverjanje razpoložljivosti pomnilnika končano, se v odsotnosti zastavice Present v PTE operacija zavrže, vendar podatki ostanejo v predpomnilniku in jih je mogoče pridobiti z metodami za določanje vsebine predpomnilnika prek stranskih kanalov (z analizo sprememb v dostopnem času v predpomnjene in nepredpomnjene podatke).
Raziskovalci so pokazali, da so obstoječe metode zaščite pred Foreshadow neučinkovite in se izvajajo z napačno razlago problema. Ranljivost
Foreshadow je mogoče izkoristiti ne glede na varnostne mehanizme jedra, ki so prej veljali za zadostne. Kot rezultat so raziskovalci pokazali možnost izvajanja napada Foreshadow na sisteme z relativno starimi jedri, v katerih so omogočeni vsi razpoložljivi načini zaščite Foreshadow, kot tudi z novimi jedri, v katerih je onemogočena samo zaščita Spectre-v2 (z uporabo možnost jedra Linux nospectre_v2).
Ugotovljeno je bilo, da
vnaprejšnje pridobivanje med dostopom do pomnilnika, vendar se pojavi, ko se v jedru registrirajo špekulativne razimenovanja uporabniškega prostora. Ta napačna interpretacija vzroka ranljivosti je sprva privedla do domneve, da lahko do uhajanja podatkov v Foreshadow pride samo prek predpomnilnika L1, medtem ko lahko prisotnost določenih izrezkov kode (pripomočki za vnaprejšnje pridobivanje) v jedru prispeva k uhajanju podatkov izven predpomnilnika L1, na primer v predpomnilniku L3.
Identificirana lastnost odpira tudi možnost ustvarjanja novih napadov, namenjenih procesom prevajanja virtualnih naslovov v fizične v izoliranih okoljih ter določanju naslovov in podatkov, shranjenih v registrih CPU. Kot predstavitev so raziskovalci pokazali možnost uporabe ugotovljenega učinka za pridobivanje podatkov iz enega procesa v drugega z zmogljivostjo približno 10 bitov na sekundo v sistemu s procesorjem Intel Core i7–6500U. Prikazana je tudi možnost uhajanja vsebine registra iz enklave Intel SGX (trajalo je 32 minut, da se določi 64-bitna vrednost, zapisana v 15-bitni register). Izkazalo se je, da je nekatere vrste napadov mogoče implementirati v JavaScript in WebAssembly, na primer, mogoče je bilo določiti fizični naslov spremenljivke JavaScript in izpolniti 64-bitne registre z vrednostjo, ki jo nadzoruje napadalec.
Za blokiranje napada Foreshadow prek predpomnilnika L3 je učinkovita zaščitna metoda Spectre-BTB (Branch Target Buffer), implementirana v kompletu popravkov retpoline. Zato raziskovalci menijo, da je treba pustiti retpoline omogočen tudi v sistemih z novimi procesorji, ki že imajo zaščito pred znanimi ranljivostmi v mehanizmu špekulativnega izvajanja procesorja. Hkrati so predstavniki Intela izjavili, da procesorjem ne nameravajo dodati dodatnih zaščitnih ukrepov proti Foreshadow in menijo, da zadostuje vključitev zaščite pred napadi Spectre V2 in L1TF (Foreshadow).
Vir: opennet.ru