A Open Source Foundation presentou o complemento do navegador JShelter para limitar a API de JavaScript

A Free Software Foundation presentou o proxecto JShelter, que desenvolve un complemento de navegador para protexerse contra as ameazas que xorden ao usar JavaScript en sitios web, incluíndo a identificación oculta, o seguimento de movementos e a acumulación de datos dos usuarios. O código do proxecto distribúese baixo a licenza GPLv3. O complemento está preparado para Firefox, Google Chrome, Opera, Brave, Microsoft Edge e outros navegadores baseados no motor Chromium.

O proxecto desenvólvese como unha iniciativa conxunta financiada pola Fundación NLnet. Giorgio Maone, creador do complemento NoScript, así como os fundadores do proxecto J++ e os autores dos complementos JS-Shield e JavaScript Restrictor, tamén se uniron ao desenvolvemento de JShelter. O complemento JavaScript Restrictor úsase como base para o novo proxecto.

JShelter pódese pensar como unha especie de firewall para interfaces de programación JavaScript dispoñibles para sitios web e aplicacións web. O complemento ofrece catro niveis de protección, así como un modo de configuración flexible para o acceso á API. O nivel cero permite o acceso completo a todas as API, o primeiro inclúe un bloqueo mínimo que non perturba o funcionamento das páxinas, o segundo nivel equilibra entre bloqueo e compatibilidade e o cuarto nivel inclúe un bloqueo estrito de todo o innecesario.

A configuración de bloqueo da API pódese vincular a sitios individuais; por exemplo, pódese reforzar a protección para algúns sitios e desactivarse para outros. Tamén pode bloquear selectivamente certos métodos, obxectos, propiedades e funcións de JavaScript ou cambiar os valores de retorno (por exemplo, producir información falsa sobre o sistema). Unha característica separada é o modo NBS (Network boundary shield), que non permite que as páxinas utilicen o navegador como proxy entre redes externas e locais (todas as solicitudes de saída son interceptadas e analizadas).

API bloqueadas ou restrinxidas:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp e VRFrameData.prototype.timestamp - a saída de tempo exacta pódese usar para identificar e realizar ataques de canle lateral .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()): úsase para determinar as características do subsistema gráfico ao identificar un usuario.
  • Audiobuffer e Analysernode (Audiobuffer.getChanneldata (), Audiobuffer.copyfromchannel (), analysernode.getBytimedomaindata (), analySernode.getfloatTimedoma Indata (), analysernode.getbytefrequencydata () e analysernode.getBytimedomaindata () - análise de sinal de identificación mediante ()
  • WebGLRenderingContext: identificación mediante a análise das características da pila de gráficos e da GPU.
  • MediaDevices.prototype.enumerateDevices - identificación mediante a obtención de parámetros e nomes da cámara e do micrófono.
  • navigator.deviceMemory, navigator.hardwareConcurrency - obtención de información sobre o hardware.
  • XMLHttpRequest (XHR): transfire a información recollida do sistema a un servidor externo despois de cargar a páxina.
  • ArrayBuffer: leva a cabo ataques Spectre microarquitectónicos.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - realizando ataques que avalían os atrasos ao acceder aos datos.
  • API de xeolocalización (navigator.geolocation): acceso á información de localización (a adición permítelle distorsionar os datos devoltos).
  • Gamepad API (navigator.getGamepads()) é un dos sinais de identificación que ten en conta a presenza dun gamepad no sistema.
  • API de realidade virtual, API de realidade mixta: uso de parámetros de dispositivos de realidade virtual para a identificación.
  • window.name - filtracións entre sitios.
  • navigator.sendBeacon - usado para análise web.

Fonte: opennet.ru

Engadir un comentario