Rootkits indetectables en Linux: io_uring desafía las herramientas de detección

Iniciado por Dragora, Mayo 02, 2025, 12:01:48 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Investigadores de la empresa ARMO han encendido las alarmas en la comunidad de ciberseguridad tras descubrir una preocupante evolución en el desarrollo de rootkits para Linux. Según su reciente publicación, los atacantes están utilizando la interfaz io_uring del kernel de Linux para crear malware completamente funcional capaz de evadir los métodos tradicionales de detección.

Esta técnica representa un cambio de paradigma en la seguridad de sistemas Linux, ya que io_uring permite realizar operaciones de entrada/salida sin recurrir a las clásicas llamadas al sistema que las herramientas de detección suelen monitorear.

¿Qué es io_uring y por qué es relevante para la seguridad?

io_uring es una API introducida en Linux 5.1 diseñada para optimizar las operaciones de E/S asíncronas. Su arquitectura se basa en dos búferes en forma de anillo compartidos entre el espacio de usuario y el del kernel, lo que permite a las aplicaciones ejecutar múltiples solicitudes de E/S sin bloquear el hilo principal.

A diferencia de las API tradicionales basadas en llamadas como read(), write() o connect(), io_uring permite realizar estas acciones sin invocar directamente dichas llamadas. Esto reduce el overhead del sistema, pero también oculta las actividades maliciosas de muchas herramientas de seguridad, ya que estas dependen de interceptar las llamadas al sistema para detectar comportamientos anómalos.

Investigación y antecedentes técnicos

ARMO ya había explorado en investigaciones anteriores la evasión de mecanismos de seguridad basados en eBPF, como la manipulación de mapas o los ataques TOC-TOU (Time-of-Check to Time-of-Use). Sin embargo, un hallazgo clave fue una publicación del 6 de junio de 2022 de Daniel Teixeira, operador sénior del Red Team, en la que demostró cómo io_uring puede burlar la monitorización de llamadas al sistema.

Motivados por este enfoque, los expertos de ARMO decidieron investigar a fondo las implicaciones de io_uring en el desarrollo de rootkits avanzados.

Curing: el rootkit indetectable basado en io_uring

Para demostrar esta técnica, el equipo de ARMO desarrolló Curing, un prototipo de rootkit funcional que utiliza exclusivamente io_uring para comunicarse con un servidor remoto y ejecutar comandos maliciosos. En una de sus pruebas, Curing logró exfiltrar el archivo crítico /etc/shadow mediante una conexión TCP en el puerto 8888 sin ser detectado por soluciones como Falco o Tetragon.

Ambas herramientas fallaron porque no contemplan io_uring como un canal de comunicación relevante para sus sistemas de monitoreo, lo cual también ocurre en la mayoría de las soluciones comerciales de detección de amenazas para entornos Linux.

¿Cómo defenderse ante esta nueva técnica?

Los investigadores de ARMO recomiendan adoptar métodos más avanzados de monitoreo en tiempo real, como KRSI (Kernel Runtime Security Instrumentation), disponible desde Linux 5.7. KRSI permite conectar programas eBPF a ganchos LSM (Linux Security Modules), lo que brinda visibilidad profunda incluso en operaciones que no involucran llamadas al sistema.

Gracias a KRSI, es posible detectar comportamientos sospechosos relacionados con:

  • Acceso no autorizado a archivos.
  • Establecimiento de conexiones de red.
  • Ejecución de procesos mediante io_uring.

La integración de KRSI en soluciones de seguridad modernas podría cerrar la brecha que técnicas como la usada por Curing están explotando actualmente.

io_uring y sus implicaciones en seguridad

No es la primera vez que io_uring genera preocupaciones en materia de seguridad. De hecho, ha estado en el centro de diversas vulnerabilidades críticas en los últimos años. Google ha optado por desactivarlo por defecto en sistemas como ChromeOS, Android y en su propia infraestructura de servidores.

En línea con estas preocupaciones, a partir de Linux 6.6 se ha introducido el parámetro io_uring_disabled en sysctl, el cual permite a los administradores del sistema desactivar io_uring sin necesidad de recompilar el kernel. Esta opción representa una capa adicional de defensa para quienes no requieren el uso de esta interfaz.

En conclusión, el uso de io_uring en rootkits para Linux representa una amenaza emergente que pone en evidencia las limitaciones de las herramientas de detección tradicionales. La investigación de ARMO, materializada en el prototipo Curing, demuestra que es posible desarrollar malware indetectable que opere fuera del radar del monitoreo convencional basado en llamadas al sistema.

La implementación de soluciones como KRSI y la revisión de políticas de activación de io_uring serán fundamentales para enfrentar estos nuevos desafíos en la ciberseguridad en Linux.

Fuente: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta