La Open Source Foundation introdujo el complemento del navegador JShelter para limitar la API de JavaScript

La Free Software Foundation presentó el proyecto JShelter, que desarrolla un complemento de navegador para proteger contra las amenazas que surgen al usar JavaScript en sitios web, incluida la identificación oculta, el seguimiento de movimientos y la acumulación de datos del usuario. El código del proyecto se distribuye bajo la licencia GPLv3. El complemento está preparado para Firefox, Google Chrome, Opera, Brave, Microsoft Edge y otros navegadores basados ​​en el motor Chromium.

El proyecto se está desarrollando como una iniciativa conjunta financiada por la Fundación NLnet. Giorgio Maone, creador del complemento NoScript, así como los fundadores del proyecto J++ y los autores de los complementos JS-Shield y JavaScript Restrictor, también se unieron al desarrollo de JShelter. El complemento JavaScript Restrictor se utiliza como base para el nuevo proyecto.

Se puede considerar a JShelter como una especie de firewall para las interfaces de programación JavaScript disponibles para sitios web y aplicaciones web. El complemento proporciona cuatro niveles de protección, así como un modo de configuración flexible para acceder a la API. El nivel cero permite completamente el acceso a todas las API, el primero incluye un bloqueo mínimo que no interrumpe el funcionamiento de las páginas, el segundo nivel equilibra el bloqueo y la compatibilidad, y el cuarto nivel incluye un bloqueo estricto de todo lo innecesario.

La configuración de bloqueo de API se puede vincular a sitios individuales; por ejemplo, la protección se puede fortalecer para algunos sitios y deshabilitar para otros. También puede bloquear selectivamente ciertos métodos, objetos, propiedades y funciones de JavaScript, o cambiar los valores de retorno (por ejemplo, generar información falsa sobre el sistema). Una característica separada es el modo NBS (escudo de límites de red), que no permite que las páginas utilicen el navegador como proxy entre las redes externas y locales (todas las solicitudes salientes son interceptadas y analizadas).

API bloqueadas o restringidas:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp y VRFrameData.prototype.timestamp: la salida de hora exacta se puede utilizar para identificar y llevar a cabo ataques de canal lateral .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()): se utiliza para determinar las características del subsistema de gráficos al identificar a un usuario.
  • Audiobuffer y Analysernode (Audiobuffer.getChanneldata (), Audiobuffer.copyfromchannel (), analysernode.getBytimedomaindata (), analySernode.getfloatTimedoma Indata (), analysernode.getbytefrequencydata () y analysernode.getfloatfrequency ()): identificación mediante análisis de señales de sonido.
  • WebGLRenderingContext: identificación mediante análisis de características de la pila de gráficos y GPU.
  • MediaDevices.prototype.enumerateDevices: identificación mediante la obtención de parámetros y nombres de la cámara y el micrófono.
  • navigator.deviceMemory, navigator.hardwareConcurrency: obtención de información sobre el hardware.
  • XMLHttpRequest (XHR): transfiere la información recopilada del sistema a un servidor externo después de cargar la página.
  • ArrayBuffer: realiza ataques de microarquitectura Spectre.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer): realiza ataques que evalúan retrasos en el acceso a los datos.
  • API de geolocalización (navigator.geolocation): acceso a la información de ubicación (la adición le permite distorsionar los datos devueltos).
  • Gamepad API (navigator.getGamepads()) es uno de los signos de identificación que tiene en cuenta la presencia de un gamepad en el sistema.
  • API de realidad virtual, API de realidad mixta: uso de parámetros de dispositivos de realidad virtual para identificación.
  • window.name: fugas entre sitios.
  • navigator.sendBeacon: utilizado para análisis web.

Fuente: opennet.ru

Añadir un comentario