Se presenta una nueva técnica de identificación oculta del sistema y del navegador

Un grupo de investigadores de la Universidad Técnica de Graz (Austria), anteriormente conocido por desarrollar métodos de ataque MDS, NetSpectre y Throwhammer, reveló información sobre una nueva técnica de análisis a través de canales secundarios, que permite determinar la versión exacta del navegador, el sistema operativo utilizado, la arquitectura de la CPU y el uso de complementos para ocultar la identificación.

Para determinar los parámetros mencionados, es suficiente ejecutar en el navegador un código JavaScript preparado por los investigadores. En la práctica, el método puede aplicarse no solo 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 es eficaz incluso al utilizar navegadores con implementación de mecanismos de bloqueo de identificación oculta, como Tor Browser. Los códigos fuente del prototipo que implementa el método se publicaron bajo licencia MIT.

La determinación se realiza sobre la base de la identificación de patrones específicos para diferentes navegadores en las propiedades de estado en JavaScript y las características del tiempo de ejecución de operaciones, que dependen de las peculiaridades del trabajo de JIT, CPU y mecanismos de asignación de memoria. La identificación de propiedades se realiza mediante la generación de una lista de todos los objetos disponibles desde JavaScript. Resulta que el número de objetos se correlaciona directamente con el motor del navegador y su versión.

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

Por ejemplo, para Firefox en la documentación se declara un soporte de 2247 propiedades, mientras que el número real de propiedades identificadas, incluyendo las no documentadas, es de 15709 (en Tor Browser — 15639); para Chrome se declaran 2698 propiedades, y en realidad se ofrecen 13570 (en Chrome para Android — 13119). El número y los valores de las propiedades varían de versión a versión del navegador y al aplicar diferentes sistemas operativos.

Los valores y la disponibilidad de ciertas propiedades se pueden utilizar para determinar el tipo de sistema operativo. Por ejemplo, en Kubuntu, la propiedad window.innerWidth se establece en 1000, mientras que en Windows 10 se establece en 1001. En Windows, existe la propiedad window.navigator.activeVRDisplays, pero no está disponible en Linux. Para Android, se ofrecen múltiples llamadas específicas, pero no hay window.SharedWorker. También se sugiere emplear el análisis de los parámetros de WebGL, cuyo estado depende de los controladores. Además, la llamada a WEBGL_debug_renderer_infoextension permite obtener información sobre el motor de renderizado OpenGL, que varía según el sistema operativo.

Para determinar la CPU, se evalúan las diferencias en el tiempo de ejecución de varios bloques de código estándar, cuya ejecución depende de la arquitectura del conjunto de instrucciones, considerando 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 identificar el tipo de sistema de memoria y el sistema operativo, también se mide la diferencia en el tiempo de asignación de memoria para diferentes estructuras, lo que permite inferir el tamaño de los bloques de memoria.

Los parámetros determinados durante la ejecución del script se comparan con valores de referencia propios de entornos previamente probados. A través de la verificación, la técnica desarrollada permitió identificar con precisión 40 diferentes entornos de prueba, determinando las versiones de los navegadores utilizados, el fabricante de la CPU, el sistema operativo aplicado y la veracidad del hardware real o virtual en el cual se ejecuta.

Se destaca por separado la capacidad de identificar complementos del navegador e incluso configuraciones específicas de estos, incluidos los complementos destinados a bloquear métodos de identificación oculta o la actividad en modo de navegación privada. En el contexto del método propuesto, dichos complementos se convierten en otra fuente de datos para la identificación. Los complementos se determinan a través de la evaluación de las distorsiones en los parámetros del entorno original provocadas por los complementos.

Entre otros métodos de identificación, se pueden considerar datos indirectos como la resolución de pantalla, la lista de tipos MIME compatibles, parámetros específicos en los encabezados (HTTP/2 y HTTPS), el análisis de los complementos y fuentes, la disponibilidad de ciertas API web específicas de las tarjetas gráficas características renderizado mediante WebGL y Canvas, manipulación CSS, el análisis de las características de uso con el ratón y el teclado.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster