Vulnerabilidad Downfall (Gather Data Sampling) en CPUs Intel (CVE-2022-40982)
Parte de la información contenida en esta entrada de blog procede de un aviso de Red Hatel documento técnico Gather Data Sampling de Intel, y Aviso de seguridad de Intel INTEL-SA-00828.
Una vulnerabilidad llamada Gather Data Sampling (GDS), también conocida como "Downfall", puede causar la exposición de datos obsoletos, y puede afectar a los clientes que utilizan ciertas CPUs Intel - específicamente aquellas que utilizan Intel Advanced Vector Extensions 2 (Intel AVX2) e Intel Advanced Vector Extensions 512 (Intel AVX-512). Por favor, lea esta entrada del blog para aprender acerca de este fallo de seguridad y cómo solucionarlo, y asegúrese de comprobar de nuevo para cualquier actualización.
Situación actual del muestreo de datos recopilados (GDS)
Esta vulnerabilidad de canal lateral de ejecución transitoria en determinadas CPU de Intel puede permitir a un atacante utilizar un ataque de muestreo de datos para recuperar datos obsoletos de registros vectoriales AVX2 o AVX-512 utilizados anteriormente. En el peor de los casos, el ataque puede utilizarse para extraer claves criptográficas.
Según Red Hat, la vulnerabilidad Downfall puede mitigarse instalando microcódigo de CPU actualizado. Esta actualización del microcódigo estará disponible en una nueva versión del paquete microcode_ctl.
Intel también ha publicado un documento técnico sobre muestreo de datos de recopilación y Aviso de seguridad de Intel INTEL-SA-00828.
¿Cuáles son los riesgos?
Registrada como CVE-2022-40982, la vulnerabilidad GDS, o Downfall, puede permitir la exposición de datos obsoletos procedentes del uso anterior de registros vectoriales debido a la optimización del hardware de la CPU. La amenaza se limita al mismo núcleo físico del procesador y afecta a los datos procesados por instrucciones que utilizan instrucciones AVX o registros vectoriales internos de forma implícita.
La exposición se limita a una base de muestreo y no permite directamente a un atacante controlar o especificar la fuente de los datos obsoletos.
Debido a la naturaleza de recursos compartidos de los sistemas basados en virtualización, donde múltiples máquinas virtuales pueden ser asignadas a los mismos núcleos de CPU, es posible exfiltrar información contenida dentro de diferentes contextos de seguridad (es decir, otras máquinas virtuales o incluso el host) explotando esta vulnerabilidad.
El impacto en el rendimiento de la vulnerabilidad de caída
El impacto en el rendimiento de la mitigación del microcódigo se limita a las aplicaciones que utilizan las instrucciones gather proporcionadas por AVX2 y AVX-512, y la instrucción CLWB. El impacto real en el rendimiento dependerá de la intensidad con que una aplicación utilice estas instrucciones. Las pruebas de Red Hat mostraron una ralentización significativa en los microchmarks del peor de los casos, pero sólo ralentizaciones porcentuales de un solo dígito en aplicaciones más realistas.
Solución actual
Entonces, ¿qué puede hacer ahora mismo para proteger sus sistemas de la vulnerabilidad GDS, también conocida como Downfall?
Instalar la actualización del microcódigo: Compruebe la disponibilidad de la corrección consultando la página CVE. La mitigación se activa por defecto en las CPU afectadas una vez instalado el microcódigo, independientemente de la versión del kernel en uso.
Lea aquí cómo realizar esta operación en un sistema en funcionamiento.
Actualizar el núcleo: Esto añade informes de estado de vulnerabilidad y mitigación y la posibilidad de desactivar la mitigación. La solución real para el problema de seguridad potencial se aborda en la propia actualización del microcódigo, no en el parche del kernel.
Desactivar mitigación (opcional): Los usuarios pueden decidir desactivar la mitigación tras el análisis de riesgos añadiendo gather_data_sampling=off a la línea de comandos del kernel o utilizando mitigations=off.
Nota: La pérdida de rendimiento de CLWB es permanente en las arquitecturas Skylake, independientemente de la posterior eliminación de la mitigación.
Pasos de diagnóstico
Después de aplicar las actualizaciones del microcódigo y del kernel, puede comprobar el estado de la mitigación ejecutando uno de los siguientes comandos:
# dmesg | grep "GDS: "
[ 0.162571] GDS: Mitigation: Microcode
# cat /sys/devices/system/cpu/vulnerabilities/gather_data_sampling
Mitigation: Microcode
Actualizaremos esta entrada del blog a medida que se descubra nueva información pertinente sobre esta vulnerabilidad. Si es usuario de KernelCare Enterprise, siga nuestra documentación sobre cómo actualizar el microcódigo de la distribución de Linux que utilice. Manténgase alerta y actualice sus sistemas para estar protegido.