Una Falla para Comprometerlos a Todos: CVE-2023-4911 para hackear Debian, Ubuntu y Fedrora

CVE-2023-4911 es una vulnerabilidad de seguridad grave dentro de la Biblioteca GNU C (glibc), específicamente en el cargador dinámico ld.so, asociada al procesamiento de la GLIBC_TUNABLESvariable de entorno. Esta vulnerabilidad ha sido explotada en ataques a la nube, particularmente por un grupo que utiliza el malware Kinsing para operaciones de criptojacking.

GLIBC_TUNABLESLa falla es un desbordamiento del búfer que puede ser explotado por un atacante local utilizando variables de entorno especialmente diseñadas al iniciar archivos binarios con permisos Set-UID (SUID), lo que potencialmente podría permitir la ejecución de código con privilegios elevados. A la Unidad de Investigación de Amenazas Qualys se le atribuye el descubrimiento de esta vulnerabilidad.

A esta vulnerabilidad se le ha asignado una puntuación de gravedad de 7,8, lo que la clasifica como de alta gravedad. La explotación de esta falla podría permitir a un atacante obtener permiso de root en un sistema Linux que ejecuta una versión vulnerable de GLIBC, específicamente la versión 2.34 o similar.

Se ha observado que el problema afecta a las principales distribuciones de Linux, y se recomienda a las organizaciones que utilizan sistemas Linux, especialmente en entornos de nube, que parcheen esta vulnerabilidad lo antes posible para mitigar los riesgos asociados.

Explotar

Para explotar CVE-2023-4911, los actores de amenazas normalmente seguirían una secuencia de pasos que dependen del acceso local a un sistema vulnerable. El proceso de explotación generalmente se puede dividir en las siguientes etapas:

  1. Acceso inicial : primero, el atacante necesita acceso local a un sistema que ejecuta una versión vulnerable de la biblioteca GNU C, específicamente donde ld.sose ve afectado por el desbordamiento del búfer. Este acceso podría obtenerse a través de varios medios, como comprometer una cuenta de usuario con pocos privilegios.
  2. Elaboración de entradas maliciosas : el atacante crea una GLIBC_TUNABLESvariable de entorno maliciosa. Esta variable está destinada a ajustarse a aspectos de rendimiento y comportamiento de la biblioteca GNU C, pero cuando se diseña de forma maliciosa, puede provocar un desbordamiento del búfer.
  3. Explotación del desbordamiento del búfer : al activar el desbordamiento del búfer, el atacante pretende sobrescribir ciertas áreas de la memoria. Esta podría ser la pila, el montón u otras ubicaciones de memoria, dependiendo de cómo el cargador dinámico ( ld.so) maneja la variable de entorno.
  4. Inyectar código o redirigir la ejecución : la memoria sobrescrita podría incluir la inyección de código malicioso o podría alterar el flujo de ejecución del proceso para saltar al código que controla el atacante. Normalmente, esto sería un shellcode: un pequeño fragmento de código que inicia un shell u otro mecanismo de control.
  5. Elevación de privilegios : si el proceso que se está explotando tiene permisos SUID, se ejecuta con los privilegios del propietario del archivo, a menudo root. Al explotar dicho proceso, el atacante puede ejecutar su código con privilegios elevados, obteniendo de manera efectiva acceso raíz al sistema.

He aquí un ejemplo hipotético:

  • Alice es administradora de sistemas para un proveedor de servicios en la nube que utiliza servidores Linux.
  • Bob es un actor de amenazas que logró obtener acceso a una cuenta con pocos privilegios en uno de los servidores Linux debido a una contraseña débil.
  • El servidor ejecuta una versión de GLIBC que es vulnerable a CVE-2023-4911.
  • Bob escribe una GLIBC_TUNABLESvariable maliciosa y la usa junto con una aplicación vulnerable que tiene SUID configurado para ejecutarse como root.
  • Cuando se ejecuta la aplicación, la variable maliciosa provoca un desbordamiento del búfer ld.so, que Bob aprovecha para redirigir el flujo de ejecución de la aplicación a su código shell.
  • El shellcode de Bob se ejecuta con privilegios de root, lo que le otorga control total sobre el servidor.
  • Ahora, con acceso de root, Bob podría instalar puertas traseras persistentes, filtrar datos o utilizar el servidor comprometido para futuros ataques.

