Se propuso un método de ataque para la identificación remota de fragmentos de memoria en el servidor

Un grupo de investigadores de la Universidad Técnica de Graz (Austria), conocidos anteriormente por desarrollar ataques como MDS, NetSpectre, Throwhammer y ZombieLoad, ha publicado un nuevo método de ataque (CVE-2021-3714) a través de canales auxiliares sobre el mecanismo de deduplicación de páginas de memoria (Memory-Deduplication), que permite determinar la presencia de ciertos datos en la memoria, organizar una fuga byte a byte del contenido de la memoria o identificar la disposición de la memoria para eludir la protección basada en la aleatorización de direcciones (ASLR). A diferencia de las variantes de ataques previamente demostradas en el mecanismo de deduplicación, el nuevo método se distingue por llevar a cabo el ataque desde un host externo utilizando como criterio el cambio en el tiempo de respuesta a las solicitudes enviadas por el atacante a través de los protocolos HTTP/1 y HTTP/2. Se ha demostrado la posibilidad de realizar el ataque en servidores basados en Linux y Windows.

Los ataques al mecanismo de deduplicación de memoria utilizan como canal para la filtración de información la diferencia en el tiempo de procesamiento de la operación de escritura en situaciones donde la modificación de datos lleva a la clonación de la página de memoria deduplicada mediante el mecanismo Copy-On-Write (COW). Durante la operación, el núcleo del sistema identifica las páginas de memoria idénticas de diferentes procesos y las combina, mostrando las páginas de memoria idénticas en una sola región de memoria física para almacenar solo una copia. Al intentar modificar uno de los procesos los datos relacionados con las páginas deduplicadas, se genera una excepción (page fault) y a través del mecanismo Copy-On-Write se crea automáticamente una copia separada de la página de memoria, que se asigna al proceso. El tiempo adicional requerido para la copia puede ser un indicio de la modificación de datos que interfieren con otro proceso.

Los investigadores han demostrado que las demoras que surgen como resultado del funcionamiento del mecanismo COW pueden ser captadas no solo de forma local, sino también analizando el cambio en el tiempo de entrega de las respuestas por la red. Se han propuesto varios métodos para determinar el contenido de la memoria desde un host remoto mediante el análisis del tiempo de ejecución de las solicitudes a través de los protocolos HTTP/1 y HTTP/2. Para conservar los patrones seleccionados, se utilizan aplicaciones web estándar que almacenan en memoria la información ingresada en las solicitudes.

El principio general del ataque se reduce a llenar en servidor páginas de memoria con datos que potencialmente replican el contenido ya existente en la página de memoria del servidor. Luego, el atacante espera el tiempo necesario para que el núcleo realice la deduplicación y fusión de páginas de memoria, tras lo cual realiza cambios en el duplicado de datos controlado y evalúa el tiempo de respuesta para determinar el éxito de la infiltración.

Se propuso un método de ataque para la identificación remota de fragmentos de memoria en el servidor

En los experimentos realizados, la velocidad máxima de filtración de información fue de 34.41 bytes por hora en un ataque a través de la red global y de 302.16 bytes por hora en un ataque a través de la red local, lo que es más rápido que otros métodos de extracción de datos por canales externos (por ejemplo, en el ataque NetSpectre, la velocidad de transmisión de datos es de 7.5 bytes por hora).

Se propusieron tres variantes funcionales de ataque. La primera variante permite determinar los datos en la memoria un servidor web, utilizando Memcached. El ataque consiste en cargar conjuntos específicos de datos en el almacenamiento de Memcached, limpiar el bloque deduplicado, volver a escribir el mismo elemento y crear las condiciones para que ocurra la copia COW a través de cambios en el contenido del bloque. En el experimento con Memcached, se logró determinar la versión de libc instalada en el sistema que se ejecuta en una máquina virtual en 166.51 segundos.

La segunda variante permitió conocer el contenido de los registros en la base de datos MariaDB, utilizando el almacenamiento InnoDB, mediante la reconstrucción del contenido byte a byte. El ataque se lleva a cabo enviando consultas especialmente modificadas, que conducen a discrepancias de un byte en las páginas de memoria y analizando el tiempo de respuesta para determinar si la conjetura sobre el contenido del byte era correcta. La velocidad de tal filtración es baja y es de 1.5 bytes por hora en un ataque desde la red local. La ventaja del método es que puede aplicarse para recuperar contenido desconocido de la memoria.

La tercera variante permitió, en 4 minutos, eludir completamente el mecanismo de protección KASLR y obtener información sobre el desplazamiento en la memoria de la imagen del núcleo de la máquina virtual, en situaciones donde la dirección de desplazamiento se encuentra en una página de memoria, cuyos otros datos no cambian. El ataque se llevó a cabo desde un host que se encontraba a 14 saltos (hops) de la sistema atacado. Se promete publicar ejemplos de código para realizar los ataques presentados en GitHub.

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