AppArmor
¿Qué es AppArmor?
AppArmorSistema de control de acceso obligatorio basado en rutas para Linux, usado por Ubuntu y SUSE como alternativa más sencilla a SELinux para confinar programas individuales.
AppArmor es un Linux Security Module (LSM) que aplica control de acceso obligatorio mediante perfiles por programa expresados en términos de rutas de fichero, capacidades y primitivas de red, en lugar de las etiquetas de inodo que usa SELinux. Surgido a partir de Immunix y mantenido por SUSE y Canonical, AppArmor es el marco MAC por defecto en Ubuntu y openSUSE desde finales de la década de 2000 y forma parte del kernel principal desde la versión 2.6.36. Los perfiles residen en /etc/apparmor.d y pueden cargarse en modo enforce o complain (solo registro), con ayudantes como aa-genprof, aa-logprof y aa-easyprof. Su diseño basado en rutas suele ser más fácil de escribir y auditar que la política de SELinux, a costa de una semántica más débil ante renombrados, bind mounts y chroots.
En los contenedores, Docker genera y carga un perfil docker-default en tmpfs para cada contenedor en modo enforce, salvo que se anule con --security-opt apparmor=; este perfil bloquea las escrituras en rutas sensibles como /proc/sysrq-trigger y /sys, y actúa junto con seccomp y la reducción de capacidades como defensa en profundidad. AppArmor también lo usan snapd, libvirt, LXD y Firefox. Sus límites son reales: como las reglas coinciden con rutas y no con el objeto subyacente, los enlaces duros y los trucos de montaje pueden a veces eludir un perfil, y un perfil vale lo que valen sus reglas: unos globs demasiado amplios (por ejemplo, permitir /** rwk) hacen perder todo el sentido. La CVE-2019-5736 (la sobrescritura del binario host de runc) ilustró que las fugas de contenedor pueden producirse en áreas que un perfil por defecto no cubre, razón por la cual AppArmor se combina con seccomp, espacios de nombres de usuario y montajes de solo lectura en lugar de confiar en él de forma aislada.
flowchart TB
P[Ejecución de proceso] --> K[Hook LSM del kernel]
K --> Q{¿Perfil cargado?}
Q -- No --> U[Sin confinar: DAC normal]
Q -- Sí --> M{¿Acción en el perfil?}
M -- Modo enforce --> R{¿Permitida?}
R -- Sí --> A[Permitir]
R -- No --> D[Denegar + registro de auditoría]
M -- Modo complain --> L[Permitir + registrar violación]Un flujo de trabajo típico ejecuta un perfil nuevo en modo complain, somete la aplicación a uso real y luego utiliza aa-logprof para convertir los accesos registrados en reglas antes de pasar a enforce.
● Ejemplos
- 01
Ubuntu incluye por defecto perfiles de AppArmor para Firefox, MySQL y Evince.
- 02
snapd utiliza AppArmor (junto con seccomp) para confinar cada paquete snap instalado.
● Preguntas frecuentes
¿Qué es AppArmor?
Sistema de control de acceso obligatorio basado en rutas para Linux, usado por Ubuntu y SUSE como alternativa más sencilla a SELinux para confinar programas individuales. Pertenece a la categoría de Criptografía en ciberseguridad.
¿Qué significa AppArmor?
Sistema de control de acceso obligatorio basado en rutas para Linux, usado por Ubuntu y SUSE como alternativa más sencilla a SELinux para confinar programas individuales.
¿Cómo defenderse de AppArmor?
Las defensas contra AppArmor combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para AppArmor?
Nombres alternativos comunes: AA.