Kaks rünnakut AMD protsessorite vahemälukanali ennustamismehhanismile

Grazi tehnikaülikooli (Austria) teadlaste rühm, kes oli varem tuntud rünnakumeetodite väljatöötamise poolest MDS, NetSpectre, Haamer и ZombieLoad, viis läbi uuringuid AMD protsessoritele spetsiifiliste riistvara optimeerimiste kohta ja on arenenud kaks uut külgkanalite rünnakute meetodit, mis manipuleerivad andmelekete AMD protsessorite LXNUMX vahemälukanali ennustamismehhanismi töö ajal. Neid meetodeid saab kasutada ASLR-i kaitse tõhususe vähendamiseks, haavatavate AES-rakenduste võtmete taastamiseks ja Spectre rünnaku tõhususe suurendamiseks.

Probleemid tuvastati kanali ennustamise mehhanismi (tee ennustaja) rakendamisel protsessori esimese taseme andmevahemälus (L1D), mida kasutatakse selleks, et ennustada, milline vahemälu kanal sisaldab teatud mäluaadressi. AMD protsessorites kasutatav optimeerimine põhineb μ-siltide (μTag) kontrollimisel. μTag arvutatakse, rakendades virtuaalsele aadressile spetsiifilist räsifunktsiooni. Töötamise ajal kasutab kanali ennustusmootor vahemälu kanali määramiseks tabelist μTagi. Seega võimaldab μTag protsessoril piirduda juurdepääsuga ainult kindlale kanalile, ilma kõiki valikuid otsimata, mis vähendab oluliselt protsessori energiatarbimist.

Kaks rünnakut AMD protsessorite vahemälukanali ennustamismehhanismile

Aastatel 2011–2019 välja antud AMD protsessorite eri põlvkondade kanaliennustussüsteemi juurutamise pöördprojekteerimise käigus tuvastati kaks uut külgkanali rünnaku tehnikat:

  • Collide+Probe – võimaldab ründajal jälgida juurdepääsu mälule protsessidele, mis töötavad samas loogilises CPU tuumas. Meetodi põhiolemus on kasutada virtuaalseid aadresse, mis põhjustavad kokkupõrkeid räsifunktsioonis, mida kasutatakse μTag arvutamiseks, et jälgida mälu juurdepääsu. Erinevalt Inteli protsessoritel kasutatavatest Flush+Reload ja Prime+Probe rünnakutest ei kasuta Collide+Probe ühismälu ja töötab füüsilisi aadresse teadmata.
  • Load+Reload – võimaldab väga täpselt määrata mälu juurdepääsu jälgi samal füüsilisel protsessori tuumal. Meetod põhineb asjaolul, et füüsiline mälurakk saab L1D vahemälus olla ainult üks kord. Need. samale mäluelemendile teisel virtuaalsel aadressil ligipääs põhjustab raku väljatõstmise L1D vahemälust, võimaldades jälgida juurdepääsu mälule. Kuigi rünnak tugineb jagatud mälule, ei tühjenda see vahemälu ridu, võimaldades varjatud rünnakuid, mis ei eemalda andmeid viimase taseme vahemälust.

Tuginedes Collide+Probe ja Load+Reload tehnikatele, on teadlased demonstreerinud mitmeid külgkanalite rünnaku stsenaariume:

  • Näidatud on võimalus kasutada meetodeid kahe protsessi vahelise peidetud kaudse sidekanali korraldamiseks, võimaldades andmeedastust kiirusega kuni 588 kB sekundis.
  • Kasutades μTagis kokkupõrkeid, oli täiesti uuendatud Linuxi süsteemis võimalik vähendada ASLR-i (Address Space Layout Randomization) erinevate variantide entroopiat ja mööda minna ASLR-i kaitsest kernelis. Kuvatakse ASLR-i entroopia vähendamise ründe teostamise võimalus nii kasutajarakendustest kui ka liivakastikeskkonnas käivitatava JavaScripti koodi ja teises külaliskeskkonnas töötava koodi abil.

    Kaks rünnakut AMD protsessorite vahemälukanali ennustamismehhanismile

  • Põhinedes Collide+Probe meetodil, rakendati rünnak krüpteerimisvõtme taastamiseks haavatavast teostusest (põhineb T-laud) AES-krüptimine.
  • Kasutades andmehõivekanalina meetodit Collide+Probe, suutis Spectre rünnak eraldada tuumast privaatseid andmeid ilma ühismälu kasutamata.

Haavatavus ilmneb mikroarhitektuuridel põhinevatel AMD protsessoritel
Buldooser, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ ja Zen2.
AMD-d teavitati probleemist 23. augustil 2019, kuid seni ei avaldanud aruannet teave haavatavuse blokeerimise kohta. Teadlaste sõnul saab probleemi blokeerida mikrokoodide värskenduste tasemel, pakkudes MSR-bitte kanaliennustussüsteemi valikuliseks keelamiseks, sarnaselt sellele, mida Intel tegi harude ennustamismehhanismide keelamise kontrollimiseks.

Kaks rünnakut AMD protsessorite vahemälukanali ennustamismehhanismile

Allikas: opennet.ru

Lisa kommentaar