Introdujo una nueva técnica para el sistema oculto y la identificación del navegador.

Un grupo de investigadores de la Universidad Técnica de Graz (Austria), conocidos anteriormente por desarrollar métodos de ataque MDS, Espectro de red и Martillo arrojadizo, descubierto Información sobre una nueva técnica de análisis de canales de terceros que permite determinar la versión exacta del navegador, el sistema operativo utilizado, la arquitectura de la CPU y el uso de complementos para combatir la identificación oculta.

Para determinar estos parámetros, basta con ejecutar en el navegador el código JavaScript preparado por los investigadores. En la práctica, el método se puede utilizar no sólo como una fuente adicional para la identificación indirecta del usuario, sino también para determinar los parámetros del entorno del sistema para el uso específico de exploits, teniendo en cuenta el sistema operativo, la arquitectura y el navegador. El método también es eficaz cuando se utilizan navegadores que implementan mecanismos de bloqueo de identificación ocultos, como Tor Browser. Prototipo de código fuente con implementación de método. publicado bajo la licencia del MIT.

La determinación se realiza sobre la base de identificar los patrones de estado de propiedad en JavaScript que son característicos de diferentes navegadores y las características del tiempo de ejecución de las operaciones, dependiendo de las características de los mecanismos de asignación de memoria, CPU y JIT. La definición de propiedades se realiza generando una lista de todos los objetos accesibles desde JavaScript. Al final resultó que, la cantidad de objetos se correlaciona directamente con el motor del navegador y su versión.

función obtenerPropiedades(o) {
var resultado = [];
mientras (o! == nulo) {
resultado = resultado.concat(Reflect.ownKeys(o));
o = Objeto.getPrototypeOf(o);
}
devolver resultado;
}

Por ejemplo, para Firefox la documentación indica soporte para 2247 propiedades, mientras que el número real de propiedades definidas, incluidas las no documentadas, es 15709 (en el navegador Tor - 15639), para Chrome se declaran 2698 propiedades, pero en realidad se ofrecen 13570 (en Chrome para Android - 13119). La cantidad y los valores de las propiedades varían de una versión del navegador a otra y entre diferentes sistemas operativos.

Los valores y la presencia de determinadas propiedades se pueden utilizar para determinar el tipo de sistema operativo. Por ejemplo, en Kubuntu la propiedad window.innerWidth está establecida en 1000 y en Windows 10 está establecida en 1001. La propiedad window.navigator.activeVRDisplays está disponible en Windows, pero no en Linux. Para Android, se proporcionan muchas llamadas específicas, pero window.SharedWorker no. Para identificar el sistema operativo, también se propone utilizar el análisis de los parámetros WebGL, cuyo estado depende de los controladores. Además, llamar a WEBGL_debug_renderer_infoextension le permite obtener información sobre el motor de renderizado OpenGL, que es diferente para cada sistema operativo.

Para determinar la CPU, se utiliza una evaluación de las diferencias en el tiempo de ejecución de varios bloques de código típicos, cuyo procesamiento depende de la arquitectura del conjunto de instrucciones, teniendo en cuenta el comportamiento JIT (se determina cuántos registros de la CPU se utilizarán y en qué casos JIT generará código eficiente con optimizaciones y el uso de instrucciones extendidas, y cuándo no). Para determinar el tipo de sistema de asignación de memoria y sistema operativo, también se mide la diferencia en el tiempo de asignación de memoria para varias estructuras, lo que se puede utilizar para juzgar el tamaño de los bloques de memoria.

Los parámetros determinados durante la ejecución del script se comparan con valores de referencia típicos de entornos probados previamente. Durante la prueba, la técnica desarrollada permitió identificar con precisión 40 entornos de prueba diferentes, identificando las versiones de los navegadores utilizados, el fabricante de la CPU, el sistema operativo utilizado y si se ejecutaba en hardware real o en una máquina virtual.

Por otra parte, cabe señalar que es posible definir complementos del navegador e incluso configuraciones de complementos individuales, incluidos complementos diseñados para bloquear métodos de identificación ocultos o la actividad del modo de navegación privada. En el contexto del método propuesto, dichas adiciones se convierten en otra fuente de datos para la identificación. Las adiciones se determinan evaluando las distorsiones de los parámetros del entorno original introducidas por las adiciones.

Otros métodos de identificación incluyen tener en cuenta datos indirectos como resolución de pantalla, lista de tipos MIME admitidos, parámetros específicos en encabezados (HTTP / 2 и HTTPS), análisis de instalaciones complementos y fuentes, disponibilidad de ciertas API web, específicas para tarjetas de video Características renderizado usando WebGL y Canvas, manipulación con CSS, análisis de las características de trabajar con ratón и teclado.

Fuente: opennet.ru

Añadir un comentario