Apresentada uma nova técnica de identificação oculta de sistema e navegador

Um grupo de pesquisadores da Universidade Técnica de Graz (Áustria), anteriormente conhecido por desenvolver métodos de ataque MDS, NetSpectre e Throwhammer, revelou informações sobre uma nova técnica de análise por canais laterais, que permite determinar a versão exata do navegador, o sistema operacional utilizado, a arquitetura da CPU e o uso de complementos para combater a identificação oculta.

Para determinar os parâmetros mencionados, basta a execução de um código JavaScript preparado pelos pesquisadores no navegador. Na prática, o método pode ser usado não apenas como uma fonte adicional para a identificação indireta do usuário, mas também para determinar parâmetros do ambiente do sistema para a aplicação de exploits, considerando o sistema operacional, a arquitetura e o navegador. O método é eficaz também na utilização de navegadores que implementam mecanismos de bloqueio de identificação oculta, como o Tor Browser. Os códigos fonte do protótipo que implementa o método foram publicados sob a licença MIT.

A determinação é baseada na extração de padrões característicos de diferentes navegadores em propriedades de estado em JavaScript e características do tempo de execução das operações, que dependem das particularidades do funcionamento do JIT, CPU e mecanismos de alocação de memória. A definição das propriedades é feita através da geração de uma lista de todos os objetos acessíveis a partir do JavaScript. Como se verificou, o número de objetos correlaciona diretamente com o motor do navegador e sua versão.

function getProperties(o) {
var result = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
return result;
}

Por exemplo, para o Firefox, a documentação afirma suporte a 2247 propriedades, enquanto o número real de propriedades determinadas, considerando as não documentadas, é de 15709 (no Tor Browser — 15639), para o Chrome, afirma-se que são 2698 propriedades, enquanto o número real é de 13570 (no Chrome para Android — 13119). O número e os valores das propriedades mudam de versão para versão do navegador e ao utilizar diferentes sistemas operacionais.

Os valores e a disponibilidade de determinadas propriedades podem ser utilizados para determinar o tipo de sistema operacional. Por exemplo, no Kubuntu, a propriedade window.innerWidth é definida como 1000, enquanto no Windows 10 é 1001. No Windows, está disponível a propriedade window.navigator.activeVRDisplays, enquanto no Linux não. O Android oferece diversas chamadas específicas, mas não possui window.SharedWorker. Para identificar o sistema operacional, também é sugerido analisar os parâmetros do WebGL, cujo estado depende dos drivers. Além disso, a chamada WEBGL_debug_renderer_infoextension permite obter informações sobre o mecanismo de renderização OpenGL, que varia conforme o sistema operacional.

Para determinar o CPU, utiliza-se uma avaliação das diferenças no tempo de execução de diferentes blocos de código, cuja execução depende da arquitetura do conjunto de instruções considerando o comportamento do JIT (determina-se quantos registradores do CPU serão utilizados e em quais casos o JIT gerará código eficiente com otimizações e envolvimento de instruções avançadas, e quando não). Para classificar o tipo de sistema de gerenciamento de memória e o sistema operacional, também se mede a diferença no tempo de alocação de memória para diferentes estruturas, a partir das quais se pode inferir sobre o tamanho dos blocos de memória.

Os parâmetros definidos durante a execução do script são comparados com valores de referência, característicos de ambientes testados previamente. Durante o teste, a técnica desenvolvida permitiu identificar com precisão 40 diferentes ambientes de teste, determinando as versões dos navegadores utilizados, o fabricante do CPU, o sistema operacional aplicado e se estava em execução em hardware real ou em uma máquina virtual.

Além disso, destaca-se a possibilidade de identificar extensões do navegador e até mesmo configurações específicas dessas extensões, incluindo aquelas projetadas para bloquear métodos de identificação oculta ou a atividade do modo de navegação privada. No contexto do método proposto, tais extensões tornam-se mais uma fonte de dados para identificação. As extensões são determinadas por meio da avaliação das distorções nos parâmetros do ambiente original, introduzidas pelas extensões.

Entre outros métodos de identificação, podem ser considerados dados indiretos, como resolução da tela, lista de tipos MIME suportados, parâmetros específicos nos cabeçalhos (HTTP/2 e HTTPS), análise de plugins e fontes instalados , disponibilidade de determinadas APIs da web, específicas para placas de vídeorenderizações usando WebGL e Características Canvas com CSS,, manipulações com CSS, análise das características de uso com teclado e O estudo de 100 mil sites mais populares de acordo com o ranking Alexa mostrou que em 9040 deles (10,18%) é aplicado código para identificação oculta de visitantes. Considerando os mil sites mais populares, esse tipo de código foi identificado em 30,60% dos casos (266 sites), enquanto entre os sites classificados entre mil e dez mil, foi encontrado em 24,45% dos casos (2010 sites). A identificação oculta é geralmente aplicada em scripts fornecidos por serviços externos para.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster