AppArmor

Tutorial de Debian AppArmor

Tutorial de Debian AppArmor
AppArmor es un sistema de control de acceso obligatorio para Linux. En un sistema de control de acceso obligatorio (MAC), el kernel impone restricciones en rutas, sockets, puertos y varios mecanismos de entrada / salida. Fue desarrollado por Immunex y ahora es mantenido por SUSE. Ha sido parte del kernel de Linux desde la versión 2.6.36.

Si bien el kernel de Linux proporciona un buen aislamiento de los usuarios y un sólido control de permisos de archivos, un MAC como AppArmor proporciona permisos y protección más detallados contra muchas amenazas desconocidas. Si se encuentra una vulnerabilidad de seguridad en el kernel de Linux u otro demonio del sistema, un sistema AppArmor bien configurado puede evitar el acceso a rutas críticas que podrían ser vulnerables al problema.

AppArmor puede funcionar de manera efectiva en dos modos: hacer cumplir y quejarse. Hacer cumplir es el estado de producción predeterminado de AppArmor, mientras que quejarse es útil para desarrollar un conjunto de reglas basado en patrones de operación reales y para registrar violaciones. Se configura a través de archivos de texto sin formato en un formato relativamente amigable y tiene una curva de aprendizaje más corta que la mayoría de los otros sistemas de control de acceso obligatorios.

Instalación

Para instalar AppArmor en Debian, ejecute (como root):

apto instalar apparmor apparmor-utils auditd

Puede omitir auditado si no necesita herramientas de generación de perfiles.

Si desea instalar perfiles iniciales y adicionales, ejecute:

apto instalar apparmor-profiles apparmor-profiles-extra

Dado que AppArmor es un módulo del kernel de Linux, debe habilitarlo con los siguientes comandos:

mkdir -p / etc / default / grub.D

Cree el archivo / etc / default / grub.d / apariencia.cfg con el siguiente contenido:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 security = apparmor"

Guarde y salga, luego ejecute:

update-grub

Entonces reinicia.

Existe un debate si esto debería hacerse automáticamente. Es posible que desee consultar el final de este informe de error para ver si esto ha cambiado desde el momento de escribir este artículo.

Una vez que reinicie, puede verificar si AppArmor está habilitado ejecutando:

estado-aa

Este comando enumerará los perfiles de AppArmor cargados y enumerará su estado actual de cumplimiento (aplicado, quejas, etc.)

Si tu corres:

ps auxZ | grep -v '^ ilimitado'

Verá una lista de programas que están limitados por un perfil de AppArmor. Un programa confinado es aquel que se ve afectado y limitado (ya sea de forma pasiva, en modo de queja o de forma activa en modo forzado) por AppArmor.

Cambio de modos / Desactivación de AppArmor

Si desea deshabilitar AppArmor porque un programa no funciona, es posible que desee considerar colocar el perfil en modo de queja en lugar del modo forzado. Para hacer esto, ejecute (como root o vía sudo):

aa-quejarse / ruta / a / programa

Por ejemplo, si ping no funciona correctamente, use:

aa-quejarse / usr / bin / ping

Una vez que un perfil está en modo de queja, puede examinar el registro a través de / var / log / syslog o con journalctl -xe en sistemas systemd (Debian 8.x, Jessie y superior).

Una vez que haya editado el perfil para eliminar o ajustar la restricción, puede activar el modo de aplicación nuevamente para el binario con:

aa-imponer / ruta / a / programa

En el ejemplo anterior, reemplace / ruta / a / programa con la ruta completa al binario afectado por el perfil en cuestión.

Si tiene un problema con un programa y está en modo de queja, los registros proporcionarán información específica sobre qué acción se denegó. El campo de operación explicará lo que el programa intentó hacer, el campo de perfil el perfil específico afectado, el nombre especificará el objetivo de la acción (i.mi. qué archivo se detuvo de una operación de lectura o escritura), y las máscaras solicitadas y denegadas indican si la operación, tanto solicitada por el programa como denegada según el perfil, fue de lectura o lectura-escritura.

Puede deshabilitar un perfil por completo ejecutando:

