Linux Adictos Darkcrizt  

SLAM: un nuevo tipo de ataque que afecta a Intel, AMD y ARM

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Hace poco se dio a conocer la noticia de que un grupo de investigadores desarrollaron una nueva técnica de ataque de canal lateral llamado SLAM (Spectre Linear Address Masking), que explota las vulnerabilidades de microarquitectura de clase Spectre, en las que puede eludir las protecciones de hardware y exponer los hashes de contraseñas de la memoria del kernel.

SLAM es un tipo de ataque basado en ejecución transitoria que aprovecha las características de la memoria que permiten al software utilizar bits de datos no traducidos en direcciones lineales de 64 bits para almacenar metadatos del kernel. Con ello, un atacante puede manipular instrucciones en el código de software para desencadenar la ejecución de una manera que revele datos confidenciales, incluida información de varios programas e incluso del sistema operativo.

La amenaza aprovecha un nuevo canal encubierto basado en la traducción de direcciones no canónicas que facilita la explotación práctica de dispositivos Spectre genéricos para filtrar información valiosa.

Si bien LAM, es el término utilizado por Intel para este tipo de ataque, significa enmascaramiento de direcciones lineales. Arm lo denominó Top Byte Ignore (TBI) y AMD lo llama Upper Address Ignore (UAI), pero los tres implementan la misma función de manera diferente.

En cuanto a que CPU se ven afectadas, los investigadores menciona los siguientes:

  • CPU AMD existentes vulnerables a CVE-2020-12965.
  • Futuras CPU Intel que admitan LAM (paginación de 4 y 5 niveles).
  • Futuras CPU AMD que admitirán UAI y paginación de 5 niveles.
  • CPU Future Arm que admiten TBI y paginación de 5 niveles.

Por analogía con la explotación de las vulnerabilidades de Spectre, un ataque SLAM requiere la presencia de ciertas secuencias de instrucciones (gadgets) en el núcleo que conducen a la ejecución especulativa de instrucciones. Estas instrucciones dan como resultado una lectura especulativa de datos de la memoria dependiendo de las condiciones externas en las que el atacante puede influir.

Una vez que se determina una predicción incorrecta, el resultado de la ejecución especulativa se descarta, pero los datos procesados ​​permanecen en la memoria caché y luego se pueden recuperar mediante el análisis de canal lateral. Para extraer los datos que se han almacenado en el caché, los investigadores utilizan el método Evict+Reload, que se basa en crear condiciones para desplazar datos del caché (por ejemplo, crear una actividad que llene uniformemente el caché con contenido típico) y realizar operaciones cuyo tiempo de ejecución permite juzgar la presencia de datos en la memoria caché del procesador.

Para llevar a cabo un ataque SLAM, se utilizan dispositivos basados ​​en código en los que los datos controlados por el atacante se utilizan como puntero. Cabe señalar que estos patrones de código se utilizan a menudo en los programas, por ejemplo, se han identificado decenas de miles de estos dispositivos en el kernel de Linux, de los cuales al menos varios cientos son adecuados para su uso en exploits.

Las fugas se pueden prevenir agregando instrucciones adicionales a dichos dispositivos que bloqueen la ejecución especulativa. Intel tiene la intención de proporcionar un método antifugas de software antes de enviar procesadores habilitados para LAM. AMD recomendó utilizar métodos existentes para bloquear los ataques de Spectre v2. Para protegerse contra el ataque, los desarrolladores del kernel de Linux decidieron desactivar la compatibilidad con LAM de forma predeterminada hasta que Intel publicara recomendaciones para bloquear la vulnerabilidad

Finalmente cabe mencionar que los investigadores publicaron la implementación del método y ofrecieron una demostración de cómo se pueden extraer de la memoria del kernel los datos correspondientes a una determinada máscara. Actualmente, este exploit es independiente de la CPU, pero se ha demostrado que funciona solo en Linux, que ya ha creado un parche para deshabilitar LAM de forma predeterminada hasta que haya más instrucciones disponibles.

Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.