Proteção moderada para Firefox


A web moderna consiste em muitas tecnologias diferentes que oferecem uma variedade de oportunidades ... mas também criam um número considerável de ameaças. Os navegadores modernos são, há muito tempo, os aplicativos mais complexos do computador, à frente da complexidade do núcleo do sistema operacional (no Firefox várias vezes mais linhas de código do que no kernel do Linux ou nos suítes de escritório). Passamos a maior parte do tempo no navegador, por isso não é surpresa que o navegador esteja sob controle: eles constantemente tentam invadir, usar na botnet, roubar dados, ouvir o tráfego, rastrear os sites que visitamos e nossas ações nesses sites. .


Agora é a hora de dizer que nem tudo é tão ruim e todos esses problemas podem ser resolvidos ... mas não é assim. Prontamente, os navegadores já estão fazendo muito: eles atualizam regularmente, tentam corrigir falhas de segurança, introduzem novas tecnologias para proteção, oferecem a capacidade de expandir sua funcionalidade com extensões de terceiros. Mas não existe uma proteção séria imediata e é improvável que ela apareça: ela vem completa com uma complicação da interface do navegador e uma desativação parcial de sua funcionalidade, que "quebra" os sites e dificilmente atrai usuários comuns. Mas o mais triste é que, mesmo a esse preço, é impossível proteger completamente o navegador - tornou-se muito complicado.


No entanto, você pode fazer muito para melhorar a segurança do navegador. Existem alguns bons projetos (em inglês) que oferecem abordagens abrangentes para a proteção adicional do Firefox: Artigo Guia de Configuração do Firefox para Freaks de Privacidade e Buffs de Desempenho (ou sua versão para usuários regulares O Guia de Privacidade do Firefox para Leigos! ) .js de Thorin-Oakenpants, earthlng e claustromaniac. Eles se concentram na proteção máxima, mas o uso desse navegador para tarefas diárias comuns se torna extremamente problemático e inconveniente. Na minha opinião, você deve limitar-se a moderar a proteção do Firefox para encontrar um equilíbrio entre fortalecer a segurança, manter a funcionalidade dos sites de que precisamos e o esforço despendido em tudo isso .


Conteúdo:


Modelo de ameaça
Segurança
Confidencialidade
Impressão digital
Rastreamento
Anonimato
Maneiras disponíveis de aprimorar a proteção
Extensões
Canvasblocker
Proteção CSS Exfil
Decentraleyes
ETag Stoppa
Editor de cabeçalho
HTTPS em todo o lado
URL puro
Origem do uBlock
uMatrix
ghacks user.js
Tenho pouco endurecimento moderado, quero tudo ao máximo!
O site não funciona - quem é o culpado, onde corrigi-lo?
Fatos engraçados



Modelo de ameaça


Para começar, vamos analisar o modelo de ameaça, o que exatamente estamos protegendo e do quê.



Segurança


Esse é um conceito bastante geral, mas, no nosso caso, trata-se de dificultar ou complicar o uso do navegador por outras pessoas de maneira anormal: isso inclui uma ampla gama de ameaças, desde invasões ao navegador por explorações até proteção contra phishing.


Obviamente, sempre haverá buracos; portanto, não pode haver 100% de proteção aqui em princípio. Na maioria das vezes, trata-se de desativar alguns recursos de um navegador ou tecnologia da web para reduzir a superfície de ataque.



Confidencialidade


Ninguém, exceto o remetente e o destinatário, deve poder ler as informações transmitidas.


Aqui estamos falando principalmente sobre o aprimoramento da proteção de conexões https. As configurações padrão do navegador estão mais focadas em garantir que a conexão possa ser estabelecida, mesmo com o custo de perder a capacidade de garantir sua confidencialidade.



Impressão digital


O usuário deve poder impedir que o site determine que as exibições anteriores e atuais do site foram realizadas pelo mesmo usuário.


