Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/detect-defenselab/cve-2026-31431-detection-defense
Herramientas DefensivasSeguridad de ContenedoresAnálisis de VulnerabilidadesExplotaciónDetección de Intrusiones
GitHubdetect-defenselab/cve-2026-31431-detection-defense

CVE-2026-31431-detection-defense

Investigación y guía de detección para CVE-2026-31431, una evasión basada en io_uring del monitoreo de llamadas al sistema. Proporciona reglas de detección para Tetragon, Falco y Wazuh, además de estrategias de endurecimiento.

Ver Repositorio
29hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-31431: Detección y Defensa Contra la Evasión de io_uring en la Detección Existente

Autores: fz0x00, qiwuSEC

Investigación

Para CVE-2026-31431 ("Copy Fail"), demostramos debilidades sistemáticas en productos de seguridad convencionales combinando tres estrategias de evasión: ruta de E/S asíncrona io_uring, división de procesos (fork + SCM_RIGHTS) y reutilización de sockets. Mediante pruebas empíricas, demostramos que estas técnicas pueden evadir prácticamente todas las herramientas de detección basadas en syscalls.

Hallazgos Clave

1. io_uring Evade Prácticamente Toda la Detección Basada en Syscalls

io_uring envía solicitudes a través de buffers de anillo de memoria compartida, evadiendo los puntos de entrada tradicionales de syscalls. Esto significa:

  • auditd / Wazuh / Elastic Security Agent y otros productos que dependen de la auditoría de syscalls están completamente ciegos cuando los atacantes usan la ruta io_uring — cero eventos, cero alertas
  • Los hilos de trabajo de io_uring (iou-wrk-XXXXX) ejecutan operaciones dentro del kernel sin activar audit_syscall_entry()
  • Las políticas de Seccomp que solo bloquean socket(AF_ALG) pueden evadirse mediante IORING_OP_SOCKET — seccomp solo verifica en la entrada de syscalls, y las operaciones de io_uring no pasan por esa entrada

2. La División de Procesos Rompe la Correlación a Nivel de PID

Al usar fork + SCM_RIGHTS (paso de fd a través de sockets de dominio Unix), la creación de sockets y las operaciones de splice pueden colocarse en diferentes procesos:

  • La correlación same_field(audit.pid) de Wazuh se rompe — PID del socket ≠ PID del splice, la regla CRÍTICA no se activa
  • El seguimiento de fd a nivel de proceso de Falco libsinsp se rompe por completo en escenarios SCM_RIGHTS

3. La Reutilización de Sockets Evade las Reglas de Umbral de Conteo

El PoC original crea un nuevo socket por iteración (produciendo 40+ llamadas socket(AF_ALG)). La reutilización de sockets crea solo un socket de escucha; el bucle llama a accept() que no produce nuevos eventos de socket. Las reglas basadas en count >= N quedan completamente derrotadas.

4. La Combinación de Variantes Más Difícil de Detectar

ruta io_uring + splice + /etc/passwd + algoritmo authenc + división SCM_RIGHTS + reutilización de sockets

Bajo esta combinación: las herramientas basadas en syscalls están completamente ciegas, la correlación a nivel de proceso se rompe, los umbrales de conteo fallan. Solo la detección de punto de convergencia con kprobe puede detectar esta combinación.

5. El Monitoreo a Nivel LSM Puede Detectar Perfectamente la Explotación

__sock_create(family=38) es un punto de convergencia inevitable para todas las rutas (syscall e io_uring) — AF_ALG es la única API criptográfica de espacio de usuario en el kernel de Linux. No importa cómo los atacantes varíen su enfoque, deben crear un socket AF_ALG. Monitorear esta función a nivel LSM proporciona un 100% de recall y no se ve afectado por ninguna variante.

Resultados de Pruebas Específicos por Producto

ProductoCapa de DetecciónSyscall TradicionalRuta io_uringDivisión Multi-ProcesoReutilización de SocketsEvaluación
Tetragon (kprobe)Función del kernel✅✅✅✅Única cobertura de cadena completa
Falco + plugin krsifexit/fentry✅✅✅✅Requiere krsi para io_uring; solo entrada
Falco (modern_ebpf)tracepoint de syscall✅❌✅✅io_uring completamente invisible
auditd / Wazuhauditoría de syscall✅❌❌ PID roto⚠️io_uring ciego + correlación PID rota
Elastic Security Agentsyscall✅❌⚠️⚠️Igual que Wazuh; dependiente de syscall = ciego

Falco Requiere el Plugin krsi

El driver nativo modern_ebpf de Falco solo captura la ruta de syscalls. El plugin krsi es obligatorio — utiliza trazado fexit en las salidas de las funciones del kernel io_socket() y __sys_socket() para cubrir la ruta io_uring en la creación de sockets AF_ALG. Regla de respaldo recomendada:

- rule: AF_ALG Socket Created
  condition: >
    (evt.type = socket and evt.args contains AF_ALG) or
    (evt.type = krsi_socket and krsi.domain = 38)
  output: >
    AF_ALG socket created (source=%evt.type domain=%evt.arg.domain
    krsi_domain=%krsi.domain proc=%proc.name pid=%proc.pid)
  priority: WARNING
  tags: [cve-2026-31431, crypto, container_escape]

El enfoque de detección de la regla recomendada: cubre simultáneamente eventos socket (ruta de syscall, usando coincidencia de cadena evt.args contains AF_ALG para evadir la limitación de tipo ENUMFLAGS32) y eventos krsi_socket (ruta io_uring, usando comparación de enteros krsi.domain = 38). Sin umbrales de conteo (derrotados por la reutilización de sockets), sin dependencia de correlación PID (derrotada por la división multi-proceso).

Nota: Las tres capas de defensa de la regla comunitaria ThreatBear son todas evadibles — desajuste de tipo ENUMFLAGS32 (evt.arg[0]=38 siempre falso), la reutilización de sockets derrota el umbral de conteo (count=1 < 40), la división multi-proceso rompe la correlación PID. Ver Análisis de Evasión de Reglas.

Wazuh / Elastic Security Agent No Pueden Detectar la Explotación de io_uring

Wazuh depende completamente de los eventos de auditoría de syscalls de auditd. Las operaciones de io_uring no pasan por la entrada de syscalls, por lo que auditd produce cero eventos y las 7 reglas de Wazuh fallan. Lo mismo aplica a Elastic Security Agent — los productos dependientes de la entrada de syscalls son estructuralmente ciegos a la ruta io_uring. Ver Análisis de Limitaciones de Wazuh.

Demostración de Evasión

El directorio bypass_demo/ contiene descripciones conceptuales de los enfoques de evasión de detección. El código PoC real es solo para uso interno y no se distribuye públicamente.

Índice de Documentación

Teoría

DocumentoContenido
VULNERABILITY.mdCausa raíz — superposición de tres cambios del kernel, cadena de ataque de 9 pasos, características de escritura en caché de páginas
EXPLOIT_VARIANTS.md6 dimensiones de variantes de explotación — ruta de E/S × envío de datos × archivo objetivo × algoritmo AEAD × división de procesos × reutilización de sockets
DETECTION_THEORY.mdTeoría de detección — puntos de convergencia vs. divergencia, arquitectura de detección de 4 capas, correlación temporal multi-señal

Soluciones de Detección

Descargar herramienta