Nova atako al mikroarkitekturaj strukturoj de procesoroj Intel kaj AMD

Grupo de esploristoj de la Universitato de Virginio kaj la Universitato de Kalifornio prezentis novan specon de atako kontraŭ la mikroarkitekturaj strukturoj de Intel kaj AMD-procesoroj, identigitaj dum inversa inĝenierado de nedokumentitaj CPU-kapabloj. La proponita atakmetodo implikas la uzon de meza mikrooperacia kaŝmemoro en procesoroj, kiuj povas esti uzitaj por preni informojn akumulitan dum konjekta ekzekuto de instrukciaĵo.

Por optimumigo, la procesoro komencas ekzekuti iujn instrukciojn en spekula reĝimo, sen atendi ke antaŭaj kalkuloj finiĝos, kaj se ĝi tiam determinas, ke la antaŭdiro ne estis pravigita, ĝi revenas la operacion al sia originala stato, sed la datumoj prilaboritaj dum spekula ekzekuto estas deponita en kaŝmemoro, kies enhavo povas esti determinita.

Oni rimarkas, ke la nova metodo signife superas la atakon Spectre v1, malfaciligas la atakon detektebla kaj ne estas blokita de ekzistantaj metodoj de protekto kontraŭ flankaj atakoj destinitaj por bloki vundeblecojn kaŭzitajn de spekula ekzekuto de instrukcioj (ekzemple, la uzo. de la LFENCE-instrukcioblokoj likas en la lastaj stadioj de konjekta ekzekuto, sed ne protektas kontraŭ elfluo tra mikroarkitekturaj strukturoj).

La metodo influas modelojn de procesoroj Intel kaj AMD publikigitaj ekde 2011, inkluzive de la serioj Intel Skylake kaj AMD Zen. Modernaj CPUoj rompas kompleksajn procesorinstrukciojn en pli simplajn RISC-similajn mikrooperaciojn, kiuj estas konservitaj en aparta kaŝmemoro. Tiu kaŝmemoro estas principe diferenca de pli altnivelaj kaŝmemoroj, ne estas rekte alirebla kaj funkcias kiel fluobufro por rapida aliro al la rezultoj de malkodado de CISC-instrukciaĵo en RISC-mikroinstrukciojn. Tamen, esploristoj trovis manieron krei kondiĉojn, kiuj aperas kiam kaŝmemoro-aliro konfliktoj kaj permesas al oni juĝi la enhavon de la mikrooperacia kaŝmemoro analizante diferencojn en la ekzekuttempo de certaj agoj.

Nova atako al mikroarkitekturaj strukturoj de procesoroj Intel kaj AMD

La mikro-operacia kaŝmemoro en Intel-procesoroj estas segmentita rilate al CPU-fadenoj (Hyper-Threading), dum AMD Zen-procesoroj uzas komunan kaŝmemoron, kiu kreas kondiĉojn por datumfluado ne nur ene de unu ekzekutfadeno, sed ankaŭ inter malsamaj fadenoj en SMT. (ebla datumfluo inter kodo funkcianta sur malsamaj logikaj CPU-kernoj).

Esploristoj proponis bazan metodon por detekti ŝanĝojn en la mikrooperacia kaŝmemoro kaj plurajn atakscenarojn, kiuj ebligas krei kaŝitajn transmisiajn kanalojn kaj uzi vundeblan kodon por liki konfidencajn datumojn, ambaŭ ene de ununura procezo (ekzemple, por liki procezajn datumojn dum ekzekuto). triaparta kodo en motoroj kun JIT kaj en virtualaj maŝinoj), kaj inter la kerno kaj procezoj en uzantspaco.

Organizinte varianton de la Spectre-atako uzante mikrooperacian kaŝmemoron, esploristoj povis atingi rendimenton de 965.59 Kbps kun erarkvanto de 0.22% kaj 785.56 Kbps uzante erarkorektadon, en la kazo de organizado de liko ene de la sama adreso. spaco kaj privilegia nivelo. Kun liko ampleksanta malsamajn privilegiajn nivelojn (inter kerno kaj uzantspaco), rendimento estis 85.2 Kbps kun erarkorektado aldonita kaj 110.96 Kbps kun erarprocento de 4%. Kiam oni atakas AMD Zen-procesorojn, kreante likon inter malsamaj logikaj CPU-kernoj, la agado estis 250 Kbps kun erarprocento de 5.59% kaj 168.58 Kbps kun erarkorektado. Kompare kun la klasika metodo Spectre v1, la nova atako estis 2.6 fojojn pli rapida.

Estas atendite, ke protekti kontraŭ mikrooperacia kaŝmemora atako postulos ŝanĝojn, kiuj reduktos rendimenton pli ol se vi ebligis Spectre-atakan protekton. Kiel optimuma kompromiso, estas proponite bloki tiajn atakojn ne malŝaltante kaŝmemoron, sed je la nivelo de monitorado de anomalioj kaj identigado de kaŝmemorŝtatoj, kiuj estas tipaj por atakoj.

Kiel en Spectre-atakoj, organizi likon de la kerno aŭ aliaj procezoj postulas la plenumon de certa sekvenco de komandoj ( noviletoj ) sur la flanko de la viktimprocezoj, kondukante al konjekta plenumo de instrukciaĵo. Ĉirkaŭ 100 similaj aparatoj estis trovitaj en la Linukso-kerno, kiu estos forigita, sed solvoj por ilia generacio periode troviĝas, ekzemple, rilataj al rulado de speciale desegnitaj BPF-programoj en la kerno.

fonto: opennet.ru

Aldoni komenton