Como configurar AppArmor

www.onlinetis.com
 

AppArmor (abreviatura de "Application Armor" o "Armadura de Aplicación") es un módulo de seguridad para el kernel de Linux que protege el sistema operativo y las aplicaciones de posibles amenazas. Actúa como una capa de seguridad adicional que restringe lo que los programas pueden hacer.

¿Para qué sirve?

La función principal de AppArmor es restringir las capacidades de un programa. Esto significa que, incluso si un atacante logra explotar una vulnerabilidad en una aplicación, AppArmor puede limitar el daño que esa aplicación puede causar. 🛡️ Por ejemplo, un perfil de AppArmor para un navegador web podría impedir que este acceda a archivos confidenciales en tu sistema, aunque el navegador sea comprometido.

En esencia, AppArmor complementa el modelo tradicional de permisos de Linux (Control de Acceso Discrecional o DAC) con un Control de Acceso Obligatorio (MAC), que impone reglas más estrictas y centralizadas.


¿Cómo funciona?

AppArmor funciona asociando a cada programa un perfil de seguridad. Este perfil es un conjunto de reglas que define qué recursos del sistema puede usar la aplicación, como:

  • Archivos y directorios: a qué archivos puede leer, escribir o ejecutar.

  • Capacidades del kernel: qué funciones avanzadas del sistema puede usar.

  • Acceso a la red: a qué puertos puede conectarse.

Estos perfiles se almacenan como archivos de texto en el directorio /etc/apparmor.d/. El kernel de Linux consulta estos perfiles antes de cada operación del programa para determinar si la acción está permitida.

Los perfiles de AppArmor pueden estar en dos modos:

  • Modo estricto (enforcing): El perfil aplica las reglas de manera estricta y bloquea cualquier acción no permitida, registrando la violación.

  • Modo relajado (complain): El perfil no bloquea las acciones, solo registra las violaciones. Este modo es útil para probar perfiles y ver qué acciones necesitarían ser permitidas sin interrumpir el funcionamiento normal del programa.

A diferencia de su competidor SELinux (otro módulo de seguridad de Linux), AppArmor se considera más fácil de usar y configurar porque se basa en las rutas de los archivos en lugar de en etiquetas complejas, lo que lo hace más accesible para un usuario promedio.

Configurar AppArmor implica crear o modificar perfiles de seguridad para programas específicos. Aquí te explico los pasos clave:

1. Verificar el estado de AppArmor

Primero, debes asegurarte de que AppArmor esté instalado y en ejecución. En la mayoría de las distribuciones de Linux (como Ubuntu o SUSE), viene preinstalado. Puedes verificarlo con el siguiente comando:

sudo apparmor_status

Este comando te mostrará los programas que tienen perfiles cargados, ya sea en modo estricto (enforcing) o en modo relajado (complain).


2. Crear un perfil básico

Para crear un nuevo perfil, AppArmor proporciona herramientas que te ayudan a generar un perfil inicial observando el comportamiento de un programa. La más común es aa-genprof.

  1. Entrar en modo relajado: Si el programa ya tiene un perfil en modo estricto, primero ponlo en modo relajado para que AppArmor no bloquee las acciones, solo las registre.

    sudo aa-complain /ruta/al/ejecutable

  2. Generar el perfil: Ejecuta el comando aa-genprof seguido de la ruta completa del programa que quieres perfilar.

    sudo aa-genprof /ruta/al/ejecutable

    Esto pondrá el perfil en modo de aprendizaje.

  3. Ejecutar el programa: Ahora, usa el programa como lo harías normalmente, realizando todas las acciones que debería poder hacer (abrir archivos, conectarse a la red, etc.). AppArmor registrará estas acciones.

  4. Finalizar la generación: Cuando hayas terminado, regresa a la terminal donde ejecutaste aa-genprof y presiona la tecla 'S' (para 'Scan') y luego 'G' (para 'Go'). La herramienta te guiará a través de una serie de preguntas sobre las acciones registradas, pidiéndote que permitas, niegues o delegues el acceso. Al final, se generará el perfil.


3. Editar un perfil manualmente

Los perfiles de AppArmor son archivos de texto planos ubicados en /etc/apparmor.d/. Puedes editar un perfil existente o el que acabas de generar para afinar las reglas.

Un perfil se ve más o menos así:

#include <tunables/global>

/usr/bin/programa {
  #include <abstractions/base>

  /var/log/app.log r,
  /etc/app/config.conf r,
  /home/*/documents/ r,
  /home/*/videos/ rw,

  # Denegar el acceso a la red
  deny network,
}
  • r: acceso de solo lectura.

  • w: acceso de escritura.

  • x: acceso de ejecución.

  • k: bloqueo de archivos.

  • m: acceso de mapeo de memoria.

  • rwk: una combinación de lectura, escritura y bloqueo.


4. Cargar un perfil y cambiar su modo

Una vez que hayas modificado un perfil, debes recargarlo en AppArmor para que los cambios surtan efecto.

  1. Cargar el perfil:

    sudo apparmor_parser -r /etc/apparmor.d/ruta.al.perfil

    El flag -r recarga el perfil.

  2. Cambiar a modo estricto: Si el perfil está en modo relajado, puedes ponerlo en modo estricto para que comience a bloquear las acciones no permitidas.

    sudo aa-enforce /ruta/al/ejecutable

5. Consideraciones adicionales

  • Aislamiento de aplicaciones: Usa AppArmor para crear entornos seguros para aplicaciones, especialmente aquellas que procesan datos de fuentes no confiables (ej. navegadores web, servidores de correo).

  • Perfiles predeterminados: Muchas distribuciones de Linux ya incluyen perfiles predeterminados para programas comunes como nginx, MySQL o DHCP. Puedes modificarlos para adaptarlos a tus necesidades.

  • Sintaxis de globbing: AppArmor soporta comodines (*, ?, []) para especificar rutas de archivos de manera flexible.

 

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC