Expertos en ciberseguridad han presentado un rootkit experimental llamado Curing, que aprovecha el sistema de entrada/salida asincrónica io_uring del núcleo de Linux para sortear los métodos tradicionales de monitoreo basados en llamadas al sistema. Según la firma ARMO, esta técnica introduce un serio punto ciego en muchas de las soluciones de seguridad empleadas en entornos Linux.
La empresa detalló en un informe compartido con The Hacker News que este mecanismo permite a las aplicaciones en el espacio de usuario llevar a cabo múltiples operaciones sin necesidad de recurrir a llamadas directas al sistema. Por lo tanto, las herramientas de seguridad que dependen exclusivamente de vigilar dichas llamadas no logran detectar rootkits que emplean exclusivamente io_uring para operar.
io_uring, incorporado por primera vez al kernel de Linux en su versión 5.1 en marzo de 2019, es una interfaz que emplea dos estructuras en forma de anillo —la cola de envío (SQ) y la cola de finalización (CQ)— para permitir que las aplicaciones gestionen solicitudes de entrada/salida de manera asincrónica, comunicándose directamente con el kernel sin necesidad de usar el método tradicional de invocar llamadas al sistema.
El rootkit desarrollado por ARMO utiliza io_uring para establecer comunicación entre un servidor de comando y control (C2) y una máquina comprometida. De este modo, puede recibir y ejecutar instrucciones sin generar ninguna llamada al sistema detectable, logrando los mismos fines mediante rutas menos visibles para las soluciones de seguridad convencionales.
El análisis realizado por ARMO sobre las herramientas actuales de protección para entornos Linux reveló que soluciones como Falco y Tetragon son incapaces de detectar operaciones basadas en io_uring, debido a que están diseñadas principalmente para interceptar llamadas al sistema. De manera similar, el agente Falcon de CrowdStrike también fue ineficaz ante estas técnicas en un inicio, aunque posteriormente se implementó una solución. Sin embargo, Microsoft Defender for Endpoint en Linux aún presenta limitaciones para detectar ciertas amenazas, incluso cuando estas no utilizan io_uring.
La comunidad ya ha señalado los riesgos asociados a io_uring desde hace tiempo. En junio de 2023, Google anunció restricciones a su uso en Android, ChromeOS y sus servidores, advirtiendo que ofrece primitivas de explotación extremadamente potentes. Amit Schendel, jefe de investigación de seguridad en ARMO, explicó que el monitoreo eficaz requiere no solo visibilidad sobre las llamadas al sistema, sino también acceso al contexto del kernel y sus estructuras internas. Muchos proveedores de seguridad prefieren enganchar directamente las llamadas al sistema por ser más simple y rápido, pero esta aproximación no garantiza una cobertura completa. io_uring es un claro ejemplo de cómo un mecanismo puede eludir completamente esa capa de vigilancia.
Fuente: thehackernes.com