L'Open Source Foundation a introduit le module complémentaire de navigateur JShelter pour limiter l'API JavaScript

La Free Software Foundation a présenté le projet JShelter, qui développe un module complémentaire de navigateur pour se protéger contre les menaces qui surviennent lors de l'utilisation de JavaScript sur des sites Web, notamment l'identification cachée, le suivi des mouvements et l'accumulation de données utilisateur. Le code du projet est distribué sous licence GPLv3. Le module complémentaire est préparé pour Firefox, Google Chrome, Opera, Brave, Microsoft Edge et d'autres navigateurs basés sur le moteur Chromium.

Le projet est développé dans le cadre d'une initiative conjointe financée par la Fondation NLnet. Giorgio Maone, créateur du module complémentaire NoScript, ainsi que les fondateurs du projet J++ et les auteurs des modules complémentaires JS-Shield et JavaScript Restrictor, ont également rejoint le développement de JShelter. Le module complémentaire JavaScript Restrictor est utilisé comme base pour le nouveau projet.

JShelter peut être considéré comme une sorte de pare-feu pour les interfaces de programmation JavaScript disponibles pour les sites Web et les applications Web. Le module complémentaire offre quatre niveaux de protection, ainsi qu'un mode de configuration flexible pour l'accès à l'API. Le niveau zéro permet complètement l'accès à toutes les API, le premier inclut un blocage minimal qui ne perturbe pas le fonctionnement des pages, le deuxième niveau équilibre entre blocage et compatibilité, et le quatrième niveau inclut un blocage strict de tout ce qui est inutile.

Les paramètres de blocage des API peuvent être liés à des sites individuels. Par exemple, la protection peut être renforcée pour certains sites et désactivée pour d'autres. Vous pouvez également bloquer de manière sélective certaines méthodes, objets, propriétés et fonctions JavaScript, ou modifier les valeurs de retour (par exemple, produire de fausses informations sur le système). Une fonctionnalité distincte est le mode NBS (Network Border Shield), qui ne permet pas aux pages d'utiliser le navigateur comme proxy entre les réseaux externes et locaux (toutes les requêtes sortantes sont interceptées et analysées).

API bloquées ou restreintes :

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp et VRFrameData.prototype.timestamp - l'heure exacte peut être utilisée pour identifier et mener des attaques par canal secondaire .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - utilisé pour déterminer les fonctionnalités du sous-système graphique lors de l'identification d'un utilisateur.
  • Audiobuffer et Analysernode (Audiobuffer.getChanneldata (), Audiobuffer.copyfromchannel (), analysernode.getBytimedomaindata (), analySernode.getfloatTimedoma Indata (), analysernode.getbyte Frequencydata () et analysernode.getfloat Frequency ()) - identification par analyse du signal sonore.
  • WebGLRenderingContext - identification grâce à l'analyse des fonctionnalités de la pile graphique et du GPU.
  • MediaDevices.prototype.enumerateDevices - identification en obtenant les paramètres et les noms de la caméra et du microphone.
  • navigator.deviceMemory, navigator.hardwareConcurrency - obtention d'informations sur le matériel.
  • XMLHttpRequest (XHR) - transfère les informations système collectées vers un serveur externe après le chargement de la page.
  • ArrayBuffer - réalisation d'attaques microarchitecturales Spectre.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - réalisation d'attaques qui évaluent les retards d'accès aux données.
  • API de géolocalisation (navigator.geolocation) - accès aux informations de localisation (l'ajout vous permet de déformer les données renvoyées).
  • L'API de la manette de jeu (navigator.getGamepads()) est l'un des signes d'identification qui prend en compte la présence d'une manette de jeu dans le système.
  • API de réalité virtuelle, API de réalité mixte - utilisation des paramètres de l'appareil de réalité virtuelle pour l'identification.
  • window.name - fuites entre sites.
  • navigator.sendBeacon - utilisé pour l'analyse Web.

Source: opennet.ru

Ajouter un commentaire