aa-deshabilitar / ruta / a / programa

O puede deshabilitar AppArmor por completo editando el archivo: / etc / default / grub.d / apariencia.cfg para contener:

GRUB_CMDLINE_LINUX_DEFAULT = ”$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0”

Luego corriendo:

update-grub

Y reiniciando su sistema.

Trabajar con perfiles de AppArmor

Los perfiles de AppArmor residen en / etc / apparmor.directorio d /. Si instala el paquete de paquetes apparmor-profiles y apparmor-profiles-extra, encontrará perfiles en / usr / share / doc / apparmor-profiles y / usr / share / doc / apparmor-profiles / extra. Para activarlos, copie los archivos en / etc / apparmor.d luego edítelos para asegurarse de que contienen los valores que desea, guárdelos y luego ejecute:

servicio apparmor recarga

Si desea recargar solo un perfil, ejecute:

apparmor_parser -r / etc / apparmor.d / perfil

Donde "perfil" es el nombre del perfil en cuestión.

No se recomienda simplemente copiar los perfiles y los perfiles adicionales en / etc / apparmor.d directorio sin editarlos manualmente. Algunos perfiles pueden ser antiguos y, sin duda, algunos no contendrán los valores que desea. Si los copia todos, al menos configúrelos para que se quejen para que pueda monitorear las violaciones sin interrumpir los programas en producción:

cd / etc / apparmor.D
por f en *.*; hacer aa-quejarse / etc / apparmor.d / $ f; hecho

Puede usar el comando aa-enforce individualmente para habilitar los perfiles que desea mantener, ajustar los que causan problemas y hacerlos cumplir, o eliminar los que no necesita ejecutando aa-disable o eliminando el archivo de perfil de / etc / apparmor.D.

Creación de un perfil de AppArmor

Antes de crear un perfil personalizado, querrá buscar en / etc / apparmor.d y / usr / share / doc / apparmor-profiles directorios para un perfil existente que cubre el binario en cuestión. Para buscar estos, ejecute:

buscar / usr / share / doc / apparmor-profiles | grep "programa" -i

Reemplazar programa con el programa que desea proteger con AppArmor. Si encuentra uno, cópielo en / etc / apparmor.dy luego edite el archivo en su editor de texto favorito.

Cada perfil consta de tres secciones principales: incluye, capacidades y rutas. Puede encontrar una referencia útil en la documentación de SuSE.

Incluye

Incluye proporciona una sintaxis que puede utilizar dentro del archivo. Usan la sintaxis C / C ++ #include <> y generalmente hacen referencia a abstracciones que se encuentran en / etc / apparmor.directorio d / abstractions.

Capacidades

La sección de capacidades, que normalmente se encuentra después de las inclusiones, enumera las capacidades específicas que el programa puede realizar. Por ejemplo, puede dejar que un programa realice una operación setuid con:

capacidad setuid

La capacidad net_bind_service permite que un programa se vincule a un puerto de red. Si no concede esto, un demonio de servidor como Apache no puede abrir el puerto 80 y escuchar. Sin embargo, omitir esta capacidad puede proporcionar una excelente seguridad para los procesos en los que no confía en la red.

Rutas

Puede enumerar las rutas que el programa puede leer (y posiblemente escribir). Por ejemplo, si desea permitir que el programa acceda al archivo / etc / passwd, agregue:

/ etc / passwd r

En el perfil. Tenga en cuenta la "r": esto significa solo lectura. Si cambia esto a "w", se permitirá la escritura en esta ruta o archivo.

Incluso si permite una ruta en AppArmor, todavía está sujeta a las restricciones del sistema de archivos de Linux (i.mi. configurado con chmod, chgrp y chown). Sin embargo, AppArmor seguirá proporcionando una capa adicional de protección en caso de que esos mecanismos se vean comprometidos.

Conclusión

La clave para una implementación exitosa de AppArmor es establecer perfiles para quejarse y luego hacer cumplir. Un examen cuidadoso de los registros le brindará las rutas y capacidades mínimas necesarias para una operación exitosa del programa. Al asignar estos y no más, aumentará drásticamente la seguridad de su sistema.

Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...