Open Source Foundation memperkenalkan add-on browser JShelter untuk membatasi JavaScript API

Free Software Foundation memperkenalkan proyek JShelter, yang mengembangkan add-on browser untuk melindungi dari ancaman yang muncul saat menggunakan JavaScript di situs web, termasuk identifikasi tersembunyi, pelacakan pergerakan, dan akumulasi data pengguna. Kode proyek didistribusikan di bawah lisensi GPLv3. Add-on ini disiapkan untuk Firefox, Google Chrome, Opera, Brave, Microsoft Edge, dan browser lain yang berbasis mesin Chromium.

Proyek ini sedang dikembangkan sebagai inisiatif bersama yang didanai oleh NLnet Foundation. Giorgio Maone, pencipta add-on NoScript, serta pendiri proyek J++ dan penulis add-on JS-Shield dan JavaScript Restrictor, juga bergabung dalam pengembangan JShelter. Add-on JavaScript Restrictor digunakan sebagai dasar untuk proyek baru.

JShelter dapat dianggap sebagai semacam firewall untuk antarmuka pemrograman JavaScript yang tersedia untuk situs web dan aplikasi web. Add-on ini menyediakan empat tingkat perlindungan, serta mode konfigurasi fleksibel untuk akses ke API. Level nol sepenuhnya mengizinkan akses ke semua API, yang pertama mencakup pemblokiran minimal yang tidak mengganggu pengoperasian halaman, tingkat kedua menyeimbangkan antara pemblokiran dan kompatibilitas, dan tingkat keempat mencakup pemblokiran ketat terhadap segala sesuatu yang tidak diperlukan.

Pengaturan pemblokiran API dapat dikaitkan ke masing-masing situs, misalnya, perlindungan dapat diperkuat untuk beberapa situs, dan dinonaktifkan untuk situs lainnya. Anda juga dapat secara selektif memblokir metode, objek, properti, dan fungsi JavaScript tertentu, atau mengubah nilai yang dikembalikan (misalnya, menghasilkan informasi palsu tentang sistem). Fitur terpisah adalah mode NBS (Network Border Shield), yang tidak mengizinkan halaman menggunakan browser sebagai proxy antara jaringan eksternal dan lokal (semua permintaan keluar dicegat dan dianalisis).

API yang diblokir atau dibatasi:

  • window.Date, window. Performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp dan VRFrameData.prototype.timestamp - output waktu yang tepat dapat digunakan untuk mengidentifikasi dan melakukan serangan saluran samping .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - digunakan untuk menentukan fitur subsistem grafis saat mengidentifikasi pengguna.
  • Audiobuffer dan Analysernode (Audiobuffer.getChanneldata (), Audiobuffer.copyfromchannel (), analysernode.getBytimedomaindata (), analySernode.getfloatTimedoma Indata (), analysernode.getbytefrekuensidata () dan analysernode.getfloatfrekuensi ()) - identifikasi melalui analisis sinyal suara.
  • WebGLRenderingContext - identifikasi melalui analisis fitur tumpukan grafis dan GPU.
  • MediaDevices.prototype.enumerateDevices - identifikasi dengan mendapatkan parameter dan nama kamera dan mikrofon.
  • navigator.deviceMemory, navigator.hardwareConcurrency - memperoleh informasi tentang perangkat keras.
  • XMLHttpRequest (XHR) - mentransfer informasi sistem yang dikumpulkan ke server eksternal setelah halaman dimuat.
  • ArrayBuffer - melakukan serangan Spectre mikroarsitektur.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - melakukan serangan yang mengevaluasi penundaan saat mengakses data.
  • Geolocation API (navigator.geolocation) - akses ke informasi lokasi (penambahan memungkinkan Anda mendistorsi data yang dikembalikan).
  • Gamepad API (navigator.getGamepads()) merupakan salah satu tanda identifikasi yang memperhitungkan keberadaan gamepad di sistem.
  • API Realitas Virtual, API Realitas Campuran - penggunaan parameter perangkat realitas virtual untuk identifikasi.
  • window.name - kebocoran lintas situs.
  • navigator.sendBeacon - digunakan untuk analisis web.

Sumber: opennet.ru

Tambah komentar