Endurecimiento moderado para Firefox


La web moderna consta de muchas tecnologías diferentes que brindan una variedad de oportunidades ... pero también crean una cantidad considerable de amenazas. Los navegadores modernos han sido durante mucho tiempo las aplicaciones más complejas en la computadora, por delante de la complejidad incluso del núcleo del sistema operativo (en Firefox varias veces más líneas de código que en el kernel de Linux o las suites de oficina). Pasamos la mayor parte de nuestro tiempo en el navegador, por lo que no es sorprendente que el navegador esté bajo control: constantemente intentan piratearlo, usarlo en la red de bots, tratar de robarle nuestros datos, escuchar su tráfico, rastrear los sitios que visitamos y nuestras acciones en estos sitios. .


Ahora es el momento de decir que no todo está tan mal y que todos estos problemas pueden resolverse ... pero esto no es así. Fuera de la caja, los navegadores ya están haciendo mucho: actualizan regularmente, intentan tapar agujeros de seguridad, introducen nuevas tecnologías para protección, brindan la capacidad de expandir su funcionalidad con extensiones de terceros. Pero no hay una protección seria fuera de la caja , y es poco probable que aparezca: se completa con una complicación de la interfaz del navegador y una desactivación parcial de su funcionalidad, lo que "rompe" los sitios y es poco probable que atraiga a los usuarios comunes. Pero lo más triste es que, incluso a ese precio, es imposible proteger completamente el navegador, se ha vuelto demasiado complicado.


Sin embargo, puede hacer mucho para mejorar la seguridad del navegador. Hay un par de buenos proyectos (en inglés) que ofrecen enfoques integrales para la protección adicional de Firefox: Guía de configuración de Firefox para fanáticos de la privacidad y artículo sobre Performance Buffs (o su versión para usuarios habituales ¡ La Guía de privacidad de Firefox para tontos ! ) De 12bytes.org y ghacks -user .js de Thorin-Oakenpants, earthlng y claustromaniac. Se centran en la máxima protección, pero el uso de dicho navegador para tareas cotidianas se vuelve extremadamente problemático e inconveniente. En mi opinión, debe limitarse a una protección moderada de Firefox para lograr un equilibrio entre fortalecer la seguridad, mantener la funcionalidad de los sitios que necesitamos y el esfuerzo dedicado a todo esto .


Contenido:


Modelo de amenaza
Seguridad
Confidencialidad
Huellas dactilares
Seguimiento
Anonimato
Formas disponibles para mejorar la protección
Extensiones
Lienzo
Protección CSS Exfil
Decentraleyes
ETag Stoppa
Editor de encabezado
HTTPS en todas partes
URL ordenada
Origen de uBlock
uMatrix
ghacks user.js
Tengo poco endurecimiento moderado, ¡quiero todo al máximo!
El sitio no funciona: ¿quién tiene la culpa y dónde solucionarlo?
Hechos divertidos



Modelo de amenaza


Para comenzar, analicemos el modelo de amenaza, qué estamos protegiendo exactamente y de qué.



Seguridad


Este es un concepto bastante general, pero en nuestro caso, se trata de obstaculizar o complicar el uso del navegador por parte de otros de una manera anormal: esto incluye una amplia gama de amenazas de piratear el navegador por exploits para proteger contra el phishing.


Obviamente, siempre habrá agujeros, por lo que no puede haber una protección del 100% aquí en principio. En su mayor parte, se trata de deshabilitar algunas características de un navegador o tecnología web para reducir la superficie de ataque.



Confidencialidad


Nadie, excepto el remitente y el destinatario, deberían poder leer la información transmitida.


Aquí estamos hablando principalmente de mejorar la protección de las conexiones https. La configuración predeterminada del navegador se centra más en garantizar que se pueda establecer la conexión, incluso a costa de perder la capacidad de garantizar su confidencialidad.



Huellas dactilares


El usuario debe poder evitar que el sitio web determine que el mismo usuario realizó vistas de sitio pasadas y actuales.


Aquí es donde comienza el infierno. Olvide esos momentos bendecidos cuando fue suficiente para borrar las cookies y acceder al sitio desde una IP diferente, por lo que, en principio, no pudo conectar estas dos visitas. Ahora los sitios tienen acceso a tantos datos diversos y únicos sobre el navegador, el sistema operativo y el hardware del usuario que se hizo imposible detenerlos. Francamente, en el proceso de preparación de este artículo, aprendí muchas cosas que ahora me gustaría "ver", aunque ya sabía mucho sobre lo que está sucediendo en esta área, ni siquiera imaginé la magnitud del desastre.


