Introduciuse unha nova técnica para o sistema oculto e a identificación do navegador

Un grupo de investigadores da Universidade Tecnolóxica de Graz (Austria), antes coñecido por desenvolver métodos de ataque MDS, NetSpectre и Martelo de lanzamento, descuberto información sobre unha nova técnica de análise de terceiros que permite determinar a versión exacta do navegador, o sistema operativo utilizado, a arquitectura da CPU e o uso de complementos para combater a identificación oculta.

Para determinar estes parámetros, abonda con executar o código JavaScript elaborado polos investigadores no navegador. Na práctica, o método pode usarse non só como unha fonte adicional para a identificación indirecta do usuario, senón tamén para determinar os parámetros do entorno do sistema para o uso específico de exploits, tendo en conta o SO, a arquitectura e o navegador. O método tamén é eficaz cando se usan navegadores con mecanismos de bloqueo de identificación ocultos, como o navegador Tor. Código de prototipo de código fonte con implementación de métodos publicado baixo a licenza MIT.

A determinación realízase en función da asignación de patróns de estado de propiedade característicos dos diferentes navegadores en JavaScript e das características do tempo de execución das operacións, dependendo das características do JIT, CPU e mecanismos de asignación de memoria. A definición de propiedades realízase xerando unha lista de todos os obxectos dispoñibles en JavaScript. Como se viu, o número de obxectos correlaciona directamente co motor do navegador e a súa versión.

función getProperties(o) {
resultado = [];
mentres (o !== nulo) {
resultado = resultado.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
devolver o resultado;
}

Por exemplo, para Firefox, a compatibilidade con 2247 propiedades declárase na documentación, mentres que o número real de certas propiedades, tendo en conta as non documentadas, é 15709 (no navegador Tor - 15639), para Chrome 2698 decláranse, pero 13570 realmente se ofrecen (en Chrome para Android - 13119) . O número e os valores das propiedades varían de versión a versión do navegador e en diferentes sistemas operativos.

Os valores e a presenza de certas propiedades pódense usar para determinar o tipo de SO. Por exemplo, en Kubuntu a propiedade window.innerWidth establécese en 1000 e en Windows 10 establécese en 1001. En Windows, a propiedade window.navigator.activeVRDisplays está dispoñible, pero en Linux non. Ofrécense moitas chamadas específicas para Android, pero non hai window.SharedWorker. Para identificar o sistema operativo, proponse tamén utilizar a análise de parámetros WebGL, cuxo estado depende dos controladores. Ademais, chamar a WEBGL_debug_renderer_infoextension permíteche obter información sobre o motor de renderizado OpenGL, que é diferente para cada sistema operativo.

Para determinar a CPU, utilízase unha avaliación das diferenzas no tempo de execución de varios bloques de código típicos, cuxo procesamento depende da arquitectura do conxunto de instrucións, tendo en conta o comportamento do JIT (determínase cantos rexistros da CPU) estará implicado e en que casos o JIT xerará código eficiente con optimizacións e que impliquen instrucións estendidas, e cando non). Para determinar o tipo de sistema de asignación de memoria e sistema operativo, tamén se mide a diferenza no tempo de asignación de memoria para varias estruturas, que se pode usar para xulgar o tamaño dos bloques de memoria.

Os parámetros determinados durante a execución do script compáranse cos valores de referencia típicos de ambientes previamente probados. Durante a proba, a técnica desenvolvida permitiu determinar con precisión 40 ambientes de proba diferentes, determinando as versións dos navegadores empregados, o fabricante da CPU, o sistema operativo empregado e se se estaba a executar en hardware real ou nunha máquina virtual.

Por separado, nótase a posibilidade de definir complementos do navegador e mesmo opcións individuais de complementos, incluídos complementos deseñados para bloquear métodos de identificación ocultos ou actividade de navegación privada. No contexto do método proposto, tales engadidos convértense noutra fonte de datos para a identificación. As adicións determínanse mediante unha avaliación das distorsións dos parámetros do contorno orixinal introducidas polas adicións.

Entre outros métodos de identificación, cabe destacar a consideración de datos indirectos como resolución de pantalla, lista de tipos MIME admitidos, opcións específicas de cabeceira (HTTP / 2 и HTTPS), análise do establecido complementos e fontes, dispoñibilidade de certas API web específicas para tarxetas de vídeo Características renderizado con WebGL e Lona, manipulación con CSS, análise das características de traballar con rato и un teclado.

Fonte: opennet.ru

Engadir un comentario