Alia vundebleco estis identigita en AMD-procesoroj, kiuj permesas Meltdown-atakojn

Teamo de esploristoj de la Teknika Universitato de Graz (Aŭstrio) kaj la Helmholtz Centro pri Informa Sekureco (CISPA) malkaŝis vundeblecon (CVE-2021-26318) en ĉiuj AMD-procesoroj, kiu ebligas efektivigi Meltdown-klasan flankon. kanalaj atakoj (komence oni supozis, ke AMD-procesoroj ne estas tuŝitaj de la vundebleco de Meltdown). En praktikaj esprimoj, la atako povas esti uzita por establi kaŝajn komunikajn kanalojn, monitori agadon en la kerno, aŭ akiri informojn pri adresoj en kernmemoro por preteriri KASLR-protekton dum ekspluatado de vundeblecoj en la kerno.

AMD konsideras malkonvene preni specialajn rimedojn por bloki la problemon, ĉar la vundebleco, kiel simila atako malkovrita en aŭgusto, malmulte utilas en realaj kondiĉoj, estas limigita de la nunaj limoj de la proceza adresspaco kaj postulas la ĉeeston de certaj. pretaj sekvencoj de instrukcioj (aparatoj) en la kerno. Por pruvi la atakon, la esploristoj ŝarĝis sian propran kernan modulon per artefarite aldonita aparato. En realaj kondiĉoj, atakantoj povas uzi, ekzemple, regule aperigi vundeblecojn en la subsistemo eBPF por anstataŭigi la necesajn sekvencojn.

Por protekti kontraŭ ĉi tiu nova speco de atako, AMD rekomendis uzi sekurajn kodigajn teknikojn, kiuj helpas bloki Meltdown-atakojn, kiel uzi instrukciojn de LFENCE. La esploristoj, kiuj identigis la problemon, rekomendas ebligi pli striktan izoladon de memorpaĝa tablo (KPTI), kiu antaŭe estis nur uzata por Intel-procesoroj.

Dum la eksperimento, la esploristoj sukcesis liki informojn de la kerno al procezo en uzantspaco kun rapideco de 52 bajtoj sekundo, konsiderante la ĉeeston de aparato en la kerno, kiu faras la operacion "se (offset < data_len) tmp = LUT[datenoj[offseto] * 4096];” . Pluraj metodoj estis proponitaj por preni informojn per flankaj kanaloj kiuj alvenas en la kaŝmemoro dum konjekta ekzekuto. La unua metodo baziĝas sur analizado de devioj en la ekzekuttempo de la procesora instrukcio "PREFETCH" (Prefetch+Tempo), kaj la dua pri ŝanĝado de la ŝanĝo de energikonsumo dum ekzekuto de "PREFETCH" (Prefetch+Power).

Memoru, ke la klasika vundebleco de Meltdown baziĝas sur la fakto, ke dum spekula ekzekuto de instrukcioj, la procesoro povas aliri privatan datuman areon kaj poste forĵeti la rezulton, ĉar la fiksitaj privilegioj malpermesas tian aliron de la uzantprocezo. En la programo, la konjekte efektivigita bloko estas apartigita de la ĉefa kodo per kondiĉa branĉo, kiu en realaj kondiĉoj ĉiam pafas, sed pro la fakto, ke la kondiĉa deklaro uzas kalkulitan valoron, kiun la procesoro ne konas dum la preventa ekzekuto de la kodo, ĉiuj branĉo opcioj estas efektivigitaj spekulative.

Ĉar konjekte efektivigitaj operacioj utiligas la saman kaŝmemoron kiel normale ekzekutita instrukciaĵo, estas eble dum konjekta ekzekuto meti markilojn en la kaŝmemoro kiuj reflektas la enhavon de individuaj bitoj en privata memorareo, kaj tiam en normale efektivigita kodo por determini sian valoron tra tempigo. analizaj aliroj al kaŝmemoritaj kaj ne-konmemorigitaj datumoj.

fonto: opennet.ru

Aldoni komenton