Una lista parcial de lo que los sitios web pueden encontrar sobre su sistema:
  • En el servidor:
    • Detalles de conexión de red (IP, MTU).
    • ID de sesión SSL. Por lo general, cambia una vez al día. Y esto significa que, por ejemplo, si ya visitó https://gmail.com con una cuenta hoy, y luego borró las cookies, etc. y cambió la VPN para ir a https://gmail.com desde otra IP: Google aún puede determinar qué hicieron ambas visitas desde el mismo navegador.
    • Todo lo que revelan los encabezados HTTP: versión del navegador, sistema operativo, idioma.
  • Vía CSS:
    • El tamaño de la ventana del navegador. Además, esta es una de las características más exclusivas del navegador.
    • DPI / escala.
    • Fuentes instaladas. A través de CSS, puede verificar solo las fuentes conocidas previamente (JS le permite obtener todas las fuentes), pero esto es más que suficiente: al final, la lista de todas las fuentes existentes es finita y bien conocida.
    • OS (en fuentes típicas).
  • Vía JS:
    • Hierro:
      • El número de procesos paralelos del navegador (concurrencia).
      • El fabricante y el modelo de la tarjeta de video (a través de WebGL).
    • Navegador:
      • Nombre y versión.
      • OS
      • El local.
      • Idioma.
      • Zona horaria
      • Configuración de derechos de acceso (acceso a la ubicación, micrófono, etc.): que están permitidos, que están prohibidos, que el usuario solicitará (que también forma un conjunto bastante único de acuerdo con la configuración del usuario).
      • ¿Se utiliza el modo de navegación privada?
    • Pantalla:
      • Dimensiones (resolución) de la pantalla, disponible, ventana externa, ventana interna, ventana gráfica.
      • ¿Está habilitada la pantalla completa?
      • Orientación de pantalla.
      • Profundidad de color.
      • DPI
      • Se utiliza HiDPI.
      • El nivel de zoom actual de la página.
      • devicePixelRatio.
    • Almacenes de datos (formas de recordar ID de usuario):
      • Cookies
      • almacenamiento local.
      • sessionStorage.
      • indexedDB.
      • appCache
      • Trabajador web.
      • Trabajador compartido
      • Trabajador de servicio.
      • Servicio de caché de trabajadores.
      • Notificaciones
      • Caché normal (incluidos trucos con ETag, etc.).
    • Fuentes (otro de los factores más singulares).
    • Canvas (puede obtener una huella digital única al leer el resultado de la representación por el navegador).
    • DOMRect.
    • API de observador de intersección.
    • WebGL (entre otras cosas, puede encontrar el nombre de la tarjeta de video).
    • API de audio
    • Lista de algoritmos de cifrado permitidos y versiones de TLS.

Después de mirar esta lista, el aviso legal requerido por los sitios web de los sitios web sobre el uso de cookies parece una burla.


Hay dos enfoques para la protección: reducir la entropía de las huellas digitales (para que muchos usuarios coincidan con la huella digital) y aumentar la entropía (para que la huella digital de un usuario sea diferente a la anterior cada vez). Por lo general, la reducción de la entropía funciona mejor, pero de manera más o menos completa solo se puede implementar en un navegador Tor, porque para esto es necesario limitar severamente la capacidad de los usuarios de personalizar el navegador, y los navegadores de uso general no pueden permitírselo. En cuanto al aumento de la entropía, el problema principal es que el hecho de la aleatorización de huellas digitales puede determinarse (haciendo dos huellas digitales seguidas), después de lo cual, en lugar del valor específico de la huella digital, comienza a usarse el signo "huella digital falsa", que en sí mismo lo coloca en una categoría muy estrecha de usuarios y hace que sea fácil obtener una impresión única para usted.


Para nosotros, todo esto significa que incluso tratar de obstaculizar la recolección de nuestras huellas digitales no tiene sentido, a menos que se pueda obtener "gratis", sin sacrificar el rendimiento de los sitios y la usabilidad del navegador.



Seguimiento


No debería ser posible vincular la navegación de diferentes sitios web por un usuario, a menos que él mismo haya informado a un sitio sobre la información de su cuenta en otro sitio.


