Memperkenalkan teknik baru untuk sistem tersembunyi dan identifikasi browser

Sekelompok peneliti dari Graz University of Technology (Austria), sebelumnya dikenal mengembangkan metode serangan MDS, NetSpectre ΠΈ Palu, terbongkar informasi tentang teknik analisis pihak ketiga baru yang memungkinkan Anda untuk menentukan versi browser yang tepat, sistem operasi yang digunakan, arsitektur CPU, dan penggunaan add-on untuk memerangi identifikasi tersembunyi.

Untuk menentukan parameter tersebut, cukup mengeksekusi kode JavaScript yang disiapkan oleh peneliti di browser. Dalam praktiknya, metode ini dapat digunakan tidak hanya sebagai sumber tambahan untuk identifikasi pengguna tidak langsung, tetapi juga untuk menentukan parameter lingkungan sistem untuk penggunaan eksploit yang ditargetkan, dengan mempertimbangkan OS, arsitektur, dan browser. Metode ini juga efektif saat menggunakan browser dengan mekanisme pemblokiran identifikasi tersembunyi, seperti Tor Browser. Kode sumber kode prototipe dengan implementasi metode diterbitkan di bawah lisensi MIT.

Penentuan dibuat berdasarkan alokasi properti pola negara karakteristik browser yang berbeda dalam JavaScript dan karakteristik waktu eksekusi operasi, tergantung pada fitur JIT, CPU dan mekanisme alokasi memori. Mendefinisikan properti dilakukan dengan membuat daftar semua objek yang tersedia dari JavaScript. Ternyata, jumlah objek berkorelasi langsung dengan mesin browser dan versinya.

fungsi getProperties(o) {
hasil var = [];
sementara (o !== batal) {
hasil = hasil.concat(Reflect.ownKeys(o));
o = Objek.getPrototypeOf(o);
}
hasil pengembalian;
}

Misalnya, untuk Firefox, dukungan untuk 2247 properti dideklarasikan dalam dokumentasi, sedangkan jumlah sebenarnya dari properti tertentu, dengan memperhitungkan yang tidak berdokumen, adalah 15709 (di Tor Browser - 15639), untuk Chrome 2698 properti dideklarasikan, tetapi 13570 sebenarnya ditawarkan (di Chrome untuk Android - 13119). Jumlah dan nilai properti bervariasi dari versi ke versi browser dan di sistem operasi yang berbeda.

Nilai dan keberadaan properti tertentu dapat digunakan untuk menentukan jenis OS. Misalnya, di Kubuntu properti window.innerWidth diatur ke 1000, dan di Windows 10 diatur ke 1001. Di Windows, properti window.navigator.activeVRDisplays tersedia, tetapi di Linux tidak. Banyak panggilan khusus disediakan untuk Android, tetapi tidak ada window.SharedWorker. Untuk mengidentifikasi sistem operasi, juga diusulkan untuk menggunakan analisis parameter WebGL, yang statusnya bergantung pada driver. Selain itu, memanggil WEBGL_debug_renderer_infoextension memungkinkan Anda mendapatkan informasi tentang mesin rendering OpenGL, yang berbeda untuk setiap sistem operasi.

Untuk menentukan CPU, penilaian perbedaan waktu eksekusi dari berbagai blok kode tipikal digunakan, yang pemrosesannya bergantung pada arsitektur set instruksi, dengan mempertimbangkan perilaku JIT (ditentukan berapa banyak register CPU akan terlibat dan dalam kasus mana JIT akan menghasilkan kode yang efisien dengan pengoptimalan dan melibatkan instruksi yang diperluas, dan bila tidak). Untuk menentukan jenis sistem alokasi memori dan sistem operasi, perbedaan waktu alokasi memori untuk berbagai struktur juga diukur, yang dapat digunakan untuk menilai ukuran blok memori.

Parameter yang ditentukan selama eksekusi skrip dibandingkan dengan nilai referensi tipikal untuk lingkungan yang telah diuji sebelumnya. Selama pengujian, teknik yang dikembangkan memungkinkan untuk secara akurat menentukan 40 lingkungan pengujian yang berbeda, menentukan versi browser yang digunakan, pabrikan CPU, sistem operasi yang digunakan, dan apakah itu berjalan di perangkat keras nyata atau di mesin virtual.

Secara terpisah, kemungkinan untuk menentukan add-on browser dan bahkan pengaturan add-on individual, termasuk add-on yang dirancang untuk memblokir metode identifikasi tersembunyi atau aktivitas penelusuran pribadi, dicatat. Dalam konteks metode yang diusulkan, penambahan tersebut menjadi sumber data lain untuk identifikasi. Penambahan ditentukan melalui penilaian distorsi parameter lingkungan asli yang diperkenalkan oleh penambahan.

Di antara metode identifikasi lainnya, pertimbangan data tidak langsung seperti resolusi layar, daftar jenis MIME yang didukung, opsi khusus tajuk (HTTP / 2 ΠΈ HTTPS), analisis didirikan plugin dan font, ketersediaan API Web tertentu khusus untuk kartu video fitur rendering dengan WebGL dan Kanvas, manipulasi dengan CSS, analisis fitur bekerja dengan mouse ΠΈ papan ketik.

Sumber: opennet.ru

Tambah komentar