Camino hacia privilegios de administrador: un fallo en código de 2017 anula las protecciones de sistemas Linux

Camino hacia privilegios de administrador: un fallo en código de 2017 anula las protecciones de sistemas Linux

Desarrolladores de Linux alistan parches para una vulnerabilidad crítica en el sistema de control de acceso

image

La vulnerabilidad, oculta en Linux durante casi ocho años, permite a un usuario ordinario del sistema obtener el control total del servidor. Se trata de problemas en el mecanismo de seguridad AppArmor, que está activado por defecto en muchas distribuciones populares.

La empresa Qualys informó sobre nueve vulnerabilidades en AppArmor y agrupó los hallazgos bajo el nombre CrackArmor. El problema apareció en 2017 junto con el núcleo de Linux versión 4.11. A lo largo de los años el mecanismo vulnerable llegó a millones de sistemas. Según la estimación de Qualys, AppArmor con la configuración por defecto funciona en más de 12,6 millones de instalaciones corporativas de Linux.

AppArmor forma parte del núcleo de Linux y actúa como control de acceso obligatorio. El mecanismo limita las capacidades de programas individuales, impidiendo que las aplicaciones lean archivos ajenos, ejecuten llamadas de sistema peligrosas o obtengan privilegios adicionales. Este enfoque se usa ampliamente en contenedores, plataformas en la nube, Kubernetes y en dispositivos integrados.

CrackArmor rompe esta protección. Los errores detectados permiten a un usuario local sin privilegios manipular los perfiles de seguridad a través de pseudoficheros en el directorio /sys/kernel/security/apparmor/. Con ellos un atacante puede sustituir o eliminar políticas de seguridad, eludir las restricciones de los espacios de nombres de usuarios y ejecutar código directamente en el núcleo de Linux. Como resultado el atacante puede elevar sus privilegios al nivel root.

Para el ataque basta una cuenta con privilegios mínimos. A continuación el atacante puede usar herramientas del sistema de confianza como Sudo o el sistema de correo Postfix para cambiar las reglas de AppArmor. Este esquema se relaciona con el conocido problema del «delegado confundido», cuando un programa privilegiado realiza acciones a solicitud de un usuario menos privilegiado.

Los errores permiten no solo obtener privilegios de administrador, sino también dejar el sistema inoperativo. Por ejemplo, un atacante puede cargar un perfil que bloquee por completo el acceso al servicio SSH, privando así a los administradores de la posibilidad de conectarse al servidor. En otro escenario, la eliminación de una cadena compleja de perfiles anidados provoca un desbordamiento de pila del núcleo y un fallo del sistema seguido de reinicio.

También es posible la filtración de datos desde la memoria del núcleo y eludir el mecanismo de aleatorización del espacio de direcciones KASLR. En algunos escenarios el atacante puede modificar el contenido del archivo /etc/passwd, lo que prácticamente otorga el control total sobre el sistema.

Especialmente peligrosa es la difusión de AppArmor. El mecanismo está activado por defecto en Ubuntu, Debian y SUSE, y además se utiliza de forma activa en entornos en la nube y plataformas de contenedores. Por ello, la explotación de AppArmor destruye prácticamente uno de los niveles clave de protección de Linux.

Se consideran vulnerables todas las versiones de los núcleos de Linux a partir de la 4.11, si el sistema utiliza AppArmor. Por el momento a los problemas no se les han asignado identificadores CVE. El equipo del núcleo de Linux suele asignar esos números una o dos semanas después de que aparezcan las correcciones en la rama estable.

Qualys preparó exploits de demostración que confirman la posibilidad de una cadena completa de ataque, pero no publicó el código de forma pública. La empresa entregó los detalles técnicos a los desarrolladores para acelerar la preparación de correcciones.

Se recomienda a los administradores instalar cuanto antes las actualizaciones del núcleo proporcionadas por los mantenedores de las distribuciones. Las medidas temporales no brindan una seguridad completa. Además, conviene controlar los cambios en el directorio /sys/kernel/security/apparmor/, ya que una modificación sospechosa de los perfiles puede indicar un intento de explotación de la vulnerabilidad.