Esploristoj de Bitdefender
La vundebleco apartenas al la klaso Spectre v1 kaj baziĝas sur la ideo restarigi datumojn de la procesora kaŝmemoro restanta post spekula ekzekuto de instrukcioj. Por plibonigi rendimenton, branĉaj prognozunuoj de modernaj CPUoj uzas preventan ekzekuton de iuj instrukcioj, kiuj plej verŝajne estos ekzekutitaj, sed sen atendi la kalkulon de ĉiuj faktoroj, kiuj determinas ilian ekzekuton (ekzemple, kiam branĉokondiĉoj aŭ alirparametroj ne havas. ankoraŭ kalkulita). Se la antaŭdiro ne estas konfirmita, la procesoro forĵetas la rezulton de la konjekta ekzekuto, sed la datumoj prilaboritaj dum ĝi restas en la procesora kaŝmemoro kaj povas esti restarigitaj uzante metodojn por determini la enhavon de la kaŝmemoro tra flankaj kanaloj, analizante la ŝanĝon en aliro. tempo al kaŝmemoritaj kaj nekaŝigitaj datumoj.
La propreco de la nova atako estas la uzo de liko, kiu okazas dum la spekula ekzekuto de la SWAPGS-instrukcio, kiu estas uzata en operaciumoj por anstataŭigi la valoron de la GS-registro kiam kontrolo pasas de uzantspaco al la OS-kerno (la GS). valoro uzata en uzantspaco estas anstataŭigita per la valoro uzata dum operacioj en la kerno ). En la Linukso-kerno, GS stokas per_cpu-montrilon uzatan por aliri kernajn datumojn, kaj uzantspaco stokas montrilojn al TLS (Thread Local Storage).
Por eviti voki la SWAPGS-instrukcion dufoje dum aliro al la kerno denove de kernspaco aŭ dum plenumado de kodo kiu ne postulas GS-registran ŝanĝon, kontrolo kaj kondiĉa branĉo estas faritaj antaŭ la instrukcio. La konjekta ekzekutmotoro iniciateme daŭrigas ekzekuti kodon kun la SWAPGS-instrukcio sen atendado de la rezulto de la kontrolo, kaj se la elektita branĉo ne estas konfirmita, forĵetas la rezulton. Tiel, situacio povas ekesti kiam branĉo kiu ne implikas SWAPGS-ekzekuton estas konjekte elektita, sed dum konjekta ekzekuto la valoro de la GS-registro estos ŝanĝita per la SWAPGS-instrukcio kaj uzita en dependaj memoroperacioj kiuj alvenas en la CPU-kaŝmemoro.
Esploristoj proponis du atakscenarojn por kiuj ekspluatprototipoj estis preparitaj. La unua scenaro estas bazita sur la situacio kie la SWAPGS-instrukcio ne estas efektivigita konjekte, kvankam ĝi estas fakte uzita en ekzekuto, kaj la dua estas la kontraŭo, kiam la SWAPGS-instrukcio estas efektivigita konjekte, kvankam ĝi ne devus fakte esti efektivigita. Por ĉiu scenaro, ekzistas du opcioj por ekspluato: la atakanto povas determini la valoron ĉe specifa adreso en la kernelareo, kaj la atakanto povas serĉi specifan valoron ĉe hazardaj adresoj en la kerno. Fari atakon prenas longan tempon kaj la ekspluato povas postuli plurajn horojn por kompletigi la likon.
Estas problemo en la Linukso-kerno
La riparo postulas instali kernan ĝisdatigon sur kaj la gastiga sistemo kaj gastmedioj, sekvita de sistema rekomenco. Por malŝalti protekton en Linukso, la opcio "nospectre_v1" povas esti uzata, kiu ankaŭ malŝaltas mezurojn por bloki la vundeblecon de SWAPGS. La riparo estas disponebla kiel
Laŭ esploristoj de Bitdefender, Intel estis informita pri la problemo en aŭgusto pasintjare. Estis decidite ripari la problemon programe, por kiu programistoj de Mikrosofto, Guglo kaj la Linukso-kerno estis implikitaj en la kunordigita evoluo de riparo. Pli malnovaj Intel-procesoroj, antaŭ-Ivy Bridge, estas multe pli malfacile atakeblaj pro la manko de subteno por la instrukcio WRGSBASE uzita en la ekspluato. ARM, POWER, SPARC, MIPS, kaj RISC-V-sistemoj ne estas trafitaj per la problemo ĉar ili ne subtenas la SWAPGS-instrukcion.
La problemo ĉefe influas posedantojn de Intel-procesoroj -
Sur AMD-sistemoj, nur la dua atakscenaro povis esti reproduktita, kiu estas limigita al spekula prilaborado de la baza valoro de la GS-registro, kiu povas esti uzata por serĉi specifajn valorojn en hazardaj memoraj areoj. Por bloki ĉi tiun atakopcion
fonto: opennet.ru