Linux Adictos Pablinux  

RingReaper: el malware para Linux que se oculta usando io_uring

RingReaper

RingReaper es una nueva familia de malware centrada en sistemas Linux que destaca por su capacidad para pasar desapercibida frente a las defensas habituales de endpoints. Mediante técnicas de E/S asíncrona, este agente de etapa posterior a la intrusión realiza tareas encubiertas con una huella mínima ante los sistemas de monitoreo.

La clave de su sigilo está en el uso de io_uring, una interfaz moderna del kernel que le permite sustituir llamadas al sistema convencionales por operaciones asíncronas de alto rendimiento, dejando a oscuras a soluciones EDR basadas en ganchos y filtrado de syscalls.

Qué es RingReaper y por qué importa

Identificado por analistas de Picus Security como un agente de pos-explotación, RingReaper no se centra en la intrusión inicial, sino en el trabajo silencioso posterior: reconocimiento, recolección de datos y persistencia, todo ello con un enfoque metódico que complica la detección.

El impacto va más allá de un caso aislado de malware: su éxito demuestra una brecha sistémica en estrategias que confían en interceptar syscalls, ya que las actividades canalizadas a través de io_uring quedan, en gran medida, fuera del alcance de la telemetría tradicional.

Cómo evade RingReaper la detección con io_uring

En lugar de invocar funciones típicas como read, write, recv, send o connect, RingReaper recurre a primitivas io_uring (por ejemplo, io_uring_prep_*()), reduciendo el ruido de syscalls y esquivando los hooks de los EDR.

Esta sustitución de rutas de ejecución crea una zona ciega para las herramientas que esperan patrones sincrónicos y deja menos trazas forenses, especialmente cuando las operaciones afectan a estructuras del kernel o al sistema de archivos virtual /proc.

Capacidades observadas en fase post-explotación

Durante el reconocimiento de procesos (MITRE ATT&CK T1057), RingReaper enumera procesos y detalles de propiedad a través de consultas asíncronas a /proc, emulando utilidades como ps sin disparar alertas comunes.

Para el mapeo de usuarios y sesiones activas (ATT&CK T1033), analiza /dev/pts y entradas de /proc a fin de identificar actividad de terminal y potenciales superficies para movimiento lateral o escalada.

En el inventario de conexiones (ATT&CK T1049), interroga tablas de red del kernel y sockets de forma asíncrona, replicando funciones de netstat/ss sin recurrir a llamadas sincrónicas, lo que reduce su visibilidad.

Para la recolección de datos (ATT&CK T1005), puede extraer información sensible de archivos como /etc/passwd sin usar herramientas visibles (cat, getent), y para elevar privilegios (ATT&CK T1068) automatiza la búsqueda de binarios SUID y vulnerabilidades aprovechables.

Cargas útiles y modo de operación

El operador establece un directorio de trabajo ($WORKDIR) desde el que ejecuta módulos especializados que encapsulan tareas discretas, canalizando todas las operaciones por io_uring para mantenerse bajo radar.

  • "$WORKDIR"/cmdMe y "$WORKDIR"/executePs: enumeración de procesos y metadatos del sistema vía consultas a /proc.
  • "$WORKDIR"/netstatConnections: inventario de conexiones y sockets a partir de tablas de red del kernel, alternativa furtiva a netstat.
  • "$WORKDIR"/loggedUsers: correlación de sesiones PTS y usuarios activos mediante /dev/pts y /proc.
  • "$WORKDIR"/fileRead: lectura asíncrona de archivos sensibles como /etc/passwd.
  • "$WORKDIR"/privescChecker: comprobación de binarios SUID y condiciones de escalado.
  • "$WORKDIR"/selfDestruct: borrado asíncrono de sus propios artefactos para dificultar el análisis forense.

Especial mención merece el mecanismo de auto-preservación: el borrado asíncrono de binarios y rastros evita monitores de operaciones de archivos convencionales y verifica su limpieza para minimizar la huella.

Implicaciones para la defensa

Las arquitecturas que confían en intercepción de syscalls y patrones de herramientas estándar se encuentran con lagunas notables: si la actividad fluye por io_uring, gran parte de la señal esperada no llega a la telemetría del EDR.

Este enfoque marca un punto de inflexión en el uso de interfaces legítimas del kernel para evadir control, y anticipa una adopción mayor por parte de actores con recursos en entornos de servidores Linux y cargas en la nube.

Indicadores de compromiso y estrategias de detección

Los equipos de seguridad deberían priorizar la auditoría de io_uring: llamadas como io_uring_setup o patrones de io_uring_prep_*() en binarios no estándar, especialmente si residen en directorios de usuario o rutas temporales.

Conviene alertar sobre lecturas anómalas de /proc, /dev/pts o /etc/passwd realizadas por procesos que no invocan utilidades comunes (ps, who, netstat) pero exhiben resultados equivalentes.

Otros indicios incluyen enumeración de red con bajo ruido de syscalls, ejecutables que se auto-eliminan, y secuencias repetidas de módulos desde el mismo $WORKDIR, correlacionadas en ventanas de tiempo reducidas.

Como medidas de mitigación, es recomendable fortalecer el monitoreo en tiempo de ejecución del kernel, correlacionar comportamientos a nivel de proceso y, cuando sea viable, restringir o deshabilitar io_uring en sistemas donde no sea imprescindible.

La aparición de RingReaper confirma que el abuso de io_uring ha pasado de la teoría a la práctica: un agente pos-explotación capaz de reconocer, recopilar y esconderse con operaciones asíncronas, que obliga a revisar la visibilidad de los EDR, ampliar la observabilidad del kernel y ajustar controles en Linux para cerrar las brechas que hoy aprovecha.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.