Google nunjukkeun eksploitasi kerentanan Spectre ngaliwatan palaksanaan JavaScript dina browser

Google parantos nyebarkeun sababaraha prototipe eksploitasi anu nunjukkeun kamungkinan ngeksploitasi kerentanan kelas Specter nalika ngalaksanakeun kode JavaScript dina browser, ngalangkungan metode panyalindungan anu parantos ditambah. Eksploitasi tiasa dianggo pikeun kéngingkeun aksés kana mémori prosés ngolah eusi wéb dina tab ayeuna. Pikeun nguji operasi eksploitasi, situs wéb leaky.page diluncurkeun, sareng kode anu ngajelaskeun logika padamelan dipasang dina GitHub.

Prototipe anu diusulkeun dirancang pikeun nyerang sistem sareng prosesor Intel Core i7-6500U dina lingkungan anu nganggo Linux sareng Chrome 88. Pikeun ngagunakeun eksploitasi pikeun lingkungan anu sanés, peryogi modifikasi. Métode eksploitasi henteu khusus pikeun prosesor Intel - saatos adaptasi anu pas, eksploitasi dikonfirmasi tiasa dianggo dina sistem sareng CPU ti pabrik sanés, kalebet Apple M1 dumasar kana arsitéktur ARM. Saatos pangaluyuan leutik, eksploitasi ogé tiasa dianggo dina sistem operasi sanés sareng dina panyungsi sanés dumasar kana mesin Chromium.

Dina lingkungan dumasar kana standar Chrome 88 sarta prosesor Intel Skylake, éta mungkin mun bocor data tina prosés jawab ngolah eusi web dina tab Chrome ayeuna (prosés renderer) dina laju 1 kilobyte per detik. Salaku tambahan, prototipe alternatif parantos dikembangkeun, contona, eksploitasi anu ngamungkinkeun, kalayan biaya ngirangan stabilitas, ningkatkeun laju bocor ka 8kB / s nalika nganggo timer performance.now() kalayan akurasi 5 microseconds (0.005 milliseconds). ). A versi ieu ogé disiapkeun nu digarap ku akurasi timer hiji milidetik, nu bisa dipaké pikeun ngatur aksés ka mémori tina prosés sejen dina laju ngeunaan 60 bait per detik.

Kodeu demo diterbitkeun diwangun ku tilu bagian. Bagian kahiji calibrates timer keur estimasi waktu palaksanaan operasi diperlukeun mulangkeun data sésana dina cache processor salaku hasil tina palaksanaan spekulatif parentah CPU. Bagian kadua nangtukeun perenah memori dipaké nalika allocating Asép Sunandar Sunarya JavaScript.

Bagian katilu langsung ngamangpaatkeun kerentanan Spectre pikeun nangtukeun eusi mémori tina prosés ayeuna salaku hasil tina nyiptakeun kaayaan pikeun palaksanaan spekulatif operasi tangtu, hasilna anu dipiceun ku prosesor sanggeus nangtukeun hiji prediksi gagal, tapi ngambah palaksanaan disimpen dina cache umum tur bisa dibalikkeun maké métode pikeun nangtukeun eusi cache ku saluran pihak katilu nu nganalisis parobahan waktu aksés ka data cache sarta uncached.

Téhnik eksploitasi diusulkeun ngamungkinkeun pikeun ngalakukeun tanpa timer precision tinggi sadia ngaliwatan performance.now () API, sarta tanpa rojongan pikeun jenis SharedArrayBuffer, nu ngidinan nyieun arrays dina memori dibagikeun. Eksploitasi kalebet gadget Spectre, anu nyababkeun palaksanaan kode spekulatif anu dikontrol, sareng analisa bocor saluran sisi, anu ngadeteksi data sindangan anu dicandak nalika palaksanaan spekulatif.

Gadget ieu dilaksanakeun nganggo array JavaScript dimana usaha dilakukeun pikeun ngaksés daérah di luar wates panyangga, mangaruhan kaayaan blok prediksi cabang kusabab ayana cek ukuran panyangga anu ditambah ku kompiler (prosésor, pilari payun, speculatively ngalakukeun aksés, tapi gulung deui kaayaan sanggeus dipariksa). Pikeun nganalisis eusi cache dina kaayaan akurasi timer cukup, metoda geus diusulkeun yén deceives nu Tangkal-PLRU cache strategi nundung dipaké dina prosesor tur ngamungkinkeun, ku cara ningkatkeun jumlah siklus, nyata ngaronjatkeun bédana dina waktu nalika balik. a nilai tina cache sarta lamun euweuh nilai dina cache nu.

Perhatikeun yén Google nyebarkeun prototipe eksploitasi pikeun nunjukkeun kamungkinan serangan ngagunakeun kerentanan kelas Specter sareng ngadorong pamekar wéb ngagunakeun téknik anu ngaminimalkeun résiko tina serangan sapertos kitu. Dina waktu nu sarua, Google percaya yén tanpa reworking signifikan tina prototipe diusulkeun, mustahil pikeun nyieun exploits universal anu siap teu ukur keur démo, tapi ogé pikeun pamakéan nyebar.

Pikeun ngirangan résiko, pamilik situs didorong ngagunakeun header anu nembé dilaksanakeun Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame- Pilihan, X -Content-Type-Options sareng SameSite Cookie. Mékanisme ieu henteu langsung ngajagi tina serangan, tapi ngamungkinkeun anjeun ngasingkeun data situs tina bocor kana prosés dimana kodeu JavaScript panyerang tiasa dieksekusi (bocoran lumangsung tina mémori prosés ayeuna, anu, salian kode panyerang. , ogé tiasa ngolah data tina situs sanés anu dibuka dina tab anu sami). Gagasan utama nyaéta pikeun misahkeun palaksanaan kode situs dina prosés anu béda ti kode pihak katilu anu ditampi tina sumber anu teu dipercaya, contona, kalebet ngalangkungan iframe.



sumber: opennet.ru

Tambahkeun komentar