Vulnerabilidades del núcleo de Linux que debe conocer (y mitigar sin reiniciar)
Con la comunidad de código abierto de Linux, usted tiene el poder de los desarrolladores para añadir a su base de código, así como mejorar las características y el rendimiento. Sin embargo, este entorno también significa que los hackers tienen acceso al código fuente, lo que hace que los dispositivos basados en Linux, incluidos los servidores críticos, sean susceptibles a posibles vulnerabilidades.
Las vulnerabilidades conocidas se comunican a una base de datos centralizada de vulnerabilidades del NIST en la que vendedores, desarrolladores y usuarios pueden conocer los exploits que afectan a versiones específicas de software. Un informe de vulnerabilidades y exposiciones comunes (CVE) sirve como señal para que los usuarios apliquen rápidamente parches de software, incluidos los del núcleo Linux, para solucionar el problema identificado.
Este artículo pretende ayudarle a conocer las recientes vulnerabilidades del kernel de Linux, así como ofrecerle soluciones para mitigarlas sin tener que reiniciar sus servidores ni interrumpir sus servicios.
Vulnerabilidad del núcleo de Linux 2023
Cada mes, nuevos CVEs a la base de datos pública del base de datos del NIST y ya se han descubierto más de 130 vulnerabilidades en el núcleo de Linux. Uno de los principales problemas que subyacen a muchas de las mayores brechas de seguridad es el software sin parches, o las versiones obsoletas de ese software.
Destacaremos varias CVE descubiertas recientemente que debería conocer para proteger sus servidores y dispositivos.
Vulnerabilidad del núcleo de Netfilter Linux CVE-2023-32233
Puntuación CVSS 3.x: 7,8 (Alta)
Netfilter es un marco para el filtrado de paquetes y la traducción de direcciones de red (NAT) en el núcleo Linux. Para gestionar este marco se utilizan herramientas como UFW e IPtables.
Se ha descubierto una nueva vulnerabilidad en el Netfilter nf_tables debido al mal manejo de conjuntos anónimos. Como resultado, un usuario local puede utilizar esta vulnerabilidad de uso después de libre para obtener privilegios de root y operar tareas arbitrarias de lectura y escritura en la memoria del kernel.
Vulnerabilidad del subsistema Netfilter del núcleo de Linux (CVE-2023-0179)
Puntuación CVSS 3.x: 7,8 (Alta)
También se descubrió una vulnerabilidad de desbordamiento de búfer en el subsistema Netfilter del Kernel de Linux. Este problema podría permitir la fuga de direcciones tanto de pila como de heap y potencialmente permitir la Escalada Local de Privilegios al usuario root a través de la ejecución de código arbitrario.
Vulnerabilidad de eventos de rendimiento en el kernel de Linux (CVE-2023-2235)
Puntuación CVSS 3.x: 7,8 (Alta)
Se ha encontrado una vulnerabilidad de uso después de la liberación en el sistema de eventos de rendimiento del kernel de Linux. Esta vulnerabilidad surgía cuando la función perf_group _detach no comprobaba el attach_state de los eventos hermanos antes de llamar a add_event_to_groups(), pero remove_on_exec permitía llamar a list_del_event() antes de separarse de su grupo, haciendo posible el uso de un puntero colgante.
Vulnerabilidad del controlador SGI GRU del núcleo de Linux (CVE-2022-3424)
Puntuación CVSS 3.x: 7,8 (Alta)
Se descubrió una vulnerabilidad de uso después de libre en el controlador SGI GRU del kernel de Linux cuando el usuario llamaba a la primera función gru_file_unlocked_ioctl, donde se produce un pase fallido en la función gru_check_chiplet_assignment. Un usuario local puede explotar este fallo para provocar un fallo del sistema o escalar sus privilegios en el sistema.
Vulnerabilidad del sistema de archivos Ext4 del núcleo de Linux (CVE-2023-1252)
Puntuación CVSS 3.x: 7,8 (Alta)
Se descubrió una vulnerabilidad de uso después de libre en el sistema de archivos Ext4 del kernel de Linux cuando un usuario inicia múltiples operaciones de archivos al mismo tiempo mientras utiliza el uso de FS superpuesto. Un usuario local puede utilizar este fallo para bloquear el sistema o escalar potencialmente sus privilegios.
Hay otras vulnerabilidades recientes del kernel de Linux encontradas en el año 2023, que hemos cubierto en nuestro post anterior: Descubiertas nuevas vulnerabilidades de seguridad en el kernel de Linux.
Algunas vulnerabilidades del núcleo de Linux que debe conocer
Además de las CVE recientes de las que hemos hablado hasta ahora en este post, hemos recopilado algunas de las CVE antiguas más importantes que debería conocer para poder proteger sus servidores y dispositivos basados en Linux.
Echemos un vistazo.
Heartbleed (CVE-2014-0160)
Puntuación CVSS 3.x: 7,5 (Alta)
Codenomicon descubrió una vulnerabilidad crítica de sobrelectura del búfer OpenSSL 'Heartbleed' mientras realizaba una prueba rutinaria de su software. Heartbleed se ha convertido en uno de los fallos más graves que afectan a los servidores que utilizan OpenSSL para la gestión de SSL. Este incidente sirve de recordatorio de que una sola línea de código puede dar lugar a fallos críticos, porque sólo un error de codificación condujo a la vulnerabilidad Heartbleed.
memcpy(bp, pl, payload);
La variable bp es un puntero que recibe los datos copiados, mientras que la variable pl es un puntero a los datos de origen. Y la variable payload denota el número de bytes a copiar. Desafortunadamente, los desarrolladores pasaron por alto la validación de la longitud de la variable payload, creando una vulnerabilidad que los atacantes pueden explotar.
En este escenario, un atacante podría enviar una carga útil de 8 bytes de datos para la variable pl mientras asigna maliciosamente 64 bytes a la variable payload. En consecuencia, el software afectado, OpenSSL, transmitiría 64 bytes de datos en lugar de los 8 bytes previstos. Los bytes restantes en memoria podrían ser claves privadas, contraseñas, datos de usuario o cualquier otra cosa almacenada en la longitud restante de bytes en memoria. Es importante señalar que Heartbleed no fue un desbordamiento de búfer, sino un problema de sobrelectura. La falta de comprobaciones adecuadas sobre la longitud de la carga útil dio lugar a una operación de lectura excesiva, exponiendo datos no deseados de la memoria.
OpenSSL puede recompilarse con el parámetro -DOPENSSL_NO_HEARTBEATS para solucionar este problema antes de aplicar el parche. Sin embargo, este enfoque puede tener consecuencias imprevistas para las aplicaciones que dependen de un heartbeat SSL. En consecuencia, las aplicaciones que dependen de un heartbeat pueden sufrir caídas, mensajes de error o no funcionar correctamente. Por lo tanto, es crucial dar prioridad a la aplicación oportuna de parches.
KernelCare Enterprise permite a los administradores parchear OpenSSL sin necesidad de reiniciar el sistema. Esto permite a los administradores abordar la vulnerabilidad Heartbleed evitando tiempos de inactividad o métodos de mitigación potencialmente arriesgados.
Spectre y Meltdown (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754)
Puntuación CVSS 3.x: 5,6 (Media)
Lo que distingue a Spectre y Meltdown de la mayoría de las demás CVE es que se trata de problemas de hardware y no de software. Estas vulnerabilidades tuvieron un impacto global, afectando a casi todos los dispositivos y obligando a Intel a cambiar su enfoque de fabricación de procesadores. Ambas vulnerabilidades permiten a los atacantes leer la memoria que se ejecuta en el dispositivo local debido a varias comprobaciones de privilegios fallidas en el hardware.
Los exploits Meltdown se saltan las comprobaciones de privilegios y Spectre engaña a las aplicaciones para que accedan a memoria privilegiada. En ambos casos, un atacante obtiene acceso a instrucciones del sistema operativo desde la memoria física mapeada con el kernel, lo que podría incluir contraseñas, claves y otros datos sensibles.
Tras el descubrimiento, Intel anunció cambios en el proceso de fabricación de sus procesadores para eliminar la vulnerabilidad en los nuevos. También se publicaron parches para solucionar el problema, aunque los usuarios experimentaron una disminución significativa del rendimiento, sobre todo en las máquinas más antiguas.
Se publicaron dos parches para mitigar el problema: Kaiser para Meltdown y el Retpoline para Spectre. El mayor problema de la mitigación es que el rendimiento se ve muy afectado y es necesario reiniciar el sistema, pero KernelCare aplica parches para estas dos vulnerabilidades sin necesidad de reiniciar.
Astronomía de mutágenos (CVE-2018-14634)
Puntuación CVSS 3.x: 7,8 (Alta)
Mutagen Astronomy (anagrama de Too Many Arguments) es uno de los problemas altamente críticos que sólo puede ser explotado por un usuario local para obtener privilegios de root en el sistema Linux. Un desbordamiento de búfer en la función create_elf_tables() de Linux condujo a la escalada de privilegios. Un atacante puede desbordar el valor MAX_ARG_STRINGS utilizado para limitar los argumentos pasados a la función e inyectar sus propias variables de entorno y funciones utilizando un binario SUID-root.
El resultado es que un atacante puede escalar privilegios, ejecutar funciones no autorizadas en el dispositivo local o inyectar sus propias variables de entorno. Para ver un desglose del código vulnerable, Qualys publicó sus hallazgos aquí.
Es importante señalar que esta vulnerabilidad no sólo requiere que el usuario esté en la máquina local, sino que el ataque también requiere un dispositivo de más de 16 GB de RAM que ejecute un kernel de 64 bits. Sin embargo, es un fallo crítico y debería ser parcheado lo antes posible. Los investigadores de Qualys descubrieron que la mayoría de los usuarios de Linux no están afectados, pero los principales objetivos vulnerables a este ataque son los sistemas RedHat y CentOS. RedHat publicó una soluciónpero sigue siendo necesario reiniciar el sistema.
En lugar de aplicar una larga solución provisional, los servidores Linux que ejecutan KernelCare recibirán el parche y no será necesario reiniciar.
Zombieload (muestreo de datos de microarquitectura) CVE-2018-12207
Puntuación CVSS 3.x: 6,5 (Media)
Tras los descubrimientos de Spectre y Meltdown, se identificó otro fallo de hardware conocido como "Zombieload". Zombieload comprende una serie de exploits que explotan la funcionalidad de instrucción especulativa de los microprocesadores. En un esfuerzo por mejorar el rendimiento, los procesadores intentan almacenar en caché las futuras instrucciones que probablemente se ejecutarán a continuación.
Zombieload y otros ataques de muestreo de datos microarquitectónicos (MDS) se aprovechan de los límites de protección fallidos que rodean este espacio de memoria y engañan a las aplicaciones para que divulguen datos críticos.
Para solucionar este problema, puede adoptar las tres medidas siguientes.
- Actualización del microcódigo del procesador
- Desactivar hyperthreading en la BIOS (las instrucciones manuales dependen del fabricante de la BIOS).
- Parchear el núcleo de Linux
Reflexiones finales
Aunque no todas las vulnerabilidades del núcleo de Linux tienen su propio CVE, es fundamental que los administradores de Linux analicen periódicamente los servidores en busca de vulnerabilidades y las parcheen cuando se encuentre una nueva. La consecuencia de un sistema sin parches podría ser desastrosa para la empresa y su reputación en cada uno de los casos mencionados.
KernelCare Enterprise de TuxCare de TuxCare puede parchear todas las vulnerabilidades mencionadas sin reiniciar el sistema ni dejar de funcionar. Con esta solución, puede decir adiós a los métodos de aplicación de parches que llevan mucho tiempo, son arriesgados, crean problemas de usabilidad del software y solo ofrecen soluciones temporales.
Con KernelCare, los parches críticos y no críticos se aplican a sus servidores en cuanto están disponibles, y se despliegan en segundo plano mientras sus sistemas están en funcionamiento. Sin retrasos, sin engorrosas soluciones, sin programar operaciones de mantenimiento, sin tiempos de inactividad y, lo que es más importante, sin aperturas vulnerables para posibles atacantes.
La información sobre los parches de KernelCare Enterprise está disponible en parches.kernelcare.com.