É aqui que o inferno começa. Esqueça aqueles momentos abençoados em que bastava limpar os cookies e acessar o site a partir de um IP diferente, para que, em princípio, ele não pudesse conectar essas duas visitas. Agora, os sites têm acesso a tantos dados diversos e exclusivos sobre o navegador, SO e hardware do usuário que se tornou impossível impedi-los. Francamente, no processo de preparação deste artigo, aprendi muitas coisas que agora gostaria de "ver" - embora já soubesse muito sobre o que está acontecendo nessa área, nem imaginava a escala do desastre.


Uma lista parcial de quais sites podem descobrir sobre o seu sistema:
  • No servidor:
    • Detalhes da conexão de rede (IP, MTU).
    • ID da sessão SSL. Geralmente muda uma vez por dia. E isso significa que, por exemplo, se você já acessou https://gmail.com em uma conta hoje e depois limpou os cookies etc. e alterou a VPN para acessar https://gmail.com de outro IP - o Google ainda pode determinar o que as duas visitas fizeram no mesmo navegador.
    • Tudo o que os cabeçalhos HTTP divulgam: versão do navegador, SO, idioma.
  • Via CSS:
    • O tamanho da janela do navegador. Além disso, essa é uma das características mais exclusivas do navegador.
    • DPI / escala.
    • Fontes instaladas. Através do CSS, é possível verificar a presença de apenas fontes conhecidas anteriormente (o JS permite obter todas as fontes), mas isso é mais do que suficiente - no final, a lista de todas as fontes existentes é finita e bem conhecida.
    • SO (em fontes típicas).
  • Via JS:
    • Ferro:
      • O número de processos do navegador paralelo (simultaneidade).
      • O fabricante e modelo da placa de vídeo (via WebGL).
    • Navegador:
      • Nome e versão.
      • OS
      • A localidade.
      • Idioma.
      • Fuso horário.
      • Configurações de direitos de acesso (acesso ao local, microfone, etc.) - que são permitidos, que são proibidos, que serão solicitados pelo usuário (que também forma um conjunto único de acordo com as configurações do usuário).
      • O modo de navegação privada é usado?
    • Tela:
      • Dimensões (resolução) da tela, disponível, janela externa, janela interna, janela de visualização.
      • A tela cheia está ativada?
      • Orientação da tela.
      • Profundidade de cor.
      • DPI
      • O HiDPI é usado.
      • O nível atual de zoom da página.
      • devicePixelRatio.
    • Data Warehouses (maneiras de lembrar o ID do usuário):
      • Cookies
      • localStorage.
      • sessionStorage.
      • indexedDB.
      • appCache.
      • Trabalhador da Web.
      • Trabalhador compartilhado.
      • Trabalhador de serviço.
      • Cache do trabalhador de serviço.
      • Notificações
      • Cache normal (incluindo truques com ETag, etc.).
    • Fontes (outro dos fatores mais exclusivos).
    • Canvas (você pode obter uma impressão digital exclusiva lendo o resultado da renderização pelo navegador).
    • DOMRect.
    • API do Intersection Observer.
    • WebGL (entre outras coisas, você pode descobrir o nome da placa de vídeo).
    • API de áudio
    • Lista de algoritmos de criptografia permitidos e versões do TLS.

Depois de examinar esta lista, o aviso legal exigido pelos sites de sites sobre o uso de cookies parece uma zombaria.


Existem duas abordagens para a proteção: reduzir a entropia das impressões digitais (para que muitos usuários correspondam) e aumentar a entropia (para que a impressão digital de um usuário seja diferente da anterior todas as vezes). Normalmente, a redução da entropia funciona melhor, mas de maneira mais ou menos completa, ela pode ser implementada apenas em um navegador Tor, porque para isso é necessário limitar severamente a capacidade dos usuários de personalizar o navegador, e os navegadores de uso geral não podem pagar. Quanto ao aumento da entropia, o principal problema é que o fato da randomização das impressões digitais pode ser determinado (fazendo duas impressões digitais seguidas), após o que, em vez do valor específico da impressão digital, o sinal "impressão digital falsa" começa a ser usado, o que por si só coloca você em uma categoria muito estreita de usuários e facilita obter uma impressão exclusiva para você.


