Curing: el rootkit que burla la seguridad en Linux usando io_uring

¿Qué es el Esquema Nacional de Seguridad (ENS) y por qué es crucial para la ciberseguridad pública en España?
23 de abril de 2025
Commvault
CVE-2025-34028: Vulnerabilidad crítica en Commvault permite ejecución remota sin autenticación
29 de abril de 2025

Un grupo de investigadores de ARMO ha revelado un rootkit de prueba de concepto llamado Curing, que representa una amenaza seria para los sistemas Linux modernos. Lo innovador y preocupante de este rootkit es que se basa exclusivamente en io_uring, una interfaz del kernel diseñada para operaciones de entrada/salida asíncronas, lo que le permite operar sin generar las llamadas al sistema tradicionales.

¿Por qué es tan peligroso Curing?

La mayoría de las herramientas de detección de amenazas para Linux —como Falco, Tetragon (en su configuración por defecto) y varias soluciones EDR comerciales— dependen en gran medida del monitoreo de syscalls para identificar comportamientos anómalos. Curing evita por completo este mecanismo, utilizando únicamente las funciones io_uring_setup y io_uring_enter, lo que le permite realizar acciones como:

  • Lectura y escritura de archivos
  • Establecimiento de conexiones de red
  • Ejecución de procesos

Todo ello sin dejar rastros evidentes. Herramientas como strace, por ejemplo, apenas pueden capturar actividad fuera del entorno de io_uring, dejando a los administradores literalmente ciegos ante este tipo de malware.

¿Qué es io_uring y cómo lo aprovecha este rootkit?

Introducido en Linux 5.1, io_uring es un mecanismo moderno que mejora el rendimiento de las operaciones I/O, permitiendo que los procesos coloquen peticiones en un anillo de memoria compartida que el kernel gestiona de forma asíncrona. Esto reduce la necesidad de múltiples syscalls, lo cual ha sido aprovechado por Curing para operar de forma sigilosa.

El código fuente y la demostración de este rootkit están disponibles públicamente en GitHub, permitiendo a investigadores y administradores evaluar sus sistemas frente a esta amenaza emergente.

Recomendaciones para mitigar el riesgo

Ante esta nueva técnica de evasión, ARMO sugiere implementar medidas proactivas, como:

  • Instrumentación de ganchos en nivel LSM usando KRSI o eBPF
  • Monitoreo específico del uso no autorizado de io_uring
  • Revisión de políticas de seguridad para detectar comportamientos inusuales relacionados con I/O

Como medida preventiva, Google ha deshabilitado io_uring por defecto en Android y ChromeOS, buscando mitigar este tipo de riesgos al reforzar el aislamiento entre procesos.

El caso de Curing demuestra que incluso mecanismos diseñados para mejorar el rendimiento del sistema pueden ser aprovechados por atacantes para eludir la seguridad. Es crucial que los equipos de ciberseguridad mantengan una vigilancia constante sobre las nuevas interfaces del kernel y adapten sus herramientas para cubrir este tipo de vectores de ataque.

Fuentes recomendadas para profundizar: