¿Qué es apparmor?

90

Escuché hablar mucho sobre apparmor, quiero saber lo siguiente:

  • ¿Qué es apparmor?
  • ¿Cómo funciona Apparmor?
pregunta Alvar 05.01.2013 - 03:09

3 respuestas

87

Qué es

Apparmor es un sistema de control de acceso obligatorio (MAC). Utiliza mejoras de kernel LSM para restringir programas a ciertos recursos. AppArmor hace esto con los perfiles cargados en el kernel cuando se inicia el sistema. Apparmor tiene dos tipos de modos de perfil, aplicación y queja. Los perfiles en modo de cumplimiento hacen cumplir las reglas de ese perfil e informan sobre intentos de violación en syslog o auditd . Los perfiles en modo de queja no imponen ninguna regla de perfil, solo registra intentos de violación.

En Ubuntu Apparmor está instalado por defecto. Limita las aplicaciones a los perfiles para determinar a qué archivos y permisos debe acceder un programa. Algunas aplicaciones incluirán sus propias propiedades y se puede encontrar más en el paquete apparmor-profiles .

Puede instalar apparmor-profiles ejecutando sudo apt-get install apparmor-profiles .

Encontré un buen ejemplo de Apparmor en los foros de Ubuntu que reescribí para esta publicación.

  

Apparmor es un marco de seguridad que evita que las aplicaciones se vuelvan malvadas. Por ejemplo: si ejecuto Firefox y visito un sitio incorrecto que intenta instalar malware que eliminará mi carpeta home , Apparmor tiene límites en Firefox, aunque le impide hacer lo que yo no quiera (como acceder a mi música, documentos, etc.) De esta forma, incluso si su aplicación se ve comprometida, no se puede dañar.

Cómo funciona

El paquete apparmor-utils contiene herramientas de línea de comandos para configurar Apparmor. Utilizándolo, puede cambiar el modo de ejecución de Apparmor, buscar el estado de un perfil, crear nuevos perfiles, etc.

Estos son los comandos más comunes:

NOTA: : los perfiles se almacenan en /etc/apparmor.d/

  • Puedes verificar el estado de Apparmor con sudo apparmor_status . Obtendrá una lista de todos los perfiles * cargados, todos los perfiles en modo de cumplimiento, todos los perfiles en modo de queja, qué procesos se definen en aplicar / quejarse, etc.

  • Para poner un perfil en el modo quejarse , utiliza sudo aa-complain /path/to/bin , donde /path/to/bin es la carpeta de los programas bin . Por ejemplo, ejecutar: sudo aa-complain /usr/bin/firefox colocará Firefox en modo de queja.

  • Usas sudo aa-enforce /path/to/bin para aplicar un perfil de programa.

  • Puede cargar todos perfiles en modos de queja / aplicación con sudo aa-complain /etc/apparmor.d/* y sudo aa-enforce.d/* , respectivamente.

Para cargar un perfil en el núcleo, usaría apparmor_parser . Puede volver a cargar perfiles usando el parámetro -r .

  • Para cargar un perfil use: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a , que efectivamente imprime los contenidos de profile.name en el analizador de Apparmor.

  • Para volver a cargar un perfil, usa el parámetro -r , así: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r

  • Para volver a cargar todos los perfiles de Apparmor use: sudo service apparmor reload

Para deshabilitar un perfil, vincúlelo a /etc/apparmor.d/disable/ usando ln como este: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ luego ejecute: sudo apparmor_parser -R /etc/apparmor.d/profile.name .

NOTA: No confundas apparmor_parser -r con apparmor_parser -R ¡NO SON LO MISMO!

  • Para volver a habilitar un perfil, elimine el enlace simbólico en /etc/apparmor.d/disable/ y luego cárguelo usando el parámetro -a . sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a

  • Puedes inhabilitar Apparmor con sudo service apparmor stop y eliminar el módulo kernel usando sudo update-rc.d -f apparmor defaults

  • Comience Apparmor con sudo service apparmor start y cargue módulos kernel con sudo update-rc.d apparmor defaults

Perfiles

Los perfiles se almacenan en /etc/apparmor.d/ y reciben el nombre de la ruta completa al perfil ejecutable, reemplazando '/' por '.'. Por ejemplo, /etc/apparmor.d/bin.ping es el perfil de ping en /bin .

Hay dos tipos principales de entradas utilizadas en los perfiles:

  1. Entradas de ruta determinan a qué archivos puede acceder una aplicación.

  2. Las entradas de
  3. Capacidad determinan qué privilegios puede usar un proceso.

Veamos el perfil de ping , ubicado en etc/apparmor.d/bin.ping , como ejemplo.

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global> Incluye el archivo global en el directorio tunables , esto permite que las declaraciones pertenecientes a múltiples aplicaciones se coloquen en un archivo común.

/bin/ping flags=(complain) establece la ruta al programa perfilado y establece el modo para quejarse.

capability net_raw permite que la aplicación acceda a la capacidad CAP_NET_RAW Posix.1e .

/bin/ping mixr permite que la aplicación lea y ejecute el acceso al archivo.

/etc/modules.conf r, El r otorga a la aplicación lectura privilegios para /etc/modules.conf

NOTA: Después de crear / editar un perfil, necesita volver a cargar el perfil para que los cambios surtan efecto.

Aquí hay una lista de permisos que puede usar:

  • r - leer

  • w - write

  • ux - Ejecución sin restricciones

  • Ux - Ejecución sin restricciones: restriegue el entorno

  • px - Ejecutar perfil discreto

  • Px - Ejecución de perfil discreto - restriegue el entorno

  • ix - Heredar ejecutar

  • m - permite PROT_EXEC con mmap(2) calls

  • l - enlace

FUENTES:

enlace

enlace

enlace

enlace

    
respondido por el Seth 05.01.2013 - 04:17
6
  

AppArmor es un sistema de control de acceso obligatorio (MAC) que es un kernel   Mejora (LSM) para limitar los programas a un conjunto limitado de recursos.   El modelo de seguridad de AppArmor es unir los atributos de control de acceso   programas en lugar de a los usuarios. El confinamiento de AppArmor se proporciona a través de   perfiles cargados en el núcleo, generalmente en el arranque. Perfiles de AppArmor   puede estar en uno de dos modos: aplicación y queja. Perfiles cargados   en el modo de cumplimiento dará lugar a la aplicación de la política definida   en el perfil, así como informar los intentos de violación de política (ya sea   vía syslog o auditd). Los perfiles en modo de queja no harán cumplir   política, sino que informa los intentos de violación de política.

     

AppArmor es diferente de algunos otros sistemas MAC en Linux en que   está basado en ruta, permite la mezcla de la aplicación y el modo de queja   perfiles, los usos incluyen archivos para facilitar el desarrollo y tiene un nivel mucho más bajo   barrera a la entrada que otros sistemas MAC populares.

     

AppArmor es una tecnología establecida que se vio por primera vez en Immunix, y luego   integrado en Ubuntu, Novell / SUSE y Mandriva. Core AppArmor   la funcionalidad está en el kernel principal de Linux desde 2.6.36 en adelante;   el trabajo está en curso por AppArmor, Ubuntu y otros desarrolladores para fusionarse   funcionalidad adicional de AppArmor en el núcleo de la línea principal.

Recibí algunos enlaces más útiles para ti: Wiki.Ubuntu.com Ubuntuforums.org

Guías de Apparmor para Ubuntu 12.04 & amp; Ubuntu 12.10

Espero que eso te ayude.

    
respondido por el Ten-Coin 05.01.2013 - 04:13
3

Aquí hay una cita de la wiki de Apparmor :

  

AppArmor es un sistema de seguridad de aplicaciones Linux efectivo y fácil de usar. AppArmor protege proactivamente el sistema operativo y las aplicaciones contra amenazas externas o internas, incluso ataques de día cero, al imponer un buen comportamiento y evitar que se exploten incluso fallas de aplicaciones desconocidas. Las políticas de seguridad de AppArmor definen por completo a qué recursos del sistema pueden acceder las aplicaciones individuales y con qué privilegios. Una serie de políticas predeterminadas se incluyen con AppArmor, y utilizando una combinación de análisis estático avanzado y herramientas basadas en el aprendizaje, las políticas de AppArmor para incluso aplicaciones muy complejas se pueden implementar con éxito en cuestión de horas.

    
respondido por el Adeline Dale 09.01.2013 - 08:09

Lea otras preguntas en las etiquetas