PowerScan
PT

Como funcionam os navegadores antidetect: a explicação técnica completa

Navegadores antidetecção · 11 min de leitura · por PowerOps

Foto: Unsplash

Superfícies de fingerprint, geração de identidade coerente, isolamento de armazenamento em disco, roteamento por perfil e os limites honestos de toda a abordagem.

Um navegador antidetect faz quatro trabalhos. Armazena separadamente os dados de navegação de cada perfil, controla a identidade de dispositivo que cada perfil informa, encaminha o tráfego de cada perfil de forma independente e mantém os três consistentes ao longo do tempo. Este artigo percorre como cada trabalho é feito, no nível do mecanismo, e termina com o que a abordagem não consegue fazer.

As superfícies de fingerprint

Comece pelo que uma página consegue ler, porque todo o resto é uma resposta a isso. Um script em qualquer site pode fazer perguntas ao navegador, e as respostas descrevem a máquina. As superfícies se agrupam naturalmente.

SuperfícieO que a página lê
NavigatorNome e versão do navegador, plataforma, lista de idiomas, número de processadores e memória informados, suporte a toque
TelaLargura, altura, área de trabalho disponível, profundidade de cor, proporção de pixels do dispositivo
CanvasOs pixels exatos produzidos ao desenhar texto e formas fora da tela, reduzidos a um valor estável por hash
WebGLAs strings de fabricante e renderizador gráfico, mais hashes de cenas renderizadas
ÁudioA saída de um oscilador passada pelo grafo de processamento de áudio, que varia conforme a pilha
FontesQuais tipos de letra estão instalados, inferidos a partir de medições de texto
Fuso horário e relógioO fuso e o deslocamento informados, comparados com a origem do tráfego
RedeO próprio endereço, a visão do WebRTC sobre os candidatos de conexão e o formato do handshake TLS

Nenhuma linha isolada identifica uma máquina. A combinação identifica, e é também na combinação que as mentiras são pegas: valores que não poderiam pertencer a uma única máquina real são um sinal mais forte do que qualquer valor sozinho.

A coleta é barata e silenciosa. Todo valor da tabela está disponível a qualquer página por APIs documentadas, sem pedido de permissão, e a maior parte chega no primeiro segundo da visita. Qualquer que seja a sua posição sobre a prática, é um fato permanente da web moderna e a linha de base contra a qual um navegador antidetect é projetado.

Como uma identidade coerente é gerada

A abordagem ingênua é interceptar cada pergunta e randomizar a resposta. Ela falha por uma razão estrutural. As respostas descrevem uma só máquina, então são correlacionadas, e respostas aleatórias independentes quebram as correlações. Um user agent do Windows ao lado de fontes que só vêm com o macOS, um tamanho de tela que nenhum notebook jamais teve, uma string gráfica que nunca coexistiu com a plataforma declarada: cada uma é uma contradição que um verificador testa a baixo custo.

Por isso um navegador antidetect que funciona gera a identidade como um conjunto. Parte de uma classe de máquina real e comum e deriva cada valor dessa escolha. A plataforma define a lista plausível de fontes, as strings gráficas e o suporte a toque. A tela vem de tamanhos que essa classe de máquina realmente tem. O idioma e o fuso horário vêm da região pretendida do perfil. Os valores concordam entre si porque foram escolhidos juntos, a partir de uma única descrição de uma única máquina.

A segunda propriedade importa tanto quanto: o conjunto é armazenado. Ele é gravado no perfil quando este é criado, e toda sessão informa os mesmos valores, porque um dispositivo que muda entre visitas descreve um hardware que ninguém possui. Estabilidade é a maior parte do que plausível quer dizer.

Isolamento de armazenamento em disco

O trabalho de armazenamento é o menos glamoroso e o mais absoluto. Cada perfil possui um diretório, e tudo o que um navegador persiste vive dentro dele: o banco de cookies, o Local Storage, o IndexedDB, o cache HTTP, os registros de service workers, o estado das extensões, o histórico e as credenciais salvas. Dois perfis são dois diretórios disjuntos, e cada navegador em execução aponta para o seu.

A disjunção total é a propriedade a verificar, porque o isolamento parcial falha em silêncio. Cookies são fáceis de separar. O cache pode identificar um navegador que retorna pelos recursos que guardou. Service workers podem conter identificadores e continuar rodando entre visitas. O IndexedDB é onde os aplicativos modernos guardam os registros em que realmente confiam. Um isolamento que cobre os armazenamentos famosos e compartilha qualquer outro isolou a parte visível do problema.

A persistência é a outra metade. As sessões acumulam valor: verificações de segurança concluídas, histórico de login estabelecido, o perfil de um visitante recorrente. Um perfil mantém seu diretório entre as sessões, o que torna possível o trabalho com contas. A gravação ao fechar é o que torna o diretório durável, e é por isso que encerrar à força o processo de um perfil no meio da sessão pode custar a sessão que ele acabou de estabelecer.

Roteamento de rede

Cada perfil carrega sua própria rota, aplicada quando seu navegador inicia, de modo que o tráfego sai pelo proxy desse perfil sem tocar nas configurações do sistema nem na rota de qualquer outro perfil.

A rota é também o componente que mais vale verificar de forma independente, porque é comprada de terceiros. Testar um endpoint antes de atribuí-lo e ler de volta o endereço observado, não o anunciado, detecta uma falha enquanto ela ainda é um problema de configuração e não um problema de conta.

O que o próprio navegador altera

Há dois lugares em que uma ferramenta pode alterar as respostas que uma página recebe, e a diferença entre eles é a bifurcação mais técnica deste assunto.

AbordagemComo funcionaO ponto fraco
Injeção de scriptUma extensão ou script injetado sobrescreve as funções que a página chama, de modo que leituras de canvas e consultas ao navigator devolvem valores substituídosAs sobrescritas são elas mesmas visíveis. Funções alteradas podem ser reconhecidas como alteradas, e qualquer superfície esquecida pelo injetor continua respondendo com o valor real
Dentro do código do próprio navegadorA implementação do navegador responde com os valores armazenados do perfil, nos caminhos de código em que os valores reais são produzidosMuito mais trabalho para construir e manter, e é isso que distingue as ferramentas feitas para o fim das extensões

A injeção é onde essa categoria começou, e seu teto é bem conhecido: uma página pode verificar se as funções nativas ainda parecem nativas e pode alcançar a mesma superfície por um caminho que a injeção não cobriu. Por isso os navegadores antidetect feitos para o fim fazem as alterações dentro do próprio navegador, de modo que a identidade armazenada é o que a implementação informa por todo caminho que a lê.

O que abrir um perfil realmente faz

  1. A identidade armazenada é carregada: um conjunto coerente de valores de dispositivo, o mesmo conjunto da vez anterior.
  2. O navegador inicia sobre o diretório do próprio perfil, de modo que todo armazenamento persistente é do próprio perfil.
  3. A rota é aplicada: o proxy, a resolução de nomes passando por ele, o WebRTC restrito a ele.
  4. A sessão roda, acumulando estado dentro do diretório.
  5. Ao fechar, o estado é gravado, de modo que a próxima abertura retoma o mesmo dispositivo, o mesmo armazenamento e a mesma rota.

Cada parte dessa lista é verificável por fora. Abra uma página de teste de fingerprint duas vezes e compare os valores entre as aberturas. Olhe o diretório do perfil no disco. Leia de volta o endereço observado. Uma ferramenta dessa categoria deve convidar a essa verificação, porque o mecanismo é o produto.

Os limites honestos

A abordagem tem bordas, e conhecê-las faz parte de usá-la com competência.

Leia os limites como uma definição, não como uma decepção. Um navegador antidetect é um instrumento de consistência: armazenamento separado, uma identidade estável e plausível, uma rota correspondente, mantidos juntos por perfil e repetidos de forma idêntica a cada abertura. Esse é todo o mecanismo, e tudo o mais que se escreve sobre a categoria é uma variação dele.

Todos os artigos · Executar a verificação