Es importante tener en cuenta que la explotación de CVE-2023-4911, como muchas vulnerabilidades, requiere que se cumplan condiciones específicas y, a menudo, un conocimiento sofisticado de los componentes internos del software, el diseño de la memoria y las técnicas de explotación. Los detalles exactos del exploit pueden variar según la configuración del sistema, los objetivos del atacante y las variables de entorno involucradas.

El equipo de Aqua Nautilus documentó un ataque del malware Kinsing que aprovechó CVE-2023-4911 para elevar los permisos en una máquina comprometida. Así es como describieron el proceso de explotación:

  1. Acceso inicial : los atacantes obtuvieron acceso inicial explotando una vulnerabilidad PHPUnit (CVE-2017-9841), lo que les permitió descargar y ejecutar un script Perl para abrir un shell inverso en la máquina comprometida.
  2. Pruebas manuales : los atacantes de Kinsing probaron manualmente los comandos de shell en los sistemas comprometidos. Estos comandos incluían recopilar información del sistema, iniciar una sesión de shell interactiva y crear un directorio en /tmp.
  3. Descarga de exploits : descargaron un script llamado gnu-acme.py, que era un exploit para la vulnerabilidad Looney Tunables (CVE-2023-4911), que permitía la escalada de privilegios locales al explotar un desbordamiento del búfer en el manejo de la GLIBC_TUNABLESvariable de entorno por parte de ld.so.
  4. Ejecución de exploits adicionales : después de esto, buscaron y ejecutaron un exploit de PHP ofuscado que, tras la desofuscación, resultó ser un JavaScript diseñado para futuras actividades de explotación. Esto resultó en una puerta trasera de shell web que les permitía mantener el acceso no autorizado al servidor.

Este ataque demuestra las capacidades sofisticadas de los atacantes para encadenar vulnerabilidades para penetrar entornos de nube, obtener acceso no autorizado y elevar privilegios dentro del sistema.

Kinsing tiene como objetivo recopilar credenciales de CSP, lo que podría exponer datos confidenciales, como la identidad de la instancia de AWS, lo que plantea riesgos en entornos de nube.

A continuación, mencionamos todos los tipos de credenciales y datos que podrían quedar expuestos: –

  • Credenciales de seguridad temporales
  • Credenciales de rol de IAM
  • Tokens de identidad de instancia

Mitigación

Para mitigar un ataque que explota CVE-2023-4911, debes seguir los siguientes pasos:

  1. Parche la vulnerabilidad : actualice la biblioteca GNU C (glibc) a la última versión que incluye una solución para CVE-2023-4911.
  2. Limitar acceso : restrinja el acceso local al personal y los servicios esenciales, minimizando la cantidad de usuarios que potencialmente pueden aprovechar la vulnerabilidad.
  3. Monitorear actividad sospechosa : implemente herramientas de monitoreo para detectar actividad inusual, como cambios inesperados en variables de entorno o procesos no autorizados que intentan obtener privilegios elevados.
  4. Refuerce su entorno : siga las mejores prácticas para reforzar el sistema, como deshabilitar servicios innecesarios, cerrar puertos abiertos y utilizar herramientas como SELinux o AppArmor para mejorar la seguridad.
  5. Auditorías de seguridad periódicas : realice auditorías de seguridad periódicas para identificar y corregir configuraciones incorrectas o privilegios innecesarios que podrían explotarse.
  6. Utilice herramientas de seguridad : emplee soluciones de seguridad como sistemas de detección de intrusiones, firewalls y herramientas antimalware que puedan detectar y prevenir intentos de explotación.
  7. Educar al personal : capacite al personal para que reconozca los intentos de phishing y otras formas de ingeniería social que podrían comprometer el acceso local.
  8. Plan de respuesta a incidentes : disponga de un plan de respuesta a incidentes que incluya procedimientos para abordar las infracciones sospechadas, incluido cómo contener y erradicar las amenazas.
  9. Realice copias de seguridad periódicamente : mantenga copias de seguridad periódicas de los datos críticos para garantizar que pueda restaurar los sistemas a un estado seguro si es necesario.

Si sigue estos pasos, puede reducir significativamente el riesgo de explotación y mitigar el daño potencial de ataques como los que involucran CVE-2023-4911.