Amsterdam Free University'i teadlaste grupp tutvustas uut SLAM (Spectre Linear Address Masking) rĂŒnnaku tehnikat, mille eesmĂ€rk on leida uusi viise Spectre mikroarhitektuursete haavatavuste Ă€rakasutamiseks. Nendes rĂŒnnakutes toimub andmete leke mittekanoniliste aadresside tĂ”lkimise kĂ€igus ning kanonilisuse kontrollide ĂŒletamiseks kasutatakse uutes protsessorites pakutavaid lineaarsete aadresside maskeerimise laiendusi. Teadlased on avaldanud tööriistakomplekti meetodi rakendamiseks ja esitanud demonstraatsiooni, mis nĂ€itab, kuidas saab tuumamĂ€lust vĂ€lja tĂ”mmata andmeid vastava maskiga (nĂ€idatud on, kuidas Ubuntu sĂŒsteemis mĂ”ne sekundiga tuvastada tuumamĂ€lust rida, millel on root-kasutaja parooli hash).

RĂŒnnakut saab teostada Intel'i protsessorites, mis toetavad LAM (Linear Address Masking) laiendust, AMD protsessorites, millel on UAI (Upper Address Ignore) laiendus, ja ARM protsessorites, mis toetavad TBI (Top Byte Ignore) laiendust. Need laiendused vĂ”imaldavad kasutada osa 64-bitiste pointerite bitte, et salvestada aadressiga mitteseotut metaandmeid (tavaliste programmide jaoks ei ole nii palju mĂ€lu vajalik, et nad saaksid adresseerida 64-bitiseid pointereid, seega vĂ”ivad ĂŒlemised bitid olla kaasatud nĂ€iteks turvalisusega seotud kontrollidesse). HuviĂ€ratav on see, et Intel, AMD ja ARM protsessorid, mis toetavad LAM, UAI ja TBI, on veel vaid kuulutatud, kuid mitte massiliselt toodetud, mis teeb SLAM'i esimeseks spekulatiivseks rĂŒnnakuks tulevastele CPU-dele. RĂŒnnakut vĂ”ib teostada ka vanemates AMD CPU-des Zen+ ja Zen 2, mis on vastuvĂ”tlikud haavatavusele CVE-2020-12965.
Sarnaselt Spectre haavatavuste kasutamisele nĂ”uab SLAM rĂŒnnak teatud vajalikku kĂ€skude jĂ€rjestust (gadĆŸette), mis viib spekulatiivse kĂ€skude tĂ€itmiseni. Sellised kĂ€sud pĂ”hjustavad spekulatiivset andmete lugemist mĂ€lust, sĂ”ltuvalt vĂ€listest tingimustest, milles rĂŒndaja vĂ”ib mĂ”jutada. PĂ€rast vale prognoosi mÀÀramist jĂ€etakse spekulatiivse tĂ€itmise tulemus kĂ”rvale, kuid töödeldud andmed jÀÀvad vahemĂ€lu ja neid on hiljem vĂ”imalik taastada kolmandate osapoolte kanalite analĂŒĂŒsi abil. VahemĂ€lu kĂ”rvale jÀÀnud andmete taastamiseks kasutatakse teadlaste seas meetodit Evict+Reload, mis pĂ”hineb tingimuste loomisel andmete eemaldamiseks vahemĂ€lust (nĂ€iteks luuakse aktiivsus, mis tĂ€idab vahemĂ€lu ĂŒhtlaselt tĂŒĂŒpilise sisu) ja operatsioonide sooritamisel, mille tĂ€itmise aeg vĂ”imaldab vĂ€lja selgitada, kas andmeid on protsessori vahemĂ€lus.
SLAM rĂŒnnaku teostamiseks kasutatakse gadĆŸette, mis pĂ”hinevad koodil, kus rĂŒndaja kontrollitavad andmed (allpool muutuja "secret") toimivad nĂ€idikuna. NĂ€iteks: void unmasked_gadget(long **secret) { **secret; }
T tĂ€hele on, et selliseid koodimalleid kasutatakse sageli programmis, nĂ€iteks on Linuxi tuumas tuvastatud kĂŒmneid tuhandeid selliseid gadĆŸette, millest vĂ€hemalt paar sada on kasutamiseks eksploittides sobilikud. Leekimist saab blokeerida, lisades sellistesse gadĆŸettidesse tĂ€iendavaid kĂ€ske, mis blokeerivad spekulatiivse tĂ€itmise. EttevĂ”te Intel kavatseb pakkuda tarkvaralist meetodit leakide blokeerimiseks enne LAM-tugiga protsessorite tarnimist. EttevĂ”te AMD soovitas kasutada olemasolevaid meetodeid Spectre v2 rĂŒnnakute blokeerimiseks. Linuxi tuuma arendajad otsustasid rĂŒnnaku kaitsmiseks vaikimisi LAM-tugi keelata, kuni Intel annab vĂ€lja soovitused haavatavuse blokeerimiseks.
Allikas: opennet.ru
