Seouli Ălikooli ja ettevĂ”tte Samsung teadlaste rĂŒhm on vĂ€lja töötanud ARM-protsessoritele suunatud rĂŒnnete tehnika, mille koodnimi on TikTag. Seda saab kasutada MemTag (MTE, Memory Tagging Extension) riistvarakaitse mehhanismi ĂŒmberkĂ€imiseks, mis on olemas ARMv8.5-A arhitektuuriga kiipides. RĂŒnne vĂ”imaldab tuvastada TikTagi silte suvalistes mĂ€luaadressides, mis tulenevad andmelekkest, mis toimub protsessori spetsiifilise juhiseid spekuleerimise ajal.
MemTag tehnoloogia vĂ”imaldab siduda silte mĂ€lupiirkondadega ja korraldada pointerite kasutamise korrektuse kontrollimise, et vĂ€ltida haavatavuste Ă€rakasutamist, mis on pĂ”hjustatud juba vabastatud mĂ€lublockidele, puhvri ĂŒlevoolule ja algatamata pöördumisele. MemTag'i kasutamisel luuakse iga 16 baiti fĂŒĂŒsilise mĂ€lu kohta 4-bitine silt, mis toimib toel nagu juurdepÀÀsuvĂ”ti sellele mĂ€lule. Sildi saab genereerida rakenduse poolt eraldatud mĂ€lupiirkonnale spetsiaalsete protsessorijuhiste abil ning seejĂ€rel salvestada pointeri ĂŒlemistesse kasutamata bittidesse. Kui pöörduda mĂ€lu poole, kasutades sildiga pointerit, kontrollib protsessor sildi vastavust pointeriga seotud siltide ja mĂ€lublockide vahel ning lubab juurdepÀÀsu ainult siis, kui sildid ĂŒhtivad.
Esitatud rĂŒnnete meetod vĂ”imaldab mÀÀrata mĂ€lublockidega seotud sildid ja vĂ€ltida MemTag kaitset. Teadlased on demonstreerinud vĂ”imalust teostada TikTag rĂŒnne, kasutades haavatavusi Linuxi tuumas ja brauseris Chrome, kasutades nende toodete juhiseid (kĂ”rvaltoimet), mis viivad koodide spekulatiivse tĂ€itmiseni. Sellised kĂ”rvaltoimed, kui neid tĂ€idetakse spekulatiivses reĆŸiimis pointeritega töötava koodi jĂ€rgi, kutsuvad esile MemTagi metaandmete lugemise, olenevalt vĂ€listest tingimustest, millele rĂŒndaja vĂ”ib mĂ”ju avaldada. PĂ€rast vale prognoosi mÀÀramist visatakse spekulatiivse tĂ€itmise tulemus kĂ”rvale, kuid saadud andmed jÀÀvad vahemĂ€llu ja neid saab seejĂ€rel vĂ€lja tĂ”mmata kĂ”rvalkanalite analĂŒĂŒsi teel. MemTagi kaitse eduka ĂŒmbersĂ”idu tĂ”enĂ€osus testitud katsetes hinnati 95%-ks, kui rĂŒnne viidi lĂ€bi umbes 4 sekundi jooksul.

Tuvastatud on kaks tĂŒĂŒpi seadmeid, mis vĂ”ivad pĂ”hjustada MemTagi siltide lekkeid. Esimesel juhul tekib spekulatiivne tĂ€itmine vale haruennustuse tĂ”ttu ning seadme tĂ€itmise tingimusi saab luua sĂŒsteemikĂ”nede manipuleerimise kaudu. Teisel juhul
tekib spekulatiivne tĂ€itmine seoses viga lugemise ja kirjutamise operatsioonide vaheline seose ennustamises STLF-i (Store-To-Load-Forwarding) optimeerimise kasutamisel, mis vĂ”imaldab silti leida, hindades vahemĂ€lu olekut (kui silt vastab, suunatakse vÀÀrtus otse eelmisest 'store' kĂ€sust 'load' operatsiooni ja muutub vahemĂ€lu olek). Esimene tĂŒĂŒp seadmeid sobib Linuxi tuumale rĂŒnnakuks, teine aga JavaScripti mootorile V8, mida kasutatakse Chromiumi pĂ”hjal olevates brauserites. RĂŒnnaku teostamise prototĂŒĂŒp on avaldatud GitHubis.


EttevĂ”te ARM on kinnitanud vĂ”imalust rĂŒnnata sĂŒsteeme, millel on Cortex-X2, Cortex-X3, Cortex-A510, Cortex-A520, Cortex-A710, Cortex-A715 ja Cortex-A720 protsessorid, kuid ei kavatse muuta CPU-d probleemi blokeerimiseks, kuna MemTagi arhitektuur nĂ€eb ette, et sildid ei ole rakenduste jaoks salajased andmed. Chromiumi koodibaasis jÀÀb probleem samuti lahendamata, kuna brauseris Chrome pole MemTagi pĂ”hine kaitse vaikimisi kasutusel. Androidi platvormi turvameeskond tunnustas vĂ”imalust rĂŒnnata Pixel 8 seadmeid, mis kasutavad MemTagi kaitset, lisades parandusi lekete blokeerimiseks ja vĂ€ljendades valmisolekut maksta tasu leitud haavatavuse eest.
RĂŒnnaku blokeerimise kĂ”rvalmeetodidena pakuvad teadlased kasutada sb vĂ”i isb kĂ€ske spekulatiivse tĂ€itmise keelamiseks mĂ€luga seotud kriitiliste operatsioonide ajal vĂ”i lisada vahele haru pĂ”histruktuuride ja mĂ€luekstraktsioonide vahel muid kĂ€ske.
Allikas: opennet.ru