Para nós, tudo isso significa que mesmo tentar impedir a coleta de nossas impressões digitais não faz sentido, a menos que possa ser obtido "de graça" - sem sacrificar o desempenho dos sites e a usabilidade do navegador.



Rastreamento


Não deve ser possível vincular a navegação de sites diferentes por um usuário, a menos que ele próprio tenha informado um site sobre as informações de sua conta em outro site.


Geralmente, o rastreamento é feito conectando recursos (JS / CSS / imagem) do mesmo site de terceiros a muitos outros sites. Parece que o uso de extensões para bloquear rastreadores e anúncios deve resolver esse problema ... mas, infelizmente, não é assim. Sim, ajuda, mas a dura verdade é que os sites vendem esses dados. Portanto, mesmo se você tiver visitado dois sites em que todos os recursos de terceiros estão bloqueados, esses sites ainda poderão vender dados sobre suas visitas à mesma rede de publicidade , o que permitirá que ela conecte essas visitas entre si (levando em consideração as possibilidades acima mencionadas de obter uma impressão digital exclusiva do usuário - isso não será um problema).


No entanto, o bloqueio de recursos de terceiros ainda vale a pena - isso acelera o carregamento de sites, elimina a publicidade, complica e aumenta o custo do rastreamento e também reduz as fontes de ataques no navegador.



Anonimato


Não deve ser possível conectar a visualização de um site à identidade real do usuário se ele não se registrou neste site com seu nome real e não o acessou pelo endereço IP registrado pelo provedor.


Dada a possibilidade de obter impressões digitais e rastreamento - o anonimato do usuário, que pelo menos um dos sites visitados lhe permitiu conhecer sua verdadeira identidade, se transforma em ficção.


Melhorar o anonimato está além do nosso escopo. Em resumo, lembre-se: não há anonimato ao usar o navegador principal e nunca haverá. O anonimato é necessário - procure virtualoks especializados (com configurações padrão e sem salvar os resultados em disco após desligar o virtualka), VPN + Tor e navegador Tor em vez do Firefox comum.



Maneiras disponíveis de aprimorar a proteção


Então o que podemos fazer? Em ordem crescente de dificuldade:


  • Você pode usar os recursos internos do navegador para controlar e isolar sites individualmente:
    • Contentores
    • Janela privada.
    • Gerenciamento de direitos de acesso para sites.
    • Bloqueando cookies de terceiros e rastreadores famosos.
    • Exclusão de dados / cache armazenados por sites.
  • Você pode instalar uma variedade de extensões.
  • Você pode mexer nas várias milhares de configurações disponíveis do navegador em about:config e alterar algumas delas.

Com o primeiro parágrafo, tudo é trivial, mas gostaria de observar especialmente os contêineres. Esse é um recurso relativamente novo do Firefox que permite isolar um grupo de sites em um contêiner de um grupo de sites em outro. De fato, o uso de contêineres diferentes em um navegador deve funcionar da mesma maneira que o uso de vários navegadores diferentes ao mesmo tempo - mas o torna mais conveniente para o usuário. O isolamento de contêineres ainda é um pouco mais fraco do que quando se usa navegadores diferentes, mas é bastante bom e os contêineres podem ser usados. No entanto, os próprios contêineres não aprimoram a proteção de nenhum dos pontos considerados em nosso modelo de ameaça - no máximo, impedem levemente que a impressão digital do usuário seja isolada do armazenamento de dados ( cookies, cache, etc. ).


As extensões encontram-se nas mais diversas - algumas são suficientes para instalar e funcionam sem exigir atenção e ajustes, outras precisam ser constantemente configuradas para restaurar a funcionalidade de novos sites, e outras ainda são uma ameaça à segurança, privacidade e rastreamento. Portanto, você deve considerar cuidadosamente a escolha das extensões instaladas, suas políticas de privacidade e suas atualizações.


