Vulnerabilidad en IO URING de Linux permite Ataques de Rootkits Invisibles

Un grave vacío de seguridad en la protección en tiempo de ejecución de Linux, causado por la interfaz ‘io_uring’, permite que rootkits operen de forma indetectable, incluso frente a soluciones de seguridad empresarial avanzadas.

El fallo fue descubierto por investigadores de ARMO Security, quienes desarrollaron un rootkit de prueba de concepto llamado “Curing” para demostrar la viabilidad de los ataques que aprovechan io_uring para evadir la detección.

¿Qué es io_uring?*

io_uring es una interfaz del núcleo de Linux, introducida en 2019 con Linux 5.1, diseñada para realizar operaciones de entrada/salida de forma eficiente y asincrónica.

A diferencia del sistema tradicional de llamadas (syscalls), utiliza anillos de buffers compartidos entre el programa y el núcleo para procesar solicitudes I/O mientras el programa sigue ejecutándose sin bloqueos.

¿Dónde está el problema? ⚠️

La mayoría de las herramientas de seguridad monitorizan actividades sospechosas basándose en syscalls y técnicas de hooking (como ptrace o seccomp), ignorando completamente lo que sucede a través de io_uring.

Esto crea un peligroso punto ciego que puede ser explotado por malware avanzado.

io_uring soporta más de 61 tipos de operaciones, incluyendo:

  • Lectura y escritura de archivos
  • Creación y aceptación de conexiones de red
  • Creación de procesos
  • Modificación de permisos de archivos
  • Lectura de contenidos de directorios

Esta amplitud lo convierte en un vector de ataque extremadamente poderoso.

Demostración Práctica: Rootkit “Curing”

Los investigadores de ARMO crearon el rootkit “Curing”, que:

  • Se conecta a un servidor remoto.
  • Recibe y ejecuta comandos arbitrarios sin activar los hooks de syscalls.

Al probar “Curing” contra herramientas populares de seguridad:

  • Falco fue completamente ciego, incluso con reglas de detección personalizadas.
  • Tetragon tampoco detectó actividad maliciosa en su configuración predeterminada.
    • No obstante, Tetragon afirma que es posible configurar su sistema para monitorear estas acciones mediante hooks personalizados.

En pruebas adicionales contra herramientas comerciales, se confirmó que tampoco pudieron detectar actividades basadas en io_uring, aunque no se especificaron los nombres de los productos evaluados.

¿Qué están haciendo al respecto? ️

  • Google ya decidió desactivar io_uring por defecto en Android y ChromeOS debido a estos riesgos.
  • ARMO propone usar Instrumentación de Seguridad en Tiempo de Ejecución del Núcleo (KRSI) mediante eBPF para monitorizar eventos relevantes del kernel.
  • El rootkit Curing está disponible gratuitamente en GitHub para que administradores puedan probar sus propios sistemas.
Vistas: 2