Muchas vulnerabilidades de seguridad se producen por fallos en los programas de confianza. Los programas de confianza se ejecutan con privilegios que algunos atacantes desean tener, por lo que ese programa deja de ser de confianza si tiene un fallo que permita al atacante conseguir esos privilegios.
Novell® AppArmor es una solución de seguridad de aplicaciones diseñada específicamente para reducir al mínimo los privilegios de los programas sospechosos. AppArmor permite al administrador especificar el dominio de actividades que el programa puede realizar desarrollando un perfil de seguridad para esa aplicación, que consiste en una lista de archivos a los que puede acceder el programa y las acciones que puede llevar a cabo.
El robustecimiento de un sistema informático requiere la reducción al mínimo del número de programas que otorgan privilegios y, seguidamente, la aplicación de toda la seguridad posible a los programas. Con Novell AppArmor, lo único que necesita es definir el perfil de los programas que están expuestos a ataques en su entorno, con lo que se reduce drásticamente la cantidad de trabajo necesario para robustecer el equipo. Los perfiles de AppArmor aplican directivas que garantizan que los programas hacen lo que se supone que deben hacer, pero nada más.
Los administradores sólo tienen que preocuparse de las aplicaciones vulnerables a los ataques y generar perfiles para ellas. El robustecimiento de un sistema, por lo tanto, se reduce a crear y mantener el conjunto de perfiles de AppArmor y a monitorizar las violaciones de las directivas o las excepciones registradas por la utilidad de creación de informes de AppArmor.
La creación de perfiles de AppArmor con los que limitar las aplicaciones es muy directa e intuitiva. AppArmor se distribuye con varias herramientas que asisten en la creación de perfiles. AppArmor no requiere ninguna tarea de programación ni de gestión de guiones. La única tarea que deberá realizar el administrador es establecer una directiva del acceso más estricto y ejecutar permisos para cada aplicación que deba controlarse.
La actualización o la modificación de los perfiles de aplicaciones sólo son precisas cuando cambia la configuración del software o el ámbito de actividades necesario. AppArmor ofrece herramientas intuitivas para gestionar la actualización y la modificación de los perfiles.
Los usuarios no notarán en absoluto la presencia de AppArmor. Se ejecuta “en segundo plano” y no requiere ningún tipo de interacción por parte del usuario. El rendimiento tampoco se verá afectado de forma perceptible por el uso de AppArmor. Si alguna actividad de la aplicación no queda cubierta por un perfil de AppArmor, o si se impide alguna actividad, el administrador tendrá que ajustar el perfil de esa aplicación para que cubra ese tipo de comportamiento.
En esta guía se describen las tareas básicas que hay que llevar a cabo con AppArmor para proteger el sistema de forma eficaz. Para obtener información más detallada, consulte la Guía de administración de Novell AppArmor 2.0.
Los usuarios que opten por la instalación de un escritorio GNOME o KDE pueden omitir esta sección, ya que Novell AppArmor se instala por defecto con esas opciones.
Si no instala ninguno de estos escritorios, o incluso si va a instalar un entorno basado totalmente en texto, haga lo siguiente para instalar los paquetes necesarios utilizando el gestor de paquetes de YaST.
Inicie la sesión como usuario Root y abra YaST.
En el Centro de control de YaST, seleccione +
Utilice la función de búsqueda de YaST (palabra clave “AppArmor”) para instalar los siguientes paquetes:
apparmor-parser
libapparmor
apparmor-docs
yast2-apparmor
apparmor-profiles
apparmor-utils
Seleccione todos esos paquetes para instalarlos y después elija YaST resuelve todas las dependencias e instala todos los paquetes sin que el usuario tenga que intervenir.
Cuando YaST haya terminado de actualizar la configuración del sistema, haga clic en para salir del gestor de paquetes.
Cuando se haya instalado Novell AppArmor, habilítelo explícitamente para asegurarse de que se iniciará cuando se abra el sistema. Utilice el módulo Servicios del sistema (niveles de ejecución) de YaST para esta tarea:
Inicie la sesión como usuario Root y abra YaST.
Abra + (Niveles de ejecución).
En la lista de servicios mostrada, seleccione apparmor. Consulte la Figura 4.3, “Habilitación de Novell AppArmor con YaST”.
Haga clic en para habilitar AppArmor de forma permanente.
Haga clic en para aceptar los ajustes.
Mediante la herramienta de niveles de ejecución de YaST, es posible habilitar de forma permanente los servicios: estos ajustes se mantienen tras rearrancar el sistema. Para habilitar AppArmor de forma temporal (únicamente mientras dure una sesión), haga lo siguiente:
Inicie la sesión como usuario Root y abra YaST.
Inicie +
Defina la opción con el valor haciendo clic en ++
Confirme sus ajustes con la opción
Para preparar una instalación correcta de Novell AppArmor en el sistema, tenga especial cuidado con los siguientes elementos:
Determine las aplicaciones para las que hay que crear perfiles. Obtenga más información al respecto en Sección 4.4.3.1, “Selección de las aplicaciones para las que crear perfiles”.
Cree los perfiles necesarios como se describe de forma somera en Sección 4.4.3.2, “Creación y modificación de perfiles”. Compruebe los resultados y ajuste los perfiles según sea necesario.
Haga un seguimiento de lo que ocurre en el sistema ejecutando informes de AppArmor y resolviendo los eventos de seguridad. Consulte Sección 4.4.3.3, “Configuración de notificaciones de eventos e informes de Novell AppArmor”.
Actualice los perfiles cuando se produzcan cambios en el entorno o cuando tenga que reaccionar a los eventos de seguridad registrados por la herramienta de informes de AppArmor. Consulte Sección 4.4.3.4, “Actualización de los perfiles”.
Sólo es necesario proteger los programas que están expuestos a ataques con su configuración concreta, por lo tanto, sólo se usarán los perfiles de las aplicaciones que se ejecuten realmente. Utilice la siguiente lista para determinar los candidatos más probables:
Los programas (servidores y clientes) tienen puertos de red abiertos y los agentes de red son programas servidores que responden a esos puertos. Los clientes de los usuarios (por ejemplo, los clientes de correo electrónico o los navegadores Web) también tienen puertos de red abiertos y otorgan privilegios.
Los guiones CGI de Perl, las páginas PHP y aplicaciones Web mucho más complejas se pueden invocar mediante un navegador Web.
Los programas que ejecuta periódicamente el daemon cron leen datos de entrada de varios orígenes.
Para averiguar qué procesos se están ejecutando actualmente con puertos de red abiertos y pueden requerir un perfil que los limite, ejecute el comando unconfined como usuario Root.
Ejemplo 4.1. Resultado del comando unconfined
19848 /usr/sbin/cupsd not confined 19887 /usr/sbin/sshd not confined 19947 /usr/lib/postfix/master not confined 29205 /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'
Todos los procesos del ejemplo anterior con la etiqueta not confined (sin limitar) pueden requerir un perfil personalizado para limitarlos. Los indicados con la etiqueta confined by (limitado por) ya están protegidos por AppArmor.
![]() | Información adicional |
|---|---|
Para obtener más información acerca de cómo elegir las aplicaciones que necesitan perfiles, consulte el capítulo Selección de programas que inmunizar (Guía de administración de Novell AppArmor 2.0). | |
Novell AppArmor en SUSE Linux incluye un conjunto preconfigurado de perfiles para las aplicaciones más importantes. Asimismo, puede utilizar AppArmor para crear sus propios perfiles para un conjunto de aplicaciones definido en /etc/apparmor/README.profiles.
Existen dos formas de gestionar perfiles. Una consiste en utilizar la interfaz gráfica ofrecida por los módulos de Novell AppArmor de YaST; la otra es utilizar las herramientas de la línea de comandos ofrecidas por el propio paquete de AppArmor. Ambos métodos funcionan básicamente igual.
Si se ejecuta sin limitación, como se describe en Sección 4.4.3.1, “Selección de las aplicaciones para las que crear perfiles”, se identifica una lista de aplicaciones que pueden necesitar un perfil para que funcionen de forma segura.
Siga estos pasos para crear un perfil para cada aplicación:
Como usuario Root, permita que AppArmor cree un esbozo del perfil de la aplicación ejecutando el comando genprof nombre_programa.
O bien
Ejecute ++ e indique la vía completa de la aplicación para la que desea crear un perfil.
Se creará un perfil básico y AppArmor pasará a modo de aprendizaje, lo que significa que registrará cualquier actividad del programa que esté ejecutando, pero sin limitarlo aún.
Ejecute todas las acciones posibles con la aplicación para que AppArmor obtenga una imagen clara de sus actividades.
Permita que AppArmor analice los archivos de registro generados en el Paso 2. Puede hacerlo pulsando la tecla S en genprof
O bien
Haga clic en en el y siga las instrucciones del asistente hasta completar el perfil.
AppArmor explorará los registros que haya guardado durante la ejecución de la aplicación y le pedirá que defina los derechos de acceso de cada evento registrado. Puede definirlos para cada archivo o utilizar configuraciones globales.
Cuando se hayan definido todos los permisos de acceso, el perfil se establecerá en el modo de aplicación. El perfil se aplicará y AppArmor restringirá la aplicación según este perfil recién creado.
Si ha iniciado genprof para una aplicación que ya tuviera un perfil en el modo de queja, este perfil seguirá en el modo de aprendizaje hasta que salga de este ciclo de adiestramiento. Para obtener más información acerca de cómo cambiar el modo de un perfil, consulte la sección Modo de aprendizaje o de queja (Capítulo 3, Creación de perfiles de Novell AppArmor, Guía de administración de Novell AppArmor 2.0) y la sección Modo de aplicación (Capítulo 3, Creación de perfiles de Novell AppArmor, Guía de administración de Novell AppArmor 2.0).
Pruebe los ajustes del perfil efectuando todas las tareas que necesita con la aplicación que acaba de limitar. Por norma general, el programa limitado se ejecutará sin problemas y no será consciente de las actividades de AppArmor. Sin embargo, si nota algún comportamiento anómalo en la aplicación, compruebe los registros del sistema para ver si AppArmor está poniendo demasiadas limitaciones a la aplicación. Encontrará los registros oportunos en /var/log/messages o ejecutando el comando dmesg.
Si observa algo parecido al siguiente ejemplo, puede indicar que AppArmor está limitando demasiado la aplicación:
AppArmor: REJECTING w access to /var/run/nscd/socket (traceroute(2050) profile /usr/sbin/traceroute active /usr/sbin/traceroute)
Para ajustar el perfil, vuelva a ejecutar el como se describe anteriormente y permita que analice los mensajes de registro relativos a esta aplicación concreta. Determine los derechos de acceso o las restricciones cuando YaST lo solicite.
![]() | Información adicional |
|---|---|
Para obtener más información acerca de la creación y modificación de perfiles, consulte el Capítulo Creación de perfiles de Novell AppArmor (Guía de administración de Novell AppArmor 2.0). | |
Configure las notificaciones de eventos en Novell AppArmor para poder revisar los eventos de seguridad. La notificación de eventos es una función de Novell AppArmor que informa a un destinatario concreto por correo electrónico cuando se produce una actividad sistemática de Novell AppArmor con el nivel de gravedad seleccionado. Esta función está disponible actualmente a través de la interfaz de YaST.
Para configurar las notificaciones de eventos en YaST, siga estos pasos:
Asegúrese de que hay un servidor de correo ejecutándose en el sistema para enviar las notificaciones de eventos.
Inicie la sesión como usuario Root y abra YaST. A continuación, seleccione +
En la sección seleccione
Defina una frecuencia para cada tipo de informe ( y ), introduzca la dirección de correo electrónico que recibirá los informes y determine la gravedad de los eventos que se deben registrar. Si desea incluir eventos de gravedad desconocida en los informes, marque la casilla
![]() | Nota |
|---|---|
A no ser que esté familiarizado con las categorías de eventos de AppArmor, elija la opción para que se le notifiquen los eventos de todos los niveles de gravedad. | |
Salga de este cuadro de diálogo haciendo clic en + para aplicar los ajustes.
Configure informes de Novell AppArmor. Mediante el uso de informes, es posible leer información importante sobre los eventos de seguridad de Novell AppArmor incluida en los archivos de registro sin tener que escudriñar manualmente en la maraña de mensajes que sólo resultan de utilidad para la herramienta logprof. Se puede reducir el tamaño del informe filtrando por periodo de tiempo o por nombre de programa.
Para configurar los informes de AppArmor, siga este procedimiento:
Inicie la sesión como usuario Root y abra YaST. Seleccione +
Seleccione el tipo de informe que desee examinar o configurar: o
Modifique la frecuencia de generación de informes, la dirección de correo electrónico, el formato de exportación y la ubicación de los informes haciendo clic en e introduciendo los datos necesarios.
Para ejecutar un informe del tipo seleccionado, haga clic en
Puede desplazarse por los informes archivados de un tipo concreto haciendo clic en e indicando el tipo de informe.
O bien
Suprima los informes que no necesite o añada otros nuevos.
![]() | Información adicional |
|---|---|
Para obtener más información acerca de la configuración de las notificaciones de eventos en Novell AppArmor, consulte la sección “Establecimiento de notificaciones de eventos” (Capítulo 4, Gestión de aplicaciones con perfiles, Guía de administración de Novell AppArmor 2.0). Para obtener más información acerca de la configuración de los informes, consulte la sección “Informes” (Capítulo 4, Gestión de aplicaciones con perfiles, Guía de administración de Novell AppArmor 2.0). | |
El software y la configuración del sistema cambian con el tiempo. Como resultado, puede que sea preciso ajustar la configuración de los perfiles de AppArmor de cuando en cuando. AppArmor comprueba el registro del sistema para detectar violaciones de directivas u otros eventos de AppArmor y le permite ajustar el conjunto de perfiles en consecuencia. También se puede tratar cualquier comportamiento de una aplicación que quede fuera de lo definido en el perfil utilizando el
Para actualizar el conjunto de perfiles, siga este procedimiento:
Inicie la sesión como usuario Root y abra YaST.
Inicie +
Cuando se le solicite, ajuste los derechos de acceso o ejecución de cualquier recurso o archivo ejecutable que se haya registrado.
Salga de YaST tras contestar a todas las preguntas. Los cambios se aplicarán al perfil oportuno.
![]() | Información adicional |
|---|---|
Para obtener más información sobre la actualización de los perfiles a partir de los registros del sistema, consulte la sección “Actualización de perfiles a partir de entradas de registro del sistema” (Capítulo 3, Creación de perfiles de Novell AppArmor, Guía de administración de Novell AppArmor 2.0). | |