El kernel de Linux se ve afectado por el nuevo ataque de caché cruzada SLUBStick

Linux

linux

Un nuevo ataque de caché cruzada del kernel de Linux llamado SLUBStick tiene un 99% de éxito al convertir una vulnerabilidad de montón limitada en una capacidad de leer y escribir memoria arbitraria, lo que permite a los investigadores escalar privilegios o escapar de contenedores.

El descubrimiento proviene de un equipo de investigadores de la Universidad Tecnológica de Graz que demostró el ataque a las versiones 5.9 y 6.2 (más recientes) del kernel de Linux utilizando nueve CVE existentes en sistemas de 32 y 64 bits, lo que indica una gran versatilidad.

Además, el ataque funcionó con todas las defensas modernas del kernel, como la Prevención de ejecución en modo supervisor (SMEP), la Prevención de acceso en modo supervisor (SMAP) y la aleatorización del diseño del espacio del kernel (KASLR) activa.

SLUBStick se presentará en detalle durante la próxima Simposio de seguridad de Usenix conferencia a finales de este mes. Los investigadores demostrarán la escalada de privilegios y la evasión de contenedores en la última versión de Linux con defensas de última generación habilitadas.

Mientras tanto, el artículo técnico publicado contiene detalles completos sobre el ataque y posibles escenarios de explotación.

Detalles del palo SLUB

Una forma en que el kernel de Linux administra la memoria de manera eficiente y segura es asignando y desasignando bloques de memoria, llamados «losas», para diferentes tipos de estructuras de datos.

Las fallas en este proceso de administración de memoria pueden permitir que los atacantes corrompan o manipulen estructuras de datos, lo que se conoce como ataques entre cachés. Sin embargo, estos ataques son efectivos aproximadamente el 40% de las veces y, por lo general, tarde o temprano provocan fallos del sistema.

SLUBStick explota una vulnerabilidad del montón, como una escritura de doble liberación, de usuario después de la liberación o fuera de límites, para manipular el proceso de asignación de memoria.

CVE utilizados con éxito en experimentos de investigadores
CVE utilizados con éxito en experimentos de investigadores
Fuente: stefangast.eu

Luego, utiliza un canal lateral de temporización para determinar el momento exacto de asignación/desasignación de bloques de memoria, lo que permite al atacante predecir y controlar la reutilización de la memoria.

El uso de esta información de sincronización aumenta el éxito de la explotación del conmutador cruzado al 99%, lo que hace que SLUBStick sea muy práctico.

Tasas de éxito medidas
Tasas de éxito medidas
Fuente: stefangast.eu

La conversión de la falla del montón en una primitiva de lectura y escritura de memoria arbitraria se logra en tres pasos:

  • Libere fragmentos de memoria específicos y espere a que el kernel los reutilice.
  • Reasigne estos bloques de manera controlada, asegurándose de que se reutilicen para estructuras de datos críticas, como tablas de páginas.
  • Una vez recuperada, el atacante sobrescribe las entradas de la tabla de páginas, obteniendo la capacidad de leer y escribir en cualquier ubicación de memoria.
Descripción general de SLUBStick
Descripción general de SLUBStick
Fuente: stefangast.eu

Impacto en el mundo real

Como ocurre con la mayoría de los ataques que involucran un canal lateral, SLUBStick requiere acceso local en la máquina de destino con capacidades de ejecución de código. Además, el ataque requiere la presencia de una vulnerabilidad de montón en el kernel de Linux, que luego se utilizará para obtener acceso de lectura y escritura a la memoria.

Si bien esto puede hacer que el ataque parezca poco práctico, tiene algunas ventajas para los atacantes.

Incluso para los atacantes con capacidades de ejecución de código, SLUBStick brinda la capacidad de lograr una escalada de privilegios, eludir las defensas del kernel, realizar escapes de contenedores o usarlo como parte de una cadena de ataque compleja.

La escalada de privilegios se puede utilizar para escalar privilegios a la raíz, lo que permite operaciones ilimitadas, mientras que el escape de contenedores se puede utilizar para escapar de entornos aislados y obtener acceso al sistema host.

Además, en la fase posterior a la explotación, SLUBStick podría modificar las estructuras del kernel o los enlaces para mantener la persistencia, lo que haría que el malware fuera más difícil de detectar para los defensores.

Orientación a datos /etc/passwd
Falsificación de datos “/etc/passwd”
Fuente: stefangast.eu

Aquellos que quieran aprender más sobre SLUBStick y experimentar con los exploits utilizados por los investigadores de la Universidad de Graz pueden encontrarlos en el repositorio GitHub del investigador.