Quanto à alteração about:config esta é a maneira mais difícil de aumentar a segurança. Muitas dessas configurações, poucas informações sobre o que pode quebrar quando cada configuração é alterada, o efeito não é muito óbvio para a maioria delas, além de cada nova versão do Firefox traz várias configurações novas e remove algumas das antigas.



Extensões


Pense em usar atualizações de extensão automáticas (você pode ativá-lo em about:addons ). Há muitas razões pelas quais você deve desabilitá-lo (mas ainda precisa atualizá-las, apenas monitorando manualmente e cuidadosamente as alterações, incluindo políticas de privacidade):


  • Os desenvolvedores decidem regularmente começar a monetizar a extensão de maneiras que, no contexto deste artigo, você definitivamente não vai gostar.
  • Às vezes, os desenvolvedores vendem extensões e seu novo proprietário geralmente faz alterações, das quais você provavelmente não gosta.
  • Extensões ocasionalmente "sequestram" o desenvolvedor.
  • As versões mais recentes podem quebrar a compatibilidade com a sua configuração atual e / ou buggy.

Algumas extensões usam o CSP para implementar recursos individuais. Infelizmente, no momento, a arquitetura do Firefox é tal que apenas uma das extensões pode modificar o CSP ao carregar um site - e você não pode ter certeza de quais delas com antecedência. Como é muito crítico garantir a operação correta do uMatrix , é necessário verificar cuidadosamente as configurações de outras extensões para garantir que todos os recursos que usam o CSP estejam desativados :


  • uBlock Origin : desative o → → → [ ] (definitivamente não tenho certeza, mas é lógico supor que é melhor não habilitá-lo para sites individuais).
  • HTTPS em qualquer lugar : Desative o → [ ] (EASE) .
  • CanvasBlocker : Desativar → → [ ] Block data URL pages (para ver este item, é necessário ativar → [✓] ).

Se você decidir não se limitar à instalação de extensões e colocar o user.js descrito abaixo, considere as nuances adicionais:


  • A user.js configuração user.js recomendada requer o uso da extensão uMatrix .
  • Algumas configurações no user-overrides.js são necessárias para não interromper o trabalho de algumas extensões - ajuste-as de acordo com as extensões que você instalou.


Canvasblocker


  • Link
  • Protege: Impressões digitais.
  • Descrição: torna difícil obter impressões digitais através de diferentes APIs: Canvas, WebGL, Áudio, Histórico, Janela (desativada por padrão - pode quebrar sites), DOMRect.
  • Uso: Funciona automaticamente, não requer atenção. Mostra um ícone separado no final da barra de endereço nos sites que estão tentando usar APIs protegidas (por meio dele é possível desativar o bloqueio em um site específico).
  • Ícone: Pode ser oculto no menu avançado.
  • Configuração:
     [✓]   [✓] Block data URL pages` (  CSP  uMatrix) 


Proteção CSS Exfil


  • Link
  • Protege: Confidencialidade.
  • Descrição: bloqueia ataques como a exfiltração de dados CSS (roubo de dados da página através do uso de seletores CSS específicos).
  • Uso: Funciona automaticamente, não requer atenção.
  • Ícone: Pode ser oculto no menu avançado.
  • Configuração: Não é necessário.


Decentraleyes


  • Link
  • Protege: Rastreamento.
  • Descrição: Protege contra o rastreamento de CDN "gratuito". Ele contém arquivos populares que geralmente são solicitados via CDN e os fornece ao navegador sem executar uma solicitação de rede real para a CDN. Efeito colateral - acelera um pouco o carregamento dos sites.
  • Uso: Funciona automaticamente, não requer atenção.
  • Ícone: Pode ser oculto no menu avançado.
  • Configuração: Não é necessário.

Infelizmente, para mim, ele suspende a interface do Firefox enquanto alguns sites estão sendo carregados em segundo plano , então tive que desativá-la por enquanto.



ETag Stoppa


  • Link
  • Protege: Impressões digitais.
  • Descrição: remove o cabeçalho ETag: da resposta do servidor.
  • Uso: Funciona automaticamente, não requer atenção.
  • Ícone: Nenhum.
  • Configuração: Não é necessário.

Em vez de usar esta extensão, você pode adicionar uma regra ao Editor de Cabeçalho (faz sentido se também for usada para outras regras):


  • Tipo de regra: modificar cabeçalho da resposta
  • Tipo de correspondência: todos
  • Tipo de execução: Função personalizada
  • Função personalizada:
     for (const a in val) { if (val[a].name.toLowerCase() === 'etag') { val[a].value = ''; } } 


Editor de cabeçalho


  • Link
  • Protege: depende de como usá-lo.
  • Descrição: permite definir suas próprias regras para bloquear ou redirecionar solicitações, além de alterar os cabeçalhos de uma solicitação ou resposta.
  • Uso: Funciona automaticamente, não requer atenção.
  • Ícone: Pode ser oculto no menu avançado.
  • Cenário: Por si só, ele não faz nada - você deve determinar as regras para ele.

Um exemplo das regras é mencionado acima na descrição do ETag Stoppa . Mas se não houver outras regras, será mais fácil usar o ETag Stoppa em vez desta extensão.


Outro exemplo: descobri que a extensão ImTranslator, por algum motivo, envia dois cookies para todos os sites: BL_D_PROV=undefined; BL_T_PROV=undefined BL_D_PROV=undefined; BL_T_PROV=undefined . Talvez isso seja apenas um bug, mas eu não gosto de dizer a todos os sites que eu uso essa extensão. O problema é resolvido por esta regra:


  • Tipo de regra: modificar cabeçalho da solicitação
  • Tipo de correspondência: todos
  • Tipo de execução: Função personalizada
  • Função 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 em todo o lado


  • Link
  • Protege: Confidencialidade.
  • Descrição: alterna automaticamente para https sempre que possível.
  • Uso: Funciona automaticamente, quase não requer atenção (a última vez que quebrei um site devido a essa expansão há um ano e meio).
  • Ícone: usado para personalizar sites.
  • Configuração: Não é necessário.


URL puro


  • Link
  • Protege: Rastreamento.
  • Descrição: remove os parâmetros de lixo eletrônico dos URLs.
  • Uso: Funciona automaticamente, não requer atenção.
  • Ícone: Pode ser oculto no menu avançado.
  • Configuração: Não é necessário.


Origem do uBlock


  • Link
  • Protege: Segurança, Impressões digitais, Rastreamento.
  • Descrição: um bloqueador automático (com base em listas de terceiros) de qualquer lixo por tipo e / ou URL, bem como elementos de página individuais: desde publicidade e notificações sobre o uso de cookies pelo site até rastreadores e malvari.
  • Uso: Ocasionalmente, você precisa configurar um novo site.
  • Ícone: necessário para configurar o site atual, incluindo o bloqueio manual de elementos de página individuais.
  • Configuração: (listas de filtros - uma questão de preferência pessoal)
      [✓]     →  [✓]    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


  • Link
  • Protege: Segurança, Impressões digitais, Rastreamento.
  • Descrição: bloqueador manual de recursos individuais por tipo e domínio.
  • Uso: é necessário configurar regularmente um novo site.
  • Ícone: necessário para configurar o site atual.
  • Configuração:


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


Essa extensão fornece a proteção mais séria, mas tem um preço: muitos sites serão danificados e precisarão ser reparados manualmente. Por exemplo, a regra "* * script block" recém-adicionada desativou a execução do JS em todos os sites - o que, é claro, quebrou muitos deles. Mas não se apresse em remover esta regra: em primeiro lugar, não ajudará muito, porque o carregamento de muitos tipos de recursos, incluindo JS, de sites de terceiros ainda está desabilitado (o que também quebra muitos sites); e, em segundo lugar, a abordagem " lista branca: proibido tudo o que não era explicitamente permitido " na Web moderna é a única aceitável, pois você deseja reforçar a proteção do Firefox.


A boa notícia é que não é difícil reparar sites - geralmente apenas dois ou três cliques na matriz, que mostra o ícone da extensão e, em seguida, relendo a página atual. O principal é não esquecer de salvar as alterações na mesma matriz depois de corrigir o site.


E prepare-se mentalmente para que, na primeira vez em que você precise reparar quase todos os sites que você visite com freqüência, isso se deva ao fato de que em sites usados ​​ativamente, você quase certamente precisará incluir pelo menos o JS do próprio site e, possivelmente, alguns recursos sites de terceiros. Seja paciente nos primeiros dias, então será muito mais fácil, honestamente! :)


Deve-se notar que a interface do uMatrix é muito clara e conveniente - depois que você lida com ela. Em outras palavras, não pode ser chamado de intuitivo. Portanto, é altamente recomendável ler a documentação! No mínimo, a seção de uso básico do uMatrix (com fotos) do artigo acima do Guia de configuração do Firefox para fãs da privacidade e fãs de desempenho . Em geral, eu recomendo a leitura do wiki uMatrix - existem muitas coisas, mas as informações são muito necessárias e úteis.


Há outro conjunto adicional de regras que pode fazer sentido adicionar a - ajudará a impedir que sites da Internet acessem recursos na rede local (isso não é proteção contra um ataque de religação do DNS). Se você instalou o uMatrix há muito tempo, primeiro você precisa remover a regra "matrix-off: localhost true" (as novas versões do uMatrix não o instalam).


Adicione estas regras:
 * 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


Tudo era simples com extensões (sim, e mesmo com o uMatrix - embora complique o uso do navegador, também oferece a proteção principal), e agora chegamos à parte difícil.


O projeto ghacks user.js nos fornece o arquivo user.js básico, além de scripts para atualizá-lo e redefinir as configurações remotas. Este arquivo contém (no momento) uma alteração de 488 configurações em about:config ! E é considerado básico por algum motivo: usá-lo como está, sem fazer as alterações necessárias, quase certamente levará a um desastre (por exemplo, suas configurações padrão excluem regularmente todo o histórico do navegador, bloqueiam a russificação do Firefox, quebram muitos sites e extensões).


Este projeto faz um esforço muito sério para proteger impressões digitais e rastreamento ... tão sério que o uso do navegador se torna tão inconveniente que é mais honesto dizer "impossível". E, ao mesmo tempo, perde visivelmente a proteção do navegador Tor na máquina virtual. Isso não significa que o projeto seja inútil para os usuários - apenas para usá-lo, você precisa gastar muito tempo criando seu próprio user-overrides.js .


Por esse motivo, antes de usá-lo, você deve:


  • Leia atentamente o user.js (cerca de 2300 linhas).
  • Leia com atenção todas as páginas wiki do projeto .
  • Crie seu próprio arquivo user-overrides.js com todas as alterações relativas ao user.js necessárias pessoalmente.
  • Faça um backup do seu perfil do Firefox !!!
  • E somente então ative user.js

Leva tempo e muito. Vale a pena? Esta é uma pergunta difícil.


Para responder, fiz uma lista (incompleta) do que melhora , além de impressões digitais e rastreamento - procure e decida por si mesmo:


  • Segurança:
    • Desativa a autenticação HTTP de origem cruzada (phishing de conta).
    • Melhora a proteção ao usar senhas armazenadas .
    • Aumenta a segurança ao usar TLS e certificados .
    • Limita o suporte à fonte (alta probabilidade de vulnerabilidades).
    • Desativa plugins DRM .
    • Desativa o WebGL (alta probabilidade de vulnerabilidades).
    • Limita os recursos do WebGL , se ativado (alta probabilidade de vulnerabilidades).
    • Desativa todos os tipos de opções de trabalhadores (mineradores, Colapso / Espectro).
    • Desativa o asm.js (alta probabilidade de vulnerabilidades).
    • Desativa o WebAssembly .
    • Desativa a memória compartilhada (espectro).
    • Adiciona rel=noopener para links com target=_blank (segurança).
    • Aprimora a proteção ao interagir com aplicativos locais de terceiros .
    • Desativa o MathML (redução da superfície de ataque).
    • Força o Punycode para IDN (anti-spoofing).
    • Ativa o suporte experimental para o CSP 1.1 .
    • Inclui isolamento de primeira parte .
  • Vazamentos, manuseio:
    • Desativa a telemetria do Firefox e os recursos vinculados a ela (recomendações, etc.).
    • Desativa serviços de terceiros como o Pocket.
    • Ele bloqueia o envio de links que não foram clicados (ping, pré-busca etc.).
    • Desativa os recursos de rede através dos quais você pode ignorar o proxy / VPN e descobrir o IP (incluindo IPv6 e WebRTC).
    • Limita o vazamento do histórico das páginas anteriores na guia atual.
    • Desativa : visitado (vazamento de histórico).
    • Ele bloqueia um vazamento durante a digitação na linha de pesquisa de endereço / texto através das dicas do mecanismo de pesquisa .
    • Desativa o compartilhamento de tela .
    • Nega acesso à área de transferência .
    • Desativa a API do Intersection Observer (estabilidade, definição do bloqueador de anúncios).

Para simplificar a preparação de seu user-overrides.js autor dos artigos acima em 12bytes.org postou seu próprio user-overrides.js . Ele não me agradou categoricamente, porque preciso de proteção moderada , o que mantém a conveniência de usar o navegador, mesmo com o custo de enfraquecer a proteção contra impressões digitais e rastreamento.


Também publiquei meu user-overrides.js , talvez facilite o uso do ghacks user.js


Portanto, para começar a usar o ghacks user.js faça o seguinte:


  • OBRIGATÓRIO! Faça um backup do seu perfil atual do Firefox.
  • Faça o download dos seguintes arquivos do projeto ghacks user.js no diretório do seu perfil atual:
    • user.js
    • updater.sh (e torná-lo factível) ou updater.bat
    • prefsCleaner.sh (e torná-lo factível) ou prefsCleaner.bat
  • Crie um arquivo user-overrides.js no diretório do seu perfil atual.
    • Você pode simplesmente fazer o download do meu user-overrides.js , inserir o valor atual do dom.push.userAgentID e fazer as alterações necessárias.
  • Execute ./updater.sh ou updater.bat . Ele atualizará o user.js e anexará o conteúdo do user-overrides.js ele no final.
  • Saia do Firefox e execute ./prefsCleaner.sh ou prefsCleaner.bat . Ele removerá do arquivo prefs.js (contendo suas about:config atuais about:config ) todas as configurações mencionadas em user.js (incluindo as comentadas).
  • Inicie o Firefox. Pressione Ctrl-Shift-Del e exclua (o tempo todo):
    • Cookies
    • Cache.
    • Dados do site offline.
  • _user.js.parrot olhada em about:config , o parâmetro _user.js.parrot deve ser definido como "SUCCESS" - caso contrário, user.js erro de sintaxe em algum lugar do seu user.js

Lembre-se de que todas as configurações especificadas no user.js serão aplicadas sempre que o Firefox iniciar. Portanto, se você alterar algumas delas através de about:config e quiser salvar essas alterações quando reiniciar o Firefox, será necessário duplicá-las no user-overrides.js e depois executar ./updater.sh ou updater.bat .


Lembre-se de executar ./updater.sh ou updater.bat periodicamente para atualizar o user.js (pelo menos após o lançamento da nova versão do Firefox). O processo de atualização é descrito em mais detalhes no wiki do projeto .



Tenho pouco endurecimento moderado, quero tudo ao máximo!


Bem, neste caso, eis o que fazer a seguir:




O site não funciona - quem é o culpado, onde corrigi-lo?


Fiz uma lista de alterações que podem atrapalhar o site, para que você possa encontrar rapidamente o culpado. "()" , 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/pt445124/


All Articles