Sin una sola llamada al sistema, penetra en el núcleo y permanece invisible.
Investigadores de ciberseguridad descubrieron una vulnerabilidad en los enfoques de monitoreo de seguridad de sistemas Linux, demostrando una nueva forma de intervención sigilosa mediante el uso del mecanismo io_uring. El problema radica en que muchas herramientas de protección dependen del seguimiento de llamadas al sistema, pero este mecanismo permite realizar acciones sin dichas llamadas, creando así un peligroso punto ciego.
Se trata de un rootkit PoC llamado Curing, desarrollado por el equipo de ARMO. Utiliza io_uring, una interfaz del núcleo de Linux presentada en la versión 5.1 en marzo de 2019. Este mecanismo se basa en dos búferes en anillo —una cola de envío y una cola de finalización— y está diseñado para el procesamiento asincrónico de solicitudes de entrada/salida entre el espacio de usuario y el núcleo. Gracias a la interacción directa con estas estructuras, el rootkit puede recibir comandos desde un servidor C2 y ejecutarlos sin una sola llamada al sistema, permaneciendo así invisible para la mayoría de las soluciones tradicionales de seguridad.
La investigación demostró que herramientas populares como Falco y Tetragon no pueden detectar actividades basadas en io_uring. Esto se debe a que dependen de la interceptación de llamadas al sistema. Como resultado, estas amenazas pasan desapercibidas para sus sistemas de análisis. Incluso el agente Falcon de CrowdStrike, que en su versión inicial no supervisaba operaciones con io_uring, posteriormente fue actualizado para corregir esta deficiencia. Sin embargo, según ARMO, Microsoft Defender for Endpoint en Linux aún no puede detectar eficazmente este tipo de ataques, independientemente del mecanismo utilizado.
El problema no es nuevo. Google ya en 2023 reconoció el peligro de io_uring y restringió su uso en Android, ChromeOS y en la infraestructura de servidores. Representantes de la empresa afirmaron en ese momento que esta interfaz proporcionaba a los atacantes herramientas demasiado potentes para explotar vulnerabilidades.
ARMO enfatiza que la mayoría de las soluciones de protección tienen un enfoque primitivo hacia el monitoreo: simplemente observan las llamadas al sistema, considerándolas como el principal indicador de actividad. Pero en las condiciones actuales eso ya no es suficiente. La aparición de mecanismos como io_uring demuestra claramente cuán fácil es eludir los métodos tradicionales de análisis.
La conclusión es clara: para una protección eficaz se necesitan mecanismos más profundos de observación del comportamiento de los programas, que incluyan análisis de las estructuras internas del núcleo y de la lógica de interacción entre componentes, y no solo una supervisión superficial de las llamadas. De lo contrario, este tipo de rootkits se volverán cada vez más sofisticados e indetectables.