Investigadores presentan rootkit de Linux que evade Elastic Security EDR

Investigadores de seguridad han desarrollado un rootkit sofisticado de Linux llamado Singularity que elude los mecanismos de detección y respuesta en endpoints de Elastic Security. La herramienta demuestra vulnerabilidades en sistemas de detección estática y conductual mediante técnicas avanzadas de ofuscación. Presentado en GitHub por el investigador 0xMatheuZ, resalta los desafíos continuos en la identificación de amenazas a nivel de kernel.

Investigadores de seguridad, liderados por el seudónimo 0xMatheuZ, han lanzado Singularity, un rootkit de kernel de Linux en GitHub, diseñado para evadir la detección por la solución EDR de Elastic Security, conocida como Elastic Defend. Típicamente, Elastic Security genera más de 26 alertas para implementaciones estándar de rootkits, incluyendo cuarentenas de archivos y terminaciones de procesos, pero Singularity las elude mediante cuatro estrategias principales de evasión.

La primera técnica implica ofuscación de cadenas en tiempo de compilación, donde cadenas sensibles como “GPL” y “kallsyms_lookup_name” se fragmentan en constantes separadas, como MODULE_LICENSE(“G” “P” “L”), que el compilador C concatena. Esto impide que los escáneres de firmas YARA identifiquen cadenas maliciosas contiguas en el binario mientras se preserva la funcionalidad.

Segundo, la aleatorización de nombres de símbolos reemplaza patrones predecibles, como “hook_getdents,” “fake_tcp4_seq_show” y “hide_module,” con nombres genéricos similares al kernel prefijados por “sys,” “kern” o “dev.” Una lista blanca protege las APIs esenciales del kernel, y patrones regex aseguran un renombrado consistente sin errores.

Tercero, la fragmentación de módulos divide el archivo .ko compilado en segmentos de 64KB codificados con XOR utilizando una clave aleatoria de 16 bytes. Estos se reensamblan en memoria mediante un cargador personalizado y memfd_create, evitando artefactos en disco para análisis estático. La carga ocurre a través de syscalls directos con ensamblador en línea, eludiendo envoltorios de libc monitoreados, soportando tanto sistemas de 64 bits como de 32 bits mediante int $0x80.

Cuarto, las funciones auxiliares de ftrace como “fh_install_hook” y “fh_remove_hook” se renombran a identificadores aleatorizados, evadiendo reglas que marcan múltiples ocurrencias de este tipo.

Singularity también incluye funcionalidades para ocultar procesos del sistema de archivos /proc, oscurecer archivos y directorios que coincidan con “singularity” o “matheuz,” enmascarar conexiones TCP en el puerto 8081 y habilitar escalada de privilegios mediante señales personalizadas o variables de entorno. Incluye una puerta trasera basada en ICMP para shells reversos activados por secuencias específicas de paquetes, con medidas anti-análisis que obstruyen el rastreo y sanitizan los registros.

Para la evasión conductual, despliega un script bash escalonado en /singularity, ejecutado con líneas de comando limpias para evitar la detección de shells reversos. El script usa kill -59 para ocultar PID y escalar, compilando cargadores en /tmp en lugar de directorios monitoreados. En pruebas, Singularity se cargó sin alertas, ocultó procesos y estableció shells de root.

Esta investigación expone debilidades en la detección basada en firmas y conductual para amenazas de kernel, enfatizando la necesidad de actualizaciones continuas, monitoreo de integridad de kernel, forense de memoria y estrategias de defensa en profundidad que combinen múltiples enfoques.

Este sitio web utiliza cookies

Utilizamos cookies para análisis con el fin de mejorar nuestro sitio. Lee nuestra política de privacidad para más información.
Rechazar