Introduziu uma nova técnica para sistema oculto e identificação do navegador

Um grupo de pesquisadores da Universidade Técnica de Graz (Áustria), anteriormente conhecido por desenvolver métodos de ataque MDS, NetSpectreName и Martelo de lançamento, descoberto Informações sobre uma nova técnica de análise de canais de terceiros que permite determinar a versão exata do navegador, o sistema operacional utilizado, a arquitetura da CPU e o uso de add-ons para combater a identificação oculta.

Para determinar esses parâmetros, basta executar no navegador o código JavaScript elaborado pelos pesquisadores. Na prática, o método pode ser utilizado não apenas como fonte adicional para identificação indireta do usuário, mas também para determinar os parâmetros do ambiente do sistema para o uso direcionado de exploits, levando em consideração o SO, a arquitetura e o navegador. O método também é eficaz ao usar navegadores que implementam mecanismos ocultos de bloqueio de identificação, como o Tor Browser. Protótipo de código-fonte com implementação de método publicado sob a licença do MIT.

A determinação é feita com base na identificação dos padrões de estado de propriedade em JavaScript característicos dos diferentes navegadores e nas características do tempo de execução das operações, dependendo das características dos mecanismos JIT, CPU e alocação de memória. A definição de propriedades é feita gerando uma lista de todos os objetos acessíveis em JavaScript. Acontece que o número de objetos está diretamente relacionado ao mecanismo do navegador e à sua versão.

function getPropriedades(o) {
var resultado = [];
enquanto (o! == nulo) {
resultado = resultado.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
resultado de retorno;
}

Por exemplo, para o Firefox, a documentação indica suporte para 2247 propriedades, enquanto o número real de propriedades definidas, incluindo as não documentadas, é 15709 (no navegador Tor - 15639), para o Chrome 2698 propriedades são declaradas, mas na realidade 13570 são oferecidas (em Chrome para Android - 13119) . O número e os valores das propriedades variam de acordo com a versão do navegador e entre os diferentes sistemas operacionais.

Os valores e a presença de certas propriedades podem ser usados ​​para determinar o tipo de sistema operacional. Por exemplo, no Kubuntu a propriedade window.innerWidth está definida como 1000 e no Windows 10 está definida como 1001. A propriedade window.navigator.activeVRDisplays está disponível no Windows, mas não está disponível no Linux. Para Android, muitas chamadas específicas são fornecidas, mas window.SharedWorker não. Para identificar o sistema operacional, propõe-se também a utilização da análise dos parâmetros WebGL, cujo estado depende dos drivers. Além disso, chamar WEBGL_debug_renderer_infoextension permite obter informações sobre o mecanismo de renderização OpenGL, que é diferente para cada sistema operacional.

Para determinar a CPU, é utilizada uma avaliação das diferenças no tempo de execução de vários blocos de código típicos, cujo processamento depende da arquitetura do conjunto de instruções, levando em consideração o comportamento JIT (é determinado quantos registros da CPU serão usados e em quais casos o JIT gerará código eficiente com otimizações e uso de instruções estendidas, e quando não). Para determinar o tipo de sistema de alocação de memória e sistema operacional, também é medida a diferença no tempo de alocação de memória para várias estruturas, que pode ser usada para avaliar o tamanho dos blocos de memória.

Os parâmetros determinados durante a execução do script são comparados com valores de referência típicos de ambientes previamente testados. Durante o teste, a técnica desenvolvida permitiu identificar com precisão 40 ambientes de teste diferentes, identificando as versões dos navegadores utilizados, o fabricante da CPU, o sistema operacional utilizado e o fato de estar rodando em hardware real ou em máquina virtual.

Separadamente, observa-se que é possível definir complementos do navegador e até configurações individuais de complementos, incluindo complementos projetados para bloquear métodos de identificação ocultos ou atividade no modo de navegação privada. No contexto do método proposto, tais acréscimos tornam-se mais uma fonte de dados para identificação. As adições são determinadas avaliando as distorções dos parâmetros do ambiente original introduzidas pelas adições.

Outros métodos de identificação incluem levar em conta dados indiretos como resolução de tela, lista de tipos MIME suportados, parâmetros específicos em cabeçalhos (HTTP / 2 и HTTPS), análise de instalado plug-ins e fontes, disponibilidade de determinadas APIs da Web, específicas para placas de vídeo características renderização usando WebGL e Quadros, manipulação com CSS, análise de recursos de trabalho com mouse и um teclado.

Fonte: opennet.ru

Adicionar um comentário