31 mar 2021

Dos nuevas vulnerabilidades permiten explotar Spectre en Linux

Dos nuevas vulnerabilidades recientemente descubiertas podrían permitir eludir las mitigaciones que permitían evitar los ataques Spectre en Linux. Los errores podrían permitir que un usuario malintencionado acceda datos que pertenecen a otros usuarios.

Las vulnerabilidades afectan a todos los kernel de Linux inferiores a 5.11.8 y fueron descubiertas por Piotr Krysiuk, un investigador del equipo Threat Hunter de Symantec, quien las informó al equipo de seguridad del kernel de Linux. Si no se actualiza, significaría que las protecciones de Spectre existentes no serían suficientes para evitar algunas de las técnicas de explotación existentes.

Las vulnerabilidades en cuestión son:

  • CVE-2020-27170: puede revelar contenido de toda la memoria de una computadora afectada
  • CVE-2020-27171: puede revelar contenido de un rango de memoria del kernel de 4 GB

Estos errores serían particularmente impactantes en los recursos compartidos, ya que permitirían a un usuario malintencionado acceder a datos que pertenecen a otros usuarios.

Los parches para estos errores se publicaron por primera vez el 17 de marzo de 2021 y se incluyen con los kernels de Linux lanzados el 20 de marzo.

¿Qué son Meltdown y Spectre?

Meltdown y Spectre fueron dos vulnerabilidades de chip descubiertas en enero de 2018 que afectaron a casi todos los procesadores modernos y solo pudieron mitigarse mediante parches del sistema operativo. Una explotación exitosa de las vulnerabilidades podría permitir a los atacantes obtener acceso no autorizado a la memoria de una computadora, incluida información confidencial, como contraseñas. Sin embargo, las vulnerabilidades solo eran explotables si el atacante ya tenía acceso a las máquinas, si era un usuario local o había obtenido acceso con un paso adicional, como implementar un troyano de acceso remoto (RAT) en la máquina.

Spectre aprovechó las fallas en los diseños de procesadores para revelar contenidos de la memoria que normalmente no deberían ser accesibles. Funciona al observar los efectos secundarios que deja la ejecución especulativa, como cuando un procesador predice incorrectamente los resultados de las verificaciones de límites. Las variantes de Spectre afectan prácticamente a todos los procesadores modernos, incluidos los chips de Intel, ARM y AMD.

Meltdown aprovechó diferentes fallas en los procesadores para evitar el aislamiento de la memoria en el sistema operativo. Los sistemas operativos están diseñados de manera que impiden que una aplicación acceda a la memoria utilizada por otra. Si el aislamiento de la memoria no funciona, una aplicación malintencionada podría robar información de la memoria que utilizan otras aplicaciones o usuarios.

Debido a que son vulnerabilidades de chip, los parches del sistema operativo eran esencialmente mitigaciones diseñadas para hacer imposible que un atacante explotara las vulnerabilidades, en lugar de abordar el problema subyacente.

Son las mitigaciones para Spectre las que se pueden omitir en Linux utilizando las vulnerabilidades descritas por Symantec.

¿Cómo funcionan estas nuevas vulnerabilidades?

Ambas vulnerabilidades están relacionadas con el soporte del kernel de Linux para los "filtros de paquetes de Berkeley extendidos" (BPF). BPF permite a los usuarios ejecutar programas proporcionados por el usuario directamente en el kernel de Linux. Al cargar estos programas, el kernel de Linux analiza el código del programa para asegurarse de que sean seguros. Sin embargo, parte de este análisis, destinado a mitigar Spectre, no fue suficiente para proteger contra algunas técnicas de explotación.

Piotr pudo demostrar dos métodos diferentes para evitar esta protección. Estos métodos son independientes ya que abusan de diferentes problemas, y cada uno permite a los usuarios locales sin privilegios extraer el contenido de la memoria del kernel. Esto puede incluir secretos (contraseñas, contenido del portapapeles, etc.) de otros usuarios en un sistema afectado.

El problema más grave es CVE-2020-27170, del que se puede abusar para revelar contenido desde cualquier ubicación dentro de la memoria del kernel, en otras palabras, toda la RAM de la máquina. Los programas BPF sin privilegios que se ejecutan en los sistemas afectados podrían evitar las mitigaciones de Spectre y ejecutar cargas especulativas fuera de los límites sin restricciones. Esto luego podría abusarse para revelar el contenido de la memoria a través de canales laterales. 

El segundo problema informado, CVE-2020-27171, puede revelar contenido de un rango de memoria del kernel de 4 GB alrededor de algunas de las estructuras que están protegidas. Este problema se debe a un error numérico en las mitigaciones de Spectre al proteger la aritmética de punteros contra especulaciones fuera de límites. 

¿Cómo se podrían aprovechar estas vulnerabilidades?

El escenario más probable en el que estas vulnerabilidades podrían explotarse es en una situación en la que varios usuarios tienen acceso a una sola computadora afectada, como podría ser el caso en situaciones laborales, etc. En este escenario, cualquiera de los usuarios sin privilegios podría abusar de uno de los vulnerabilidades para extraer contenido de la memoria del kernel para localizar secretos de otros usuarios.

Los errores también podrían potencialmente ser explotados si un actor malintencionado pudiera obtener acceso a una máquina explotable a través de un paso previo, como descargar malware en la máquina para lograr el acceso remoto, esto podría permitirles explotar estas vulnerabilidades para obtener acceso a todos los perfiles de usuario de la máquina.

Mitigación

Debian

Version 10.9 (released on March 27, 2021)

Ubuntu

Red Hat

Bugzilla

Todos los usuarios de distribuciones de Linux deben consultar con su proveedor para asegurarse de que se hayan aplicado parches para estas vulnerabilidades.

Fuente: Symantec

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!