Nova tekniko por ekspluati Spectre-vundeblecojn en Chrome

Grupo de esploristoj de usonaj, aŭstraliaj kaj israelaj universitatoj proponis novan flankan-kanalan atakteknikon por ekspluati vundeblecojn de Spectre-klaso en retumiloj bazitaj sur la Chromium-motoro. La atako, kodita Spook.js, ebligas al vi preteriri la retejan izoligan mekanismon rulante JavaScript-kodon kaj legi la enhavon de la tuta adresspaco de la nuna procezo, t.e. aliri datumojn de paĝoj kurantaj en aliaj langetoj, sed prilaboritaj en la sama procezo.

Ĉar Chrome kuras malsamajn retejojn en malsamaj procezoj, la kapablo fari praktikajn atakojn estas limigita al servoj, kiuj permesas al malsamaj uzantoj gastigi siajn paĝojn. La metodo permesas, el paĝo en kiu la atakanto havas la ŝancon enigi sian JavaScript-kodon, determini la ĉeeston de aliaj paĝoj malfermitaj de la uzanto de la sama retejo kaj ĉerpi konfidencajn informojn el ili, ekzemple, akreditaĵojn aŭ bankajn detalojn anstataŭigitaj. per la sistemo de aŭtomate plenigado de kampoj en retformularoj. Kiel pruvo, estas montrite kiel vi povas ataki la blogon de iu alia en la Tumblr-servo se ĝia posedanto malfermas blogon de atakantoj gastigitaj en la sama servo en alia langeto.

Alia eblo por uzi la metodon estas atako al retumilo-aldonaĵoj, kiu permesas, kiam oni instalas aldonaĵon kontrolitan de la atakanto, ĉerpi datumojn de aliaj aldonaĵoj. Ekzemple, ni montras kiel instalante malican aldonaĵon vi povas ĉerpi konfidencajn informojn de la pasvortmanaĝero de LastPass.

Esploristoj publikigis prototipon de ekspluato, kiu funkcias en Chrome 89 en sistemoj kun CPUIntel i7-6700K kaj i7-7600U. Dum kreado de la ekspluato, prototipoj de JavaScript-kodo antaŭe publikigitaj de Guglo estis uzitaj por efektivigi Spectre-klasajn atakojn. Oni rimarkas, ke la esploristoj povis prepari laborajn ekspluatojn por sistemoj bazitaj sur procesoroj Intel kaj Apple M1, kiuj ebligas organizi memorlegadon kun rapideco de 500 bajtoj sekundo kaj precizeco de 96%. Oni supozas, ke la metodo ankaŭ aplikeblas al AMD-procesoroj, sed ne eblis prepari plene funkcian ekspluatadon.

La atako aplikeblas al iuj retumiloj bazitaj sur la Chromium-motoro, inkluzive de Google Chrome, Microsoft Edge kaj Brave. La esploristoj ankaŭ kredas, ke la metodo povas esti adaptita por labori kun Fajrovulpo, sed ĉar la Firefox-motoro estas tre malsama ol Chrome, la laboro por krei tian ekspluatadon restas por la estonteco.

Por protekti kontraŭ retum-bazitaj atakoj rilate al spekula ekzekuto de instrukcioj, Chrome efektivigas adresspacan segmentadon - sablokesto-izolado permesas al JavaScript funkcii nur per 32-bitaj montriloj kaj dividas la memoron de pritraktantoj en disaj 4GB-amasoj. Por havigi aliron al la tuta proceza adresspaco kaj preteriri la 32-bitan limigon, la esploristoj uzis teknikon nomitan Type Confusion, kiu devigas la JavaScript-motoron prilabori objekton kun malĝusta tipo, kio ebligas formi 64-bitan. montrilo bazita sur kombinaĵo de du 32-bitaj valoroj.

La esenco de la atako estas, ke kiam oni prilaboras speciale desegnitan malican objekton en la JavaScript-motoro, kreiĝas kondiĉoj, kiuj kondukas al konjekta plenumo de instrukcioj, kiuj aliras la tabelon. La objekto estas elektita tiel ke la atak-kontrolitaj kampoj estas metitaj en la areo kie la 64-bita montrilo estas uzita. Ĉar la speco de la malica objekto ne kongruas kun la speco de la prilaborita tabelo, en normalaj kondiĉoj tiaj agoj estas blokitaj en Chrome per mekanismo por maloptimumigi la kodon uzatan por aliri tabelojn. Por solvi ĉi tiun problemon, la kodo por la atako de Tipo Konfuzo estas metita en kondiĉan blokon "se", kiu ne estas aktivigita en normalaj kondiĉoj, sed estas ekzekutita en spekula reĝimo, se la procesoro malĝuste antaŭdiras plian disbranĉiĝon.

Kiel rezulto, la procesoro konjekte aliras la generitan 64-bitan montrilon kaj retroiras la staton post determinado de malsukcesa prognozo, sed spuroj de la ekzekuto restas en la komuna kaŝmemoro kaj povas esti restarigitaj uzante flankajn kanalajn kaŝmemordetektometodojn kiuj analizas ŝanĝojn en alirtempoj al kaŝmemoritaj kaj nekaŝigitaj datumoj. Por analizi la enhavon de la kaŝmemoro en kondiĉoj de nesufiĉa precizeco de la temporigilo disponebla en JavaScript, estas uzata metodo proponita de Guglo, kiu trompas la strategion de eldomigo de kaŝmemoro Arbo-PLRU uzata en procesoroj kaj permesas, pliigante la nombron da cikloj, al signife pliigi la diferencon en tempo kiam valoro ĉeestas kaj forestas en la kaŝmemoro. .

fonto: opennet.ru

Aldoni komenton