Por lo general, el seguimiento se realiza conectando recursos (JS / CSS / imagen) del mismo sitio de terceros a muchos otros sitios. Parece que usar extensiones para bloquear rastreadores y anuncios debería resolver este problema ... pero, por desgracia, esto no es así. Sí, ayuda, pero la cruda realidad es que los sitios venden estos datos, por lo que incluso si visitó dos sitios donde todos los recursos de terceros están bloqueados, estos sitios aún pueden vender datos sobre sus visitas a la misma red publicitaria. , lo que le permitirá conectar estas visitas entre sí (teniendo en cuenta las posibilidades antes mencionadas de obtener una huella digital de usuario única; esto no será un problema).


Sin embargo, el bloqueo de recursos de terceros todavía vale la pena: esto acelera la carga de sitios, elimina la publicidad, complica y aumenta el costo de seguimiento, y también reduce las fuentes de ataques en el navegador.



Anonimato


No debería ser posible conectar la visualización de un sitio web con la identidad real del usuario si no se registró en este sitio web con su nombre real y no accedió a él desde la dirección IP registrada por el proveedor en él.


Dada la posibilidad de obtener huellas digitales y seguimiento, el anonimato del usuario, que al menos uno de los sitios visitados le permitió conocer su verdadera identidad, se convierte en una ficción.


Mejorar el anonimato está más allá de nuestro alcance. En resumen, tenga en cuenta: no hay anonimato al usar su navegador principal, y nunca lo será. Se necesita anonimato: busque virtualoks especializados (con la configuración predeterminada y sin guardar los resultados en el disco después de apagar virtualka), VPN + Tor y Tor-browser en lugar de Firefox normal.



Formas disponibles para mejorar la protección


Entonces, ¿qué podemos hacer? En orden creciente de dificultad:


  • Puede utilizar las capacidades integradas del navegador para controlar y aislar sitios web de forma individual:
    • Contenedores
    • Ventana privada
    • Gestión de derechos de acceso a sitios web.
    • Bloqueo de cookies de terceros y rastreadores famosos.
    • Eliminación de datos / caché almacenados por sitios web.
  • Puede instalar una variedad de extensiones.
  • Puede jugar entre los miles de configuraciones de navegador disponibles en about:config y cambiar algunas de ellas.

Con el primer párrafo, todo es trivial, pero me gustaría señalar especialmente los contenedores. Esta es una característica relativamente nueva de Firefox que le permite aislar un grupo de sitios en un contenedor de un grupo de sitios en otro. De hecho, usar diferentes contenedores en un navegador debería funcionar de la misma manera que usar varios navegadores diferentes al mismo tiempo, pero hacerlo más conveniente para el usuario. El aislamiento de los contenedores sigue siendo un poco más débil que cuando se usan diferentes navegadores, pero es bastante bueno y se pueden usar contenedores. Sin embargo, los contenedores en sí no mejoran la protección de ninguno de los puntos considerados en nuestro modelo de amenaza: como máximo, evitan ligeramente que la huella digital del usuario se aísle del almacenamiento de datos ( cookies, caché, etc. ).


Las extensiones se encuentran entre las más diversas: algunas son suficientes para instalar y funcionarán sin requerir atención y ajustes, otras deben configurarse constantemente para restaurar la funcionalidad de los nuevos sitios, y otras son una amenaza para la seguridad, la privacidad y el seguimiento. Por lo tanto, debe considerar cuidadosamente la elección de las extensiones instaladas, sus políticas de privacidad y sus actualizaciones.


En cuanto a cambiar about:config configuración, esta es la forma más difícil de mejorar la seguridad. Demasiadas de estas configuraciones, muy poca información sobre lo que puede romperse cuando se cambia cada configuración, el efecto no es demasiado obvio para la mayoría de ellas, además cada nueva versión de Firefox trae un montón de nuevas configuraciones y elimina algunas de las antiguas.



Extensiones


Piense si desea usar actualizaciones automáticas de extensiones (puede desactivarlo sobre about:addons ). Hay muchas razones por las que debe desactivarlo (pero aún es necesario actualizarlas, solo monitoreando manualmente y cuidadosamente los cambios, incluidas las políticas de privacidad):


  • Los desarrolladores regularmente deciden comenzar a monetizar la extensión de maneras que, en el contexto de este artículo, definitivamente no les gustará.
  • Los desarrolladores a veces venden extensiones, y su nuevo propietario generalmente les hace cambios, lo que también es poco probable que les guste.
  • Las extensiones ocasionalmente "secuestran" al desarrollador.
  • Las versiones más recientes pueden romper la compatibilidad con su configuración actual y / o errores.

Algunas extensiones usan CSP para implementar características individuales. Desafortunadamente, en este momento, la arquitectura de Firefox es tal que solo una de las extensiones podrá modificar CSP al cargar un sitio web, y no puede estar seguro de cuál de ellas de antemano. Dado que es muy importante garantizar el correcto funcionamiento de uMatrix , es necesario verificar cuidadosamente la configuración de otras extensiones para asegurarse de que todas las funciones que usan CSP estén deshabilitadas en ellas:


  • uBlock Origin : apague el → → → [ ] (definitivamente no estoy seguro, pero es lógico suponer que para sitios individuales esto también es mejor no habilitar).
  • HTTPS en todas partes : → [ ] (EASE) deshabilitar → [ ] (EASE) .
  • CanvasBlocker : Deshabilite → → [ ] Block data URL pages (para ver este elemento, debe habilitar → [✓] ).

Si decide no limitarse a instalar extensiones y coloca el user.js descrito a continuación, considere los matices adicionales:


  • La user.js configuración recomendada de user.js requiere el uso de la extensión uMatrix .
  • Se necesitan algunas configuraciones en user-overrides.js para no interrumpir el trabajo de algunas extensiones; ajústelas según las extensiones que haya instalado.


Lienzo


  • Enlace
  • Protege: huellas dactilares.
  • Descripción: hace que sea difícil tomar huellas digitales a través de diferentes API: Canvas, WebGL, Audio, Historial, Ventana (deshabilitado de forma predeterminada; puede romper sitios), DOMRect.
  • Uso: Funciona automáticamente, no requiere atención. Muestra un ícono separado al final de la barra de direcciones en los sitios que intentan usar API protegidas (a través de él puede deshabilitar el bloqueo en un sitio específico).
  • Icono: se puede ocultar en el menú avanzado.
  • Configuración:
     [✓]   [✓] Block data URL pages` (  CSP  uMatrix) 


Protección CSS Exfil


  • Enlace
  • Protege: confidencialidad.
  • Descripción: bloquea ataques como la exfiltración de datos CSS (robo de datos de la página mediante el uso de selectores CSS específicos).
  • Uso: Funciona automáticamente, no requiere atención.
  • Icono: se puede ocultar en el menú avanzado.
  • Ajuste: no requerido.


Decentraleyes


  • Enlace
  • Protege: Seguimiento.
  • Descripción: Protege contra el seguimiento de CDN "gratis". Contiene archivos populares que generalmente se solicitan a través de CDN y se los entrega al navegador sin realizar una solicitud de red real para CDN. Efecto secundario: acelera ligeramente la carga de sitios.
  • Uso: Funciona automáticamente, no requiere atención.
  • Icono: se puede ocultar en el menú avanzado.
  • Ajuste: no requerido.

Desafortunadamente, para mí suspende la interfaz de Firefox mientras algunos sitios se cargan en segundo plano , por lo que tuve que desactivarla por ahora.



ETag Stoppa


  • Enlace
  • Protege: huellas dactilares.
  • Descripción: Elimina el encabezado ETag: de la respuesta del servidor.
  • Uso: Funciona automáticamente, no requiere atención.
  • Ícono: Ninguno.
  • Ajuste: no requerido.

En lugar de usar esta extensión, puede agregar una regla al Editor de encabezado (tiene sentido si también se usa para otras reglas):


  • Tipo de regla: Modificar encabezado de respuesta
  • Tipo de coincidencia: todos
  • Tipo de ejecución: función personalizada
  • Función personalizada:
     for (const a in val) { if (val[a].name.toLowerCase() === 'etag') { val[a].value = ''; } } 


Editor de encabezado


  • Enlace
  • Protege: depende de cómo usarlo.
  • Descripción: le permite establecer sus propias reglas para bloquear o redirigir solicitudes, así como cambiar los encabezados de una solicitud o respuesta.
  • Uso: Funciona automáticamente, no requiere atención.
  • Icono: se puede ocultar en el menú avanzado.
  • Configuración: Por sí mismo, no hace nada en absoluto: debes determinar las reglas para él.

Un ejemplo de las reglas se menciona anteriormente en la descripción de ETag Stoppa . Pero si no hay otras reglas, entonces es más fácil usar ETag Stoppa en lugar de esta extensión.


Otro ejemplo: descubrí que la extensión ImTranslator por alguna razón envía dos cookies a todos los sitios: BL_D_PROV=undefined; BL_T_PROV=undefined BL_D_PROV=undefined; BL_T_PROV=undefined . Tal vez esto sea solo un error, pero no me gusta que le diga a todos los sitios que uso esta extensión. El problema se resuelve con esta regla:


  • Tipo de regla: Modificar encabezado de solicitud
  • Tipo de coincidencia: todos
  • Tipo de ejecución: función personalizada
  • Función personalizada:
     for (const a in val) { if (val[a].name.toLowerCase() === 'cookie') { val[a].value = val[a].value.split(/;\s*/).filter((kv)=>{ return !kv.match(/^BL_[DT]_PROV=/) }).join('; '); if (val[a].value === '') { delete val[a]; } } } 


HTTPS en todas partes


  • Enlace
  • Protege: confidencialidad.
  • Descripción: cambia automáticamente a https siempre que sea posible.
  • Uso: Funciona automáticamente, casi no requiere atención (la última vez que rompí un sitio debido a esta expansión hace un año y medio).
  • Icono: Se usa para personalizar sitios.
  • Ajuste: no requerido.


URL ordenada


  • Enlace
  • Protege: Seguimiento.
  • Descripción: elimina los parámetros basura de las URL.
  • Uso: Funciona automáticamente, no requiere atención.
  • Icono: se puede ocultar en el menú avanzado.
  • Ajuste: no requerido.


Origen de uBlock


  • Enlace
  • Protege: seguridad, huellas dactilares, seguimiento.
  • Descripción: Un bloqueador automático (basado en listas de terceros) de cualquier tipo de basura por tipo y / o url, así como elementos de página individuales: desde publicidad y notificaciones sobre el uso de cookies por parte del sitio hasta rastreadores y malvari.
  • Uso: Ocasionalmente, necesita configurar un nuevo sitio.
  • Icono: Necesario para configurar el sitio actual, incluido el bloqueo manual de elementos de página individuales.
  • Configuración: (listas de filtros - una cuestión de preferencia personal)
      [✓]     →  [✓]    IP-  WebRTC [✓]  CSP-   →  [✓] uBlock filters – Annoyances   →  [✓] Adblock Warning Removal List   →  [✓] Fanboy's Enhanced Tracking List   →   [✓] Malvertising filter list by Disconnect [✓] Spam404   →   [✓] AdGuard Annoyances filter [✓] Fanboy's Cookie List [✓] Fanboy's Annoyance List   →  [✓] Dan Pollock's hosts file [✓] hpHosts' Ad and tracking servers   → ,  [✓] RUS: RU AdList 


uMatrix


  • Enlace
  • Protege: seguridad, huellas dactilares, seguimiento.
  • Descripción: Bloqueador manual de recursos individuales por tipo y dominio.
  • Uso: regularmente necesita configurar un nuevo sitio.
  • Icono: Necesario para configurar el sitio actual.
  • Configuración:


      →  [✓]      →  [✓]      [1440]     [✓]       [✓]     [1440]  #   referer  uMatrix    user.js: [ ]   HTTP referrer      [✓]  HTTPS:    #  " ",    ""  "":  →   * * script block 


Esta extensión proporciona la protección más seria, pero tiene un precio: muchos sitios se romperán y deberán repararse manualmente. Por ejemplo, la recién agregada regla "* * script block" apagó la ejecución de JS en todos los sitios, lo que, por supuesto, rompió muchos de ellos. Pero no se apresure a eliminar esta regla: en primer lugar, no ayudará mucho, porque la carga de muchos tipos de recursos, incluido JS de sitios de terceros, todavía está deshabilitada (lo que también rompe muchos sitios); y en segundo lugar, el enfoque de " lista blanca: prohibido todo lo que no estaba explícitamente permitido " en la web moderna es el único aceptable, ya que desea fortalecer la protección de Firefox.


La buena noticia es que no es difícil reparar sitios, por lo general, solo dos o tres clics en la matriz, que muestra el ícono de la extensión, y luego volver a leer la página actual. Lo principal es no olvidar guardar los cambios en la misma matriz después de arreglar el sitio.


Y prepárese mentalmente de que la primera vez que tendrá que reparar casi todos los sitios que visita con frecuencia, esto se debe al hecho de que en los sitios de uso activo, seguramente necesitará incluir al menos el JS del sitio en sí, además, posiblemente, algunos recursos con sitios de terceros. Sea paciente los primeros días, ¡será más fácil, honestamente! :)


Cabe señalar que la interfaz de uMatrix es muy clara y conveniente, después de tratar con ella. En otras palabras, no se puede llamar intuitivo. Por lo tanto, es muy recomendable leer la documentación. Como mínimo, la sección de uso básico de uMatrix (con fotos) de la Guía de configuración de Firefox anterior para el artículo de Privacy Freaks y Performance Buffs . En general, recomiendo leer el wiki uMatrix : hay muchas cosas, pero la información es muy necesaria y útil.


Hay otro conjunto adicional de reglas que puede tener sentido agregar a → : ayudará a bloquear los sitios de Internet para que no accedan a los recursos en la red local (esto no es protección contra un ataque de enlace DNS). Si instaló uMatrix hace mucho tiempo, primero debe eliminar la regla "matrix-off: localhost true" (las nuevas versiones de uMatrix no lo instalan).


Agregue estas reglas:
 * localhost * block * 127 * block * 10 * block * 192.168 * block * 169.254 * block * 172.16 * block * 172.17 * block * 172.18 * block * 172.19 * block * 172.20 * block * 172.21 * block * 172.22 * block * 172.23 * block * 172.24 * block * 172.25 * block * 172.26 * block * 172.27 * block * 172.28 * block * 172.29 * block * 172.30 * block * 172.31 * block * [::1] * block * [fc00::] * block * [fd00::] * block * [fe80::] * block * [fe80::1%lo0] * block * [ff02::1] * block * [ff02::2] * block localhost localhost * allow 127 127 * allow 10 10 * allow 192.168 192.168 * allow 169.254 169.254 * allow 172.16 172.16 * allow 172.17 172.17 * allow 172.18 172.18 * allow 172.19 172.19 * allow 172.20 172.20 * allow 172.21 172.21 * allow 172.22 172.22 * allow 172.23 172.23 * allow 172.24 172.24 * allow 172.25 172.25 * allow 172.26 172.26 * allow 172.27 172.27 * allow 172.28 172.28 * allow 172.29 172.29 * allow 172.30 172.30 * allow 172.31 172.31 * allow [::1] [::1] * allow [fc00::] [fc00::] * allow [fd00::] [fd00::] * allow [fe80::] [fe80::] * allow [fe80::1%lo0] [fe80::1%lo0] * allow [ff02::1] [ff02::1] * allow [ff02::2] [ff02::2] * allow 


ghacks user.js


Todo era simple con extensiones (sí, e incluso con uMatrix , aunque complica el uso del navegador, también brinda la protección principal), y ahora llegamos a la parte difícil.


El proyecto ghacks user.js nos proporciona el archivo user.js básico, más scripts para actualizarlo y restablecer la configuración remota. Este archivo contiene (por el momento) un cambio de 488 configuraciones en about:config ! Y se considera básico por una razón: usarlo tal cual, sin realizar los cambios que necesita, casi seguramente provocará un desastre (por ejemplo, su configuración predeterminada elimina regularmente todo el historial del navegador, bloquea la rusificación de Firefox, rompe muchos sitios y extensiones).


Este proyecto hace un esfuerzo muy serio para proteger las huellas dactilares y el seguimiento ... tan grave que el uso del navegador se vuelve tan inconveniente que es más honesto decir "imposible". Y al mismo tiempo, pierde notablemente la protección del navegador Tor en la máquina virtual. Esto de ninguna manera significa que el proyecto sea inútil para los usuarios; solo para usarlo, debe dedicar mucho tiempo a crear su propio user-overrides.js .


Por esta razón, antes de usarlo, debe:


  • Lea atentamente user.js (unas 2300 líneas).
  • Lea atentamente todas las páginas wiki del proyecto .
  • Cree su propio archivo user-overrides.js con todos los cambios relacionados con user.js que necesita personalmente.
  • Haga una copia de seguridad de su perfil de Firefox !!!
  • Y solo entonces active user.js

Se necesita tiempo y mucho. ¿Vale la pena? Esta es una pregunta difícil.


Para responderlo, hice una lista (incompleta) de lo que mejora además de las huellas dactilares y el seguimiento: mira y decide por ti mismo:


  • Seguridad:
    • Deshabilita la autenticación HTTP de origen cruzado (phishing de cuenta).
    • Mejora la protección al usar contraseñas almacenadas .
    • Mejora la seguridad al usar TLS y certificados .
    • Limita el soporte de fuentes (alta probabilidad de vulnerabilidades).
    • Deshabilita los complementos DRM .
    • Deshabilita WebGL (alta probabilidad de vulnerabilidades).
    • Limita las características de WebGL si está habilitado (alta probabilidad de vulnerabilidades).
    • Inhabilita todo tipo de opciones de trabajadores (mineros, Meltdown / Spectre).
    • Deshabilita asm.js (alta probabilidad de vulnerabilidades).
    • Deshabilita WebAssembly .
    • Deshabilita la memoria compartida (espectro).
    • Agrega rel=noopener para enlaces con target=_blank (seguridad).
    • Mejora la protección al interactuar con aplicaciones locales de terceros .
    • Deshabilita MathML (reducción de superficie de ataque).
    • Fuerzas Punycode para IDN (anti-spoofing).
    • Activa el soporte experimental para CSP 1.1 .
    • Incluye aislamiento de primera parte .
  • Fugas, manejo:
    • Inhabilita la telemetría de Firefox y las funciones vinculadas (recomendaciones, etc.).
    • Deshabilita servicios de terceros como Pocket.
    • Bloquea el bombeo de enlaces a los que no se hizo clic (ping, búsqueda previa, etc.).
    • Deshabilita las funciones de red a través de las cuales puede omitir el proxy / VPN y descubrir la IP (incluyendo IPv6 y WebRTC).
    • Limita la filtración del historial de páginas anteriores en la pestaña actual.
    • Deshabilita : visitado (fuga de historial).
    • Bloquea una fuga al escribir en la línea de búsqueda de dirección / texto a través de las sugerencias del motor de búsqueda .
    • Inhabilita el uso compartido de pantalla .
    • Niega el acceso al portapapeles .
    • Inhabilita la API de Intersection Observer (estabilidad, definición de bloqueador de anuncios).

Para simplificar la preparación de su user-overrides.js autor de los artículos anteriores en 12bytes.org publicó su propio user-overrides.js . Categóricamente no me convenía, porque necesito una protección moderada , lo que mantiene la conveniencia de usar el navegador, incluso a costa de debilitar la protección contra huellas dactilares y seguimiento.


También publiqué mi user-overrides.js , tal vez te sea más fácil usar user.js


Entonces, para comenzar a usar user.js , debe hacer lo siguiente:


  • OBLIGATORIO! Haga una copia de seguridad de su perfil actual de Firefox.
  • Descargue los siguientes archivos del proyecto ghacks user.js en el directorio de su perfil actual:
    • user.js
    • updater.sh (y hacerlo factible) o updater.bat
    • prefsCleaner.sh (y hacerlo factible) o prefsCleaner.bat
  • Cree un archivo user-overrides.js en el directorio de su perfil actual.
    • Puede descargar my user-overrides.js , luego ingresar su valor dom.push.userAgentID actual y realizar los cambios que necesita.
  • Ejecute ./updater.sh o updater.bat . Actualizará user.js y user.js el contenido de user-overrides.js final.
  • Salga de Firefox y ejecute ./prefsCleaner.sh o prefsCleaner.bat . Eliminará del archivo prefs.js (que contiene su about:config actual de about:config ) todas las configuraciones que se mencionan en user.js (incluidas las comentadas).
  • Inicia Firefox. Presione Ctrl-Shift-Del y elimine (todo el tiempo):
    • Cookies
    • Caché
    • Datos del sitio web sin conexión.
  • _user.js.parrot vistazo a about:config , el parámetro _user.js.parrot debe establecerse en "SUCCESS"; de lo contrario, user.js error de sintaxis en algún lugar de su user.js

Tenga en cuenta que todas las configuraciones especificadas en user.js se aplicarán cada vez que se inicie Firefox. Entonces, si cambia algunos de ellos a través de about:config y desea guardar estos cambios cuando reinicia Firefox, debe duplicarlos en user-overrides.js y luego ejecutar ./updater.sh o updater.bat .


Recuerde ejecutar ./updater.sh o updater.bat periódicamente para actualizar user.js (al menos después del lanzamiento de la nueva versión de Firefox). El proceso de actualización se describe con más detalle en la wiki del proyecto .



Tengo poco endurecimiento moderado, ¡quiero todo al máximo!


Bueno, en este caso, esto es lo que debe hacer a continuación:


  • Descarte los cambios que debilitan la protección en user-overrides.js .
    • En lugar de desbloquear, los trabajadores los bloquean globalmente en uMatrix.
  • Ocultar IP a través de Tor y / o servicio VPN público.
  • Instale la extensión de la Política de origen orientada a la privacidad .
  • Instale la extensión Skip Redirect .
  • Instale la extensión Contenedores temporales .
  • Lea las precauciones, recomendaciones y motor de búsqueda de Firefox y limpie la configuración del motor de búsqueda en Firefox.
  • Elimine las extensiones integradas de / usr / lib / firefox / browser / features /.
  • Habilite la suplantación de referencias global para sitios de terceros en uMatrix.


El sitio no funciona: ¿quién tiene la culpa y dónde solucionarlo?


He compilado una lista de cambios que podrían interrumpir el sitio para que pueda encontrar rápidamente el culpable. "()" , user.js , user-overrides.js .


  • : CanvasBlocker
    • Canvas 2D .
    • WebGL .
    • Audio API .
    • history.length .
    • window.name window.opener .
    • DOMRect API .
    • data:// .
  • : CSS Exfil Protection
    • / CSS .
  • : ETag Stoppa
    • ETag: .
  • : Firefox Multi-Account Containers
    • ( , localStorage , etc.) .
  • : HTTPS Everywhere
    • http:// https:// .
  • : Neat URL
    • url .
  • : uBlock Origin
    • DOM .
    • / url .
    • popup .
    • .
    • pre-fetching .
    • <a ping> sendBeacon .
    • CSP .
  • : uMatrix
    • .
    • mixed content .
    • workers .
    • Referer: .
    • <noscript> .
    • <a ping> sendBeacon .
  • ghacks user.js
    • () en-US.
    • pre-fetching (, DNS, onMouseOver, etc.).
    • <a ping> .
    • IPv6 ( MAC, .. VPN).
    • () HTTP/2 Alt-Svc: (fingerprinting).
    • () /etc/hosts DNS SOCKS.
    • () :visited ( ).
    • () date/time picker ( ).
    • cross-origin HTTP Auth ( ).
    • () https- OCSP .
    • SHA1 https- ( /MITM).
    • Public Key Pinning ( /MITM).
    • () mixed content .
    • mixed content Flash.
    • () (fingerprinting).
    • ( ).
    • cross-origin Referer: .
    • DRM- .
    • () OpenH264 Video Codec - WebRTC.
    • () WebRTC ( IP, .. VPN).
    • WebGL ( ).
    • () WebGL ( ).
    • screen sharing .
    • canvas (fingerprinting).
    • () - HTML5 media .
    • window.open .
    • .
    • popup click dblclick.
    • () workers (, Meltdown/Spectre).
    • clipboard .
    • beforeunload .
    • asm.js ( ).
    • WebAssembly .
    • Intersection Observer API (, ).
    • Shared Memory (Spectre).
    • rel=noopener target=_blank ().
    • hardware acceleration (fingerprinting).
    • Web Audio API (fingerprinting).
    • sendBeacon .
    • - file:// .
    • MathML ( ).
    • () .
    • offline cache .
    • () first party isolation ( - ).
    • () resist fingerprinting ( / , , , , ; ; , ; Shift Alt; etc.).
  • user-overrides.js
    • .
    • TLS 1.0, 1.1 .
    • TLS .



Firefox, , , : Mozilla. , ALSA PulseAudio , PulseAudio. " , PulseAudio, " , , (, , — PulseAudio, ).


Firefox , : , FPI (first party isolation) RFP (resist fingerprinting). - Temporary Containers ( , " Hardening") — , . , . , , .


https://html5test.com HTML5 508 555 ( , user.js ) 493 ( user.js user-overrides.js ).

Source: https://habr.com/ru/post/445124/


All Articles