Spook.js - jauna metode Spectre ievainojamību izmantošanai pārlūkā Chrome

Pētnieku grupa par to ziņoja Amerikas, Austrālijas un Izraēlas universitātes aprakstīja jaunu uzbrukuma paņēmienu kas ļauj izmantot ievainojamības Spectre klase pārlūkprogrammās ar Chromium.

Uzbrukums, kodvārds Spook.js, ļauj, izpildot JavaScript kodu, apiet vietnes izolācijas mehānismu un visas pašreizējā procesa adrešu telpas satura lasīšana, tas ir, piekļuve to lapu datiem, kuras tiek izpildītas citās cilnēs, bet tiek apstrādātas tajā pašā procesā.

Tā kā pārlūks Chrome palaiž dažādas vietnes dažādos procesos, praktiski uzbrukumi attiecas tikai uz pakalpojumiem, kas ļauj dažādiem lietotājiem mitināt savas lapas. Spook.js uzbrukuma metode ļauj no lapas, kurā uzbrucējs var iegult savu JavaScript kodu, noteikt citu lapu klātbūtni, ko ir atvēris tās pašas vietnes lietotājs un iegūt konfidenciālu informāciju no tiem, piemēram, akreditācijas dati vai bankas dati tīmekļa veidlapās ir aizstāti ar automātiskās pabeigšanas sistēmu.

Vēl viens metodes pielietojums ir uzbrukums pārlūkprogrammas spraudņiem, kas, instalējot uzbrucēja kontrolētu spraudni, ļauj iegūt datus no citiem spraudņiem.

Spook.js ir piemērojams jebkurai pārlūkprogrammai, kuras pamatā ir Chromium dzinējs, tostarp Google Chrome, Microsoft Edge un Brave. Pētnieki arī uzskata, ka šo metodi var pielāgot darbam ar Firefox, taču, tā kā Firefox dzinējs ļoti atšķiras no pārlūka Chrome, darbs pie šādas izmantošanas radīšanas ir atstāts nākotnei.

Lai pasargātu no uzbrukumiem, kas saistīti ar spekulatīvu instrukciju izpildi, izmantojot pārlūkprogrammu, pārlūkā Chrome tiek ieviesta adrešu telpas segmentācija: smilškastes izolācija ļauj JavaScript darboties tikai ar 32 bitu rādītājiem un koplieto kontroliera atmiņu 4 GB nepārklājošos kaudzēs.

Lai organizētu piekļuvi visai procesa adrešu telpai un izvairītos no 32 bitu ierobežojumiem, pētnieki izmantoja tipa sajaukšanas paņēmienu, kas ļauj JavaScript dzinējam apstrādāt nepareiza tipa objektu, ļaujot izveidot 64 bitu kods, kura pamatā ir divu 32 bitu vērtību kombinācija.

Uzbrukuma būtība ir tāda, ka, apstrādājot speciāli izstrādātu ļaunprātīgu objektu JavaScript dzinējā, tiek radīti apstākļi, kas noved pie spekulatīvas instrukciju izpildes, kas piekļūst masīvam. Objekts ir atlasīts tā, lai uzbrucēju kontrolētie lauki tiktu novietoti apgabalā, kur tiek izmantots 64 bitu rādītājs.

Tā kā ļaunprātīga objekta veids neatbilst apstrādājamā masīva tipam, normālos apstākļos šādas darbības pārlūkā Chrome bloķē koda deoptimizācijas mehānisms, kas tiek izmantots, lai piekļūtu masīviem. Lai atrisinātu šo problēmu, Type Confusion uzbrukuma kods tiek ievietots nosacījuma blokā "ja", kas normālos apstākļos neaktivizējas, bet darbojas spekulatīvā režīmā, ja procesors nepareizi paredz vairāk atzaru.

Tā rezultātā procesors spekulatīvi piekļūst ģenerētajam 64 bitu rādītājam un pēc neveiksmīgas prognozes noteikšanas atjauno stāvokli, bet izpildes pēdas ir iestatītas koplietotajā kešatmiņā, un tās var atjaunot, izmantojot metodes, lai noteiktu kešatmiņas saturu, izmantojot trešo partiju kanālos, analizējot kešatmiņā saglabāto un kešatmiņā neiekļauto datu piekļuves laika izmaiņas.

Lai analizētu kešatmiņas saturu JavaScript pieejamā taimera nepietiekamas precizitātes apstākļos, tiek izmantota Google piedāvātā metode, kas apmāno procesoros izmantoto Tree-PLRU kešatmiņas datu izlikšanas stratēģiju un, palielinot skaitļu ciklus, ļauj ievērojami palielināt laika starpību, ja kešatmiņā ir vai nav vērtības.

Pētnieki ir izlaiduši prototipa izmantošanu, kas darbojas pārlūkā Chrome 89 en sistēmas ar Intel i7-6700K un i7-7600U. Izmantošana tika izveidota, izmantojot JavaScript koda prototipus, ko Google iepriekš publicēja, lai veiktu Spectre uzbrukumus.

Visbeidzot pētnieki to piemin izdevās sagatavot darba iespējas sistēmām, kuru pamatā ir Intel un Apple M1 procesori, kuriem tiek dota iespēja sakārtot atmiņas nolasīšanu ar ātrumu 500 baiti sekundē un 96%precizitāti. Paredzams, ka metode ir piemērojama AMD procesoriem, taču nebija iespējams sagatavot pilnībā funkcionālu izmantošanu.

Fuente: https://www.spookjs.com


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.