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
LID — LID — Linux Integrity Drift: Evadiendo AppArmor mediante la reescritura de rutas con eBPF. Manipulación de argumentos de syscalls previa a LSM con cero huella de auditoría. "Linux está muriendo" | Kitploit
Herramientas/GitHubGitHub/azqzazq1/lid
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónEvasión de IDS/IPSPruebas de PenetraciónAnálisis de BinariosPapers e InvestigaciónAprendizaje y EducaciónRed Teaming
GitHubazqzazq1/lid

LID

LID — Linux Integrity Drift: Evadiendo AppArmor mediante la reescritura de rutas con eBPF. Manipulación de argumentos de syscalls previa a LSM con cero huella de auditoría. "Linux está muriendo"

20119hace 4 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
Ver Repositorio


``` ██╗ ██╗██████╗ ██║ ██║██╔══██╗ ██║ ██║██║ ██║ ██║ ██║██║ ██║ ███████╗██║██████╔╝ ╚══════╝╚═╝╚═════╝ ```

Linux Integrity Drift

— "Linux está muriendo" —


Descubrimiento sistemático de rutas de código del kernel que omiten las garantías de seguridad de LSM
La puerta nunca fue derribada. Simplemente la rodearon.



¿Qué es LID?

El framework de módulos de seguridad de Linux tiene una garantía central que se ha mantenido durante más de 20 años:

Los módulos de seguridad solo pueden añadir restricciones. Nunca pueden eliminarlas.

Esta garantía es correcta. LID no la rompe.

LID encuentra rutas de código del kernel que omiten por completo los hooks de LSM — subsistemas que realizan operaciones sensibles para la seguridad sin consultar el framework LSM. La comprobación de seguridad es correcta. El problema es que el kernel nunca pregunta.


Entendiendo qué es LID (y qué no es)

Cada hallazgo tiene dos dimensiones distintas que no deben confundirse:

A) Brecha de visibilidad de la política

El punto ciego arquitectónico. La pregunta no es "¿puede un atacante explotar esto?", sino:

  • ¿Qué ve realmente AppArmor/SELinux?
  • ¿Qué registra el log de auditoría?
  • ¿Qué observa tu SIEM/EDR?
  • ¿Qué cree el motor de políticas que sucedió?

Si se produce una operación sensible para la seguridad y la capa de aplicación de políticas ni siquiera la evalúa, tienes una brecha de visibilidad — independientemente de si un atacante puede abusar de ella en la práctica hoy. Esto importa para cumplimiento, forense digital y supuestos de defensa en profundidad.

B) Ruta práctica de escalada

La pregunta de explotabilidad en el mundo real:

  • ¿Cruza un límite de privilegios?
  • ¿El atacante necesita tener root/CAP_BPF para activarlo?
  • ¿Se requiere una cadena de explotación o es independiente?
  • ¿Cuál es el impacto real — acceso a datos, escalada de privilegios, evasión de políticas?

Estas dos cosas son diferentes. Un hallazgo puede ser una brecha de visibilidad crítica (tu monitoreo está ciego) sin ser una escalada de privilegios práctica (el atacante ya necesita root). A la inversa, un hallazgo puede ser una ruta de escalada directa con requisitos previos mínimos.

HallazgoBrecha de visibilidadEscalada práctica
LID-001Crítica — AppArmor no ve nada, log de auditoría vacío, cero rastro forenseLimitada — requiere root o CAP_BPF+CAP_PERFMON (ya privilegiado). No es una escalada de privilegios. Impacto: evasión de políticas + ceguera de auditoría.
LID-002Alta — security_file_receive() nunca se dispara, la transferencia de fd invisible para todos los LSMAlta — funciona desde el espacio de usuario sin privilegios mediante io_uring. Cruza el límite de aplicación de LSM sin ningún privilegio.
LID-003Alta — security_sb_mount() evadido, la política de montaje de AppArmor es código muertoMedia — requiere acceso al espacio de nombres de montaje (CAP_SYS_ADMIN en user ns). Disponible en muchas configuraciones de contenedores.
LID-004Crítica — AppArmor no ve nada, cero hooks BPF (0/9), sin rastro de auditoría para ninguna operación de token BPFMedia — requiere delegación de bpffs por parte del host + CAP_BPF en el espacio de nombres de usuario. Disponible en runtimes de contenedores con delegación BPF (LXD/Incus).
LID-005Media — los clasificadores de egress tc en la interfaz del contenedor nunca evalúan el tráfico AF_XDPLimitada — evita el egress tc en eth0 del contenedor (verificado). Cilium NO es evadido — aplica control en el ingress veth del lado del nodo + verificación de IP de origen (probado). Impacto limitado a configuraciones de Docker simple con filtrado de egress solo con tc.

Matriz de reproducibilidad

Cada hallazgo tiene requisitos específicos de kernel/config/privilegios. Si tu entorno no coincide, el hallazgo no se reproducirá.

LID-001: Reescritura de pathname en eBPF

CondiciónRequeridoNotas
Versión del kernel5.x+Probado en 5.15, 6.1, 6.6, 6.8
CONFIG_BPF_SYSCALL=yPredeterminado en todas las distros principales
CONFIG_BPF_KPROBE_OVERRIDE=yUbuntu/Debian lo habilitan, RHEL no
CONFIG_SECURITY_APPARMOR=yEl LSM objetivo debe ser AppArmor
Perfil de AppArmorEnforcing, regla de denegación en la ruta objetivoFunciona con cualquier regla de denegación basada en rutas
Privilegiosroot o CAP_BPF + CAP_PERFMONNo puede ejecutarse sin privilegios
kernel.lockdownnone o integrityEl modo confidentiality impide adjuntar kprobes
kernel.unprivileged_bpf_disabledIrrelevanteRequiere CAP_BPF de todos modos
fs.protected_hardlinks0 para enlaces entre usuarios1 (predeterminado) todavía permite enlaces duros del mismo usuario
SELinux en lugar de AppArmorNo funcionaSELinux se basa en inodos, no en nombres de ruta

LID-002: io_uring MSG_RING

CondiciónRequeridoNotas
Versión del kernel6.0+IORING_MSG_SEND_FD añadido en 6.0
CONFIG_IO_URING=yPredeterminado en todas las distros principales
PrivilegiosNingunoFunciona desde el espacio de usuario sin privilegios
sysctl io_uring_disabled0 (predeterminado)2 bloquea a los no privilegiados, 1 bloquea a todos
LSM objetivoCualquiera (SELinux, AppArmor, Smack)security_file_receive() es un hook LSM genérico
kernel.lockdownIrrelevanteNo involucra BPF

LID-004: Ceguera de AppArmor ante BPF Token

CondiciónRequeridoNotas
Versión del kernel6.9+El token BPF se introdujo en 6.9
CONFIG_BPF_SYSCALL=yPredeterminado en todas las distros principales
CONFIG_SECURITY_APPARMOR=yPredeterminado en Ubuntu/Debian
bpffs con delegaciónSíEl host debe montar con opciones delegate_*
PrivilegiosCAP_BPF en el espacio de nombres de usuarioDisponible trivialmente para root de userns
SELinux en lugar de AppArmorNo afectadoSELinux implementa los 9 hooks BPF

LID-003: Nueva API de montaje

CondiciónRequeridoNotas
Versión del kernel5.2+fsopen/fsmount introducidos en 5.2
CONFIG_SECURITY_APPARMOR=ySolo AppArmor se ve afectado
PrivilegiosCAP_SYS_ADMIN en el espacio de nombres de usuarioDisponible con unshare -m
SELinux en lugar de AppArmorNo funcionaSELinux implementa security_sb_kern_mount()
Runtime de contenedoresDepende del filtro seccompEl seccomp predeterminado de Docker bloquea fsopen — Podman/LXC puede que no

LID-005: Bypass de egress tc de AF_XDP

Descargar herramienta