Recientemente se ha divulgado una nueva vulnerabilidad de tipo canal lateral que afecta a los procesadores de Intel, Zombieload v2 (CVE-2019-11135), que es agnóstica con respecto al sistema operativo al estar radicado en el silicio del procesador.
La gravedad de las vulnerabilidades de canal lateral, que se apoyan en la ejecución especulativa, ha forzado a realizar esfuerzos combinados y desde muchos frentes, abarcando no solo el microcódigo de los procesadores, sino también sistemas operativos, drivers y aplicaciones. Obviamente, las distribuciones GNU/Linux no se libran de tener que aplicar las correspondientes mitigaciones, ya que la mayoría de estas vulnerabilidades no pueden ser corregidas totalmente debido a que una solución definitiva requiere de un rediseño del silicio de los procesadores, cosa que no se puede aplicar mediante software ni firmware.
Siguiendo la estela de la publicación de la actualización del microcódigo para los procesadores Intel, tanto Red Hat como Canonical han anunciado sus correspondientes planes para solventar Zombieload v2, aunque afortunadamente de cara a los usuarios finales no será necesaria la realización de ninguna acción especial, siendo las típicas actualizar y reiniciar suficientes.
Red Hat
En Red Hat han publicado una extensa documentación de Zombieload v2, diciendo que los siguientes productos se han visto afectados:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 8
- Red Hat Atomic Host
- Red Hat OpenShift Online
- Red Hat Virtualization (RHV)
- Red Hat OpenStack Platform
- Red Hat OpenShift Container Platform
La compañía ha explicado la vulnerabilidad y los contextos en los que puede ser explotada. Básicamente, Zombieload v2 se dedica a explotar la operación de Aborto Asíncrono de las Extensiones de Sincronización Transaccional (TSX) de Intel, cosa que se puede realizar cuando un atacante utiliza un código malicioso específicamente diseñado para crear un conflicto entre las operaciones de lectura dentro del procesador, con el cual se puede leer los datos que están siendo procesados por la CPU. Para determinar más fácilmente si una instalación del sistema es vulnerable o no, Red Hat ha publicado un script de detección. Desde MuyLinux adelantamos que no es necesario realizar esta comprobación en procesadores AMD debido no soportan TSX, por lo que no son vulnerables.
Red Hat ha introducido en el kernel un parámetro para inhabilitar la operación de Aborto Asíncrono de las TSX (TAA), el cual soporta como valores off (inhabilitar la mitigación), full (habilitar la mitigación y limpiar los búferes de la CPU) y full,nosmt (habilitar mitigación e inhabilitar SMT).
Zombieload v2 es un ataque similar a los de tipo Microarchitectural Data Sampling (MDS), esto quiere decir que no se apoya en la caché del procesador como lo hicieron las primeras vulnerabilidades de tipo Meltdown y Spectre descubiertas, sino en los búferes, siendo esa la razón de por qué la mitigación se encarga de limpiar los búferes del procesador.
Por su parte, Intel ha recomendado la inhabilitación de TSX para evitar que pueda ser aprovechado por actores maliciosos que exploten Zombieload v2.
Canonical
Por su parte, Canonical ha explicado la situación a través de su blog oficial. La compañía tras Ubuntu ha decidido suministrar una solución para Zombieload v2 que consiste en la actualización del microcódigo de Intel y el kernel Linux, haciendo que TSX quede inhabilitado por defecto. Sin embargo, los que lo deseen pueden volver a habilitar TSX añadiendo la opción “tsx=on” en la línea de comandos del kernel, haciendo que este componente utilice de forma automática los mecanismos de limpieza de los búferes de microarquitectura utilizados para MSD con el fin de mitigar TAA.
Pero además de Zombieload v2, Canonical también ha suministrado diversos parches para fallos encontrados en productos de Intel, como por ejemplo el Error de Comprobación del Procesador de la Máquina (CVE-2018-12207), que es una vulnerabilidad con la que una máquina virtual puede provocar una denegación de servicio a modo de cuelgue del sistema cuando se emplean grandes páginas en la memoria. También han sido corregidos dos vulnerabilidades encontradas en el driver gráfico Intel i915, siendo la primera (CVE-2019-0155) una escalada de privilegios que permite a un usuario sin privilegios exponer datos sensibles del kernel y la segunda (CVE-2019-0154) una que permite a un usuario sin privilegios provocar un cuelgue del sistema mediante la lectura de regiones concretas de la memoria en algunos estados de baja potencia.
Los usuarios de Ubuntu pueden ver que los microcódigos de los procesadores ya no aparecen en la sección de controladores adicionales. Esto es debido a que este sistema operativo utiliza los microcódigos por defecto desde que los primeros problemas en torno a Meltdown y Spectre vieron la luz, por lo que ya son preinstalados en lugar de ser suministrados como algo externo.
Conclusiones para aclarar lo que hay que hacer ante Zombieload v2 y las demás vulnerabilidades
La situación en torno a las vulnerabilidades de tipo canal lateral se están convirtiendo en un problema cada vez más complejo, así que dedicaremos este último apartado para aclarar lo que tienen que hacer los usuarios:
- Actualizar el sistema operativo cuanto antes. Lo más seguro es que por defecto se habiliten las mitigaciones contra Zombieload v2 y las otras vulnerabilidades. En caso de no tener instalado el microcódigo de Intel, recomendamos su instalación inmediata (en un principio no requiere de acciones específicas adicionales).
- En caso de no tenerlo claro, buscar en la documentación de la distribución o preguntar en los canales oficiales cómo inhabilitar TSX.
- Los usuarios de procesadores AMD no tienen nada que temer, ya que dichos productos no soportan TSX.
- Los encargados de otras distribuciones GNU/Linux como SUSE también están trabajando en la implementación de mitigaciones contra Zombieload v2.