¿Qué es el apparmor?

93

Escucho mucho sobre Aparmor, quiero saber lo siguiente:

  • ¿Qué es el apparmor?
  • ¿Cómo funciona el apparmor?
Alvar
fuente

Respuestas:

92

Lo que es

Apparmor es un sistema de control de acceso obligatorio (o MAC). Utiliza mejoras del kernel LSM para restringir los 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 aplicación hacen cumplir las reglas de ese perfil e informan intentos de violación en syslogo auditd. Los perfiles en modo de queja no aplican ninguna regla de perfil, solo registran los 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 vendrán con sus propias propiedades y se pueden encontrar más en el apparmor-profilespaquete.

Puede instalar apparmor-profilesejecutando 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 malo que intenta instalar malware que eliminará mi homecarpeta, Apparmor tiene límites en Firefox, pero evita que haga algo que no quiero (como acceder a mi música, documentos, etc.). De esta manera, incluso si su aplicación se ve comprometida, no se puede hacer daño.

Cómo funciona

El apparmor-utilspaquete contiene herramientas de línea de comandos para configurar Apparmor. Utilizándolo, puede cambiar el modo de ejecución de Apparmor, encontrar 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/

  • Puede 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 reclamo, qué procesos se definen en cumplimiento / reclamo, etc.
  • Para poner un perfil en modo de queja que utiliza sudo aa-complain /path/to/bin, ¿dónde /path/to/binestá la bincarpeta de programas ? Por ejemplo, ejecutar: sudo aa-complain /usr/bin/firefoxpondrá a Firefox en modo de queja.
  • Se utiliza sudo aa-enforce /path/to/binpara imponer un perfil de programas.
  • Puede cargar todos los perfiles en modos de queja / imposición con sudo aa-complain /etc/apparmor.d/*y sudo aa-enforce.d/*respectivamente.

Para cargar un perfil en el núcleo que usaría apparmor_parser. Puede volver a cargar perfiles utilizando el -rparámetro

  • Para cargar un perfil use:, cat /etc/apparmor.d/profile.name | sudo apparmor_parser -aque imprime efectivamente el contenido de profile.nameen el analizador de Apparmor.
  • Para recargar un perfil, usa el -rparámetro, así:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
  • Para recargar todos los perfiles de Apparmor use: sudo service apparmor reload

Para desactivar un perfil que vincula al /etc/apparmor.d/disable/uso de lnla siguiente manera: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/a continuación, ejecute: sudo apparmor_parser -R /etc/apparmor.d/profile.name.

Nota: ¡No confundaapparmor_parser -rconapparmor_parser -R ELLOS NO SON LO MISMO!

  • Para volver a habilitar un perfil, elimine el enlace simbólico /etc/apparmor.d/disable/y cárguelo usando el -aparámetrosudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • Puede deshabilitar Apparmor con sudo service apparmor stopy eliminar el módulo del kernel usandosudo update-rc.d -f apparmor defaults
  • Inicie Apparmor con sudo service apparmor starty cargue los módulos del núcleo consudo update-rc.d apparmor defaults

Perfiles

Los perfiles se almacenan en /etc/apparmor.d/y se nombran después de la ruta completa al ejecutable que perfilan, reemplazando '/' con '.'. Por ejemplo, /etc/apparmor.d/bin.pinges el perfil de pingin /bin.

Hay dos tipos principales de entradas utilizadas en los perfiles:

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

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

Veamos el perfil para ping, ubicado en etc/apparmor.d/bin.ping, como un 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 globalen 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_rawpermite que la aplicación acceda a la CAP_NET_RAW Posix.1ecapacidad.

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

/etc/modules.conf r,Le rda a la aplicación privilegios de lectura para/etc/modules.conf

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

Aquí hay una lista de permisos que puede usar:

  • r - leer
  • w - escribir
  • ux - Ejecución sin restricciones
  • Ux - Ejecución sin restricciones - fregar el entorno
  • px - Ejecución discreta del perfil
  • Px - Ejecución discreta del perfil - friegue el ambiente
  • ix - Heredar ejecutar
  • m - permitir PROT_EXECcon mmap(2)llamadas
  • l - enlace

Fuentes

Seth
fuente
Entonces, ¿es como un programa que actúa como usuario y no tiene los permisos para modificar la mayoría de los archivos del sistema?
Izkata
Si y no. Configura un perfil que define lo que pueden hacer ciertas aplicaciones. Luego agrega programas a ese perfil y eso limita lo que los programas en ese perfil pueden hacer. Entonces, es como un usuario porque solo puede acceder a lo que el administrador (usted) dice que puede en el perfil.
Seth
Ah, entonces los perfiles son como grupos de usuarios para programas;)
Izkata
Sí, mucho así;)
Seth
¿Crees que apparmor podría usarse para bloquear todas las conexiones a Internet y decir quién está tratando de acceder? ¿y en base a ese registro creamos permisos para cada aplicación? la idea es hacer que funcione como Zonalarm en window $, y como viejos "firewalls por aplicación" en linux como LeopardFlower y ProgramGuard (creo que ya no son compilables), y también hay uno nuevo llamado Douane y usa Un módulo de kernel para hacer que las cosas funcionen.
Acuario Power
6

AppArmor es un sistema de control de acceso obligatorio (MAC) que es una mejora de kernel (LSM) para limitar los programas a un conjunto limitado de recursos. El modelo de seguridad de AppArmor es vincular los atributos de control de acceso a los 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. Los perfiles de AppArmor pueden estar en uno de dos modos: aplicación y queja. Los perfiles cargados en el modo de aplicación darán lugar a la aplicación de la política definida en el perfil, así como a los informes de intentos de violación de la política (ya sea a través de syslog o auditados). Los perfiles en modo de queja no aplicarán la política, sino que informarán los intentos de violación de la política.

AppArmor es diferente de algunos otros sistemas MAC en Linux en que está basado en rutas, permite mezclar perfiles de aplicación y modo de queja, utiliza archivos de inclusión para facilitar el desarrollo y tiene una barrera de entrada mucho menor que otros sistemas MAC populares.

AppArmor es una tecnología establecida que se vio por primera vez en Immunix y luego se integró en Ubuntu, Novell / SUSE y Mandriva. La funcionalidad principal de AppArmor se encuentra en el núcleo principal de Linux desde 2.6.36 en adelante; AppArmor, Ubuntu y otros desarrolladores están trabajando para fusionar la funcionalidad adicional de AppArmor en el núcleo de la línea principal.

Tengo algunos enlaces más útiles para usted: Wiki.Ubuntu.com Ubuntuforums.org

Guías de Apparmor para Ubuntu 12.04 y Ubuntu 12.10

Espero que te ayude.

rɑːdʒɑ
fuente
3

Aquí hay una cita del wiki de Apparmor :

AppArmor es un sistema de seguridad de aplicaciones Linux eficaz y fácil de usar. AppArmor protege de manera proactiva el sistema operativo y las aplicaciones de 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 completamente a qué recursos del sistema pueden acceder las aplicaciones individuales y con qué privilegios. Con AppArmor se incluyen varias políticas predeterminadas, y mediante una combinación de análisis estático avanzado y herramientas basadas en el aprendizaje, las políticas de AppArmor para aplicaciones muy complejas se pueden implementar con éxito en cuestión de horas.

Adeline Dale
fuente