Ngenalake teknik anyar kanggo identifikasi sistem lan browser sing didhelikake

Klompok peneliti saka Universitas Teknik Graz (Austria), sing sadurunge dikenal kanggo ngembangake metode serangan MDS, NetSpectre и Throwammer, katutup Informasi babagan teknik analisis saluran pihak katelu anyar sing ngidini sampeyan nemtokake versi browser sing tepat, sistem operasi sing digunakake, arsitektur CPU lan panggunaan tambahan kanggo nglawan identifikasi sing didhelikake.

Kanggo nemtokake paramèter kasebut, cukup kanggo mbukak kode JavaScript sing disiapake dening peneliti ing browser. Ing praktik, cara kasebut bisa digunakake ora mung minangka sumber tambahan kanggo identifikasi pangguna ora langsung, nanging uga kanggo nemtokake paramèter lingkungan sistem kanggo nggunakake eksploitasi sing ditargetake, kanthi njupuk OS, arsitektur lan browser. Cara kasebut uga efektif nalika nggunakake browser sing ngetrapake mekanisme pamblokiran identifikasi sing didhelikake, kayata Tor Browser. Prototipe kode sumber kanthi implementasi metode diterbitake miturut lisensi MIT.

Tekad digawe ing basis saka ngenali pola negara property ing JavaScript sing karakteristik saka browser beda lan karakteristik saka wektu execution saka operasi, gumantung ing karakteristik saka JIT, CPU lan mekanisme alokasi memori. Nemtokake properti ditindakake kanthi nggawe dhaptar kabeh obyek sing bisa diakses saka JavaScript. Ternyata, jumlah obyek langsung hubungane karo mesin browser lan versi.

fungsi getProperties(o) {
var hasil = [];
nalika (o! == null) {
asil = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
asil bali;
}

Contone, kanggo Firefox, dokumentasi nyatakake dhukungan kanggo 2247 properti, dene jumlah nyata properti sing ditetepake, kalebu sing ora duwe dokumen, yaiku 15709 (ing Tor Browser - 15639), kanggo Chrome 2698 properti diumumake, nanging nyatane 13570 ditawakake (ing Chrome kanggo Android - 13119). Jumlah lan nilai properti beda-beda saka versi browser menyang versi browser lan ing macem-macem sistem operasi.

Nilai lan anane sifat tartamtu bisa digunakake kanggo nemtokake jinis OS. Contone, ing Kubuntu property window.innerWidth disetel kanggo 1000, lan ing Windows 10 disetel kanggo 1001. property window.navigator.activeVRDisplays kasedhiya ing Windows, nanging ora kasedhiya ing Linux. Kanggo Android, akeh telpon tartamtu diwenehake, nanging window.SharedWorker ora. Kanggo ngenali sistem operasi, uga diusulake nggunakake analisis paramèter WebGL, sing gumantung marang driver. Kajaba iku, nelpon WEBGL_debug_renderer_infoextension ngidini sampeyan entuk informasi babagan mesin rendering OpenGL, sing beda kanggo saben sistem operasi.

Kanggo nemtokake CPU, evaluasi beda-beda ing wektu eksekusi saka macem-macem blok kode khas digunakake, pangolahan sing gumantung saka arsitektur set instruksi, kanthi njupuk prilaku JIT (ditemtokake pirang-pirang registrasi CPU sing bakal digunakake. lan ing kasus JIT bakal ngasilake kode efisien kanthi optimasi lan nggunakake instruksi lengkap, lan nalika ora). Kanggo nemtokake jinis sistem alokasi memori lan sistem operasi, bedane wektu alokasi memori kanggo macem-macem struktur uga diukur, sing bisa digunakake kanggo ngadili ukuran blok memori.

Parameter sing ditemtokake sajrone eksekusi skrip dibandhingake karo nilai referensi sing khas kanggo lingkungan sing wis diuji sadurunge. Sajrone tes kasebut, teknik sing dikembangake ngidini kanthi akurat ngenali 40 lingkungan tes sing beda-beda, ngenali versi browser sing digunakake, pabrikan CPU, sistem operasi sing digunakake, lan kasunyatan sing mlaku ing hardware nyata utawa ing mesin virtual.

Kapisah, dicathet yen bisa nemtokake tambahan browser lan malah setelan tambahan individu, kalebu tambahan sing dirancang kanggo mblokir cara identifikasi sing didhelikake utawa aktivitas mode browsing pribadi. Ing konteks metode sing diusulake, tambahan kasebut dadi sumber data liyane kanggo identifikasi. Tambahan ditemtokake kanthi ngevaluasi distorsi paramèter lingkungan asli sing diwenehake dening tambahan kasebut.

Cara identifikasi liyane kalebu njupuk data ora langsung kayata resolusi layar, dhaptar jinis MIME sing didhukung, paramèter tartamtu ing header (HTTP / 2 и https), analisis diinstal plugins lan fonts, kasedhiyan API Web tartamtu, khusus kanggo kertu video fitur rendering nggunakake WebGL lan Canvas, manipulasi karo CSS, analisis fitur saka nggarap tikus и keyboard.

Source: opennet.ru

Add a comment