Apparmor Admin Guide Es

  • Uploaded by: Hugo
  • 0
  • 0
  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Apparmor Admin Guide Es as PDF for free.

More details

  • Words: 28,707
  • Pages: 134
Novell AppArmor 2.0 02/28/2006

www.novell.com Guía de administración

Guía de administración de Novell AppArmor 2.0 Autores: Leona Beatrice Campbell, Jana Jaeger Esta publicación es propiedad intelectual de Novell Inc. Su contenido puede duplicarse, ya sea en su totalidad o en parte, siempre que haya un símbolo de copyright bien visible en cada copia. Toda la información recogida en esta publicación se ha compilado prestando toda la atención posible al más mínimo detalle. Sin embargo, esto no garantiza una precisión total. Ni SUSE LINUX GmbH, los autores ni los traductores serán responsables de los posibles errores o las consecuencias que de ellos pudieran derivarse. Novell, el logotipo de Novell, el logotipo N y SUSE son marcas comerciales registradas de Novell, Inc. en los Estados Unidos y en otros países. * Linux es una marca registrada de Linus Torvalds. El resto de marcas comerciales de otros fabricantes pertenecen a sus propietarios respectivos. Si tiene alguna sugerencia o comentario, diríjalos a [email protected].

Tabla de contenidos

Acerca de esta guía

v

1 Inmunización de programas

1

2 Selección de programas que inmunizar

3

2.1 2.2

Inmunización de programas que otorgan privilegios . . . . . . . . . . . Inspección de los puertos abiertos para inmunizar programas . . . . . . .

3 Creación de perfiles de Novell AppArmor 3.1 3.2 3.3 3.4 3.5 3.6 3.7

11

Componentes y sintaxis de los perfiles . . . . . . . . . . . . . . . . 11 Creación y gestión de perfiles de Novell AppArmor . . . . . . . . . . 14 Creación de perfiles de Novell AppArmor con la interfaz gráfica de usuario de YaST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Creación de perfiles de Novell AppArmor mediante la interfaz de línea de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Dos métodos de creación de perfiles . . . . . . . . . . . . . . . . . 45 Nombres de vías y englobamiento . . . . . . . . . . . . . . . . . . 66 Modos de permiso de acceso a archivos . . . . . . . . . . . . . . . 67

4 Gestión de aplicaciones con perfiles 4.1 4.2 4.3 4.4 4.5

3 4

Monitorización de las aplicaciones protegidas Establecimiento de notificaciones de eventos Informes . . . . . . . . . . . . . . . . Reacción a los eventos de seguridad . . . . Mantenimiento de los perfiles de seguridad .

71 . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

71 72 76 98 99

5 Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache 5.1 5.2

103

Apache ChangeHat . . . . . . . . . . . . . . . . . . . . . . . . Configuración de Apache para mod-apparmor . . . . . . . . . . . .

6 Asistencia técnica 6.1 6.2 6.3 6.4 6.5

Glosario

Actualización en línea de Novell AppArmor Uso de las páginas Man . . . . . . . . . Información adicional . . . . . . . . . Solución de problemas . . . . . . . . . Informe sobre errores de AppArmor . . .

104 112

115 . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . .

115 115 117 118 120

123

Acerca de esta guía Novell® AppArmor está diseñado para ofrecer servicios de seguridad de fácil manejo a las aplicaciones de los servidores y las estaciones de trabajo. Novell AppArmor es un sistema de control de acceso que permite especificar qué archivos puede leer, escribir y ejecutar cada programa. AppArmor protege las aplicaciones mediante la imposición de buenas prácticas de comportamiento sin basarse en firmas de ataques, de forma que se puedan prevenir estos ataques incluso si intentan explotar vulnerabilidades anteriormente desconocidas. Novell AppArmor consta de: • Una biblioteca de perfiles de AppArmor para las aplicaciones comunes de Linux* en la que se describen los archivos a los que el programa necesita acceder. • Una biblioteca de clases de base de perfil de AppArmor (bloques de creación de perfiles) necesarios para las actividades de las aplicaciones comunes, como las búsquedas DNS o la autenticación de usuarios. • Un paquete de herramientas para el desarrollo y la mejora de perfiles de AppArmor, para poder cambiar los perfiles existentes de forma que se adapten a sus necesidades concretas y para crear nuevos perfiles para sus aplicaciones locales o personalizadas. • Gran cantidad de aplicaciones especialmente modificadas compatibles con AppArmor para ofrecer una seguridad mejorada en forma de limitación única de subprocesos, incluido Apache. • El módulo del núcleo cargable en Novell AppArmor y los guiones de control asociados para aplicar directivas de AppArmor en el sistema SUSE® Linux. Esta guía trata los tres temas siguientes: Inmunización de programas Describe las operaciones de Novell AppArmor. Selección de programas que inmunizar Describe los tipos de programas que deben contar con perfiles de Novell AppArmor creados para ellos.

Creación de perfiles de Novell AppArmor Describe cómo utilizar las herramientas de Novell AppArmor para inmunizar sus propios programas o programas de otros fabricantes que pueda tener instalados en el sistema SUSE Linux. También ayuda a añadir, editar o suprimir perfiles que se hayan creado para las aplicaciones. Gestión de aplicaciones con perfiles Describe cómo efectuar el mantenimiento de los perfiles de Novell AppArmor, lo que implica el seguimiento de problemas y preocupaciones habituales. Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache Permite crear subperfiles para el servidor Web Apache con los que será posible limitar más estrechamente pequeñas secciones del procesamiento de la aplicación Web. Asistencia técnica Describe las opciones de asistencia para este producto. Glosario Ofrece una lista de términos junto a sus definiciones.

1 Comentarios Nos gustaría recibir sus comentarios o sugerencias acerca de este manual y del resto de documentación incluida en este producto. Utilice la función de comentarios del usuario situada en la parte inferior de las páginas de la documentación en línea e introduzca ahí sus comentarios.

2 Convenciones de la documentación En este manual se utilizan las siguientes convenciones tipográficas: • /etc/passwd: nombres de archivos y de directorios. • espacio reservado: se sustituye espacio reservado por el valor real. • PATH: variable de entorno PATH.

vi

Guía de administración de Novell AppArmor 2.0

• ls, --help: comandos, opciones y parámetros. • usuario: usuarios o grupos. •

Alt , Alt + F1 : tecla que pulsar o combinación de teclas. Aparecen en mayúsculas, tal y como se muestran en el teclado.

• Archivo, Archivo → Guardar como: elementos de menú y botones. • Pingüinos bailarines (capítulo Pingüinos, ↑Referencia): referencia a un capítulo en otro libro.

Acerca de esta guía

vii

Inmunización de programas

1

Novell® AppArmor ofrece tecnología de inmunización que protege las aplicaciones de SUSE Linux frente a las vulnerabilidades inherentes que tienen. Tras instalar Novell AppArmor, configurar perfiles de Novell AppArmor y reiniciar el equipo, el sistema queda inmunizado, ya que empieza a aplicar directivas de seguridad de Novell AppArmor. La protección de programas con Novell AppArmor se denomina inmunización. Novell AppArmor configura una serie de perfiles de aplicación por defecto para proteger los servicios estándar de Linux. Para proteger otras aplicaciones, utilice las herramientas de Novell AppArmor a fin de crear perfiles para las aplicaciones que desee proteger. En este capítulo se describe la filosofía de inmunización de programas. Pase directamente al Capítulo 3, Creación de perfiles de Novell AppArmor (p. 11) si considera que ya está preparado para crear y gestionar perfiles de Novell AppArmor. Novell AppArmor ofrece control de acceso perfeccionado para servicios de red, indicando los archivos que cada programa tiene permitido leer, escribir y ejecutar. De esta forma se garantiza que cada programa haga lo que se supone que debe hacer, y nada más. Novell AppArmor es un sistema de prevención de intrusiones en el host, o un esquema de control de acceso obligatorio, optimizado para servidores. Anteriormente, los esquemas de control de acceso se centraban en los usuarios, ya que se creaban para grandes sistemas compartidos. Por otra parte, los servidores de redes modernos no suelen permitir que los usuarios inicien sesiones, sino que ofrecen una gama de servicios de red para los usuarios, como acceso a Web, correo, archivos e impresión. Novell AppArmor controla el acceso otorgado a los servicios de red y a otros programas para evitar que se puedan explotar las debilidades del sistema. Inmunización de programas

1

Selección de programas que inmunizar

2

Novell® AppArmor pone en cuarentena programas para proteger el resto del sistema de los daños provocados por un proceso afectado. Deberá inspeccionar los puertos para comprobar para qué programas se deben crear perfiles (consulte la Sección 2.2, “Inspección de los puertos abiertos para inmunizar programas” (p. 4)) y crear perfiles para todos los programas que otorguen privilegios (Sección 2.1, “Inmunización de programas que otorgan privilegios” (p. 3)).

2.1 Inmunización de programas que otorgan privilegios Los programas que necesitan perfiles son los que otorgan privilegios. Los siguientes programas tienen acceso a los recursos a los que la persona que usa el programa no tiene, de forma que otorgan el privilegio de acceso al usuario cuando éste lo necesita. Tareas del daemon cron Los programas que ejecuta de forma periódica el daemon cron. Estos programas leen los datos de entrada de diversas fuentes y pueden ejecutarse con privilegios especiales, a veces incluso con privilegios de usuario Root. Por ejemplo, cron puede ejecutar /usr/bin/updatedb todos los días para mantener actualizada la base de datos locate con privilegios suficientes para leer el nombre de todos los archivos del sistema. Para obtener instrucciones sobre cómo localizar este tipo de programas, consulte la Sección 2.2.1, “Inmunización de tareas de cron” (p. 6).

Selección de programas que inmunizar

3

Aplicaciones Web Los programas que se pueden invocar mediante un navegador Web, por ejemplo, guiones CGI de Perl, páginas PHP y aplicaciones Web mucho más complejas. Para obtener instrucciones sobre cómo localizar este tipo de programas, consulte la Sección 2.2.2, “Inmunización de aplicaciones Web” (p. 7). Agentes de red Programas (de servidores o de clientes) que tienen puertos de red abiertos. Los clientes del usuario, como los clientes de correo electrónico o los navegadores Web, aunque parezca sorprendente, otorgan privilegios. Estos programas se ejecutan con el privilegio de escritura en los directorios personales del usuario y procesan datos de entrada de fuentes remotas potencialmente hostiles, como sitios Web hostiles o código dañino enviado por correo electrónico. Para obtener instrucciones sobre cómo localizar este tipo de programas, consulte la Sección 2.2.3, “Inmunización de agentes de red” (p. 9). Por otro lado, no es necesario crear perfiles para los programas que no cuentan con privilegios. Por ejemplo, un guión de shell puede abrir el programa cp para copiar un archivo. Puesto que cp no cuenta con su propio perfil, hereda el perfil del guión de shell superior, de modo que puede copiar cualquier archivo que el perfil del guión de shell principal permita leer y escribir.

2.2 Inspección de los puertos abiertos para inmunizar programas Un método automático de localizar los daemon de servidor de red para los que hay que crear perfiles es utilizar la herramienta unconfined. También se puede ver simplemente un informe con esta información en la interfaz gráfica de usuario de YaST (consulte “Informe de auditoría de aplicaciones” (p. 82) para obtener más información). La herramienta unconfined utiliza el comando netstat -nlp para inspeccionar los puertos abiertos desde el interior del equipo y detectar los programas asociados con estos puertos y, a continuación, inspeccionar el conjunto de perfiles de Novell AppArmor que se haya cargado. La herramienta unconfined informará a continuación de estos programas y del perfil de Novell AppArmor asociado con cada uno de ellos, o indicará que no hay “nada” si el programa no está limitado.

4

Guía de administración de Novell AppArmor 2.0

NOTA Si crea un perfil nuevo, deberá reiniciar el programa para el que ha creado el perfil a fin de que unconfined detecte e informe del estado del nuevo programa con perfil. A continuación se muestra un ejemplo de salida de unconfined: 2325 /sbin/portmap not confined 3702❶ /usr/sbin/sshd❷ confined by '/usr/sbin/sshd❸ (enforce)' 4040 /usr/sbin/ntpd confined by '/usr/sbin/ntpd (enforce)' 4373 /usr/lib/postfix/master confined by '/usr/lib/postfix/master (enforce)' 4505 5274 5592 7146

/usr/sbin/httpd2-prefork confined by '/usr/sbin/httpd2-prefork (enforce)' /sbin/dhcpcd not confined /usr/bin/ssh not confined /usr/sbin/cupsd confined by '/usr/sbin/cupsd (complain)'



La primera sección es un número. Se trata del número ID de proceso (PID) del programa de escucha.



La segunda sección es una cadena que representa la vía completa del programa de escucha.



La última sección indica el perfil que limita el programa, si existe alguno.

NOTA Unconfined requiere privilegios de usuario Root y no se debe ejecutar desde un shell que se encuentre limitado por un perfil de AppArmor. La herramienta unconfined no distingue entre una interfaz de red y otra, así que informa de todos los procesos sin limitación, incluso de los que puedan estar a la escucha de una interfaz LAN interna. La búsqueda de aplicaciones cliente de redes de usuarios depende de las preferencias del usuario. La herramienta unconfined detecta e informa de los puertos de red abiertos por las aplicaciones cliente, pero sólo cuando esas aplicaciones cliente se están ejecutando en el momento del análisis. Esto es un problema, ya que los servicios de red tienden a ejecutarse en todo momento, mientras que las aplicaciones cliente de red sólo suelen ejecutarse cuando el usuario se interesa por ellas.

Selección de programas que inmunizar

5

Aplicar perfiles de Novell AppArmor a aplicaciones cliente de redes de usuario también depende de las preferencias del usuario, y Novell AppArmor está más diseñado para servidores que para estaciones de trabajo. Por lo tanto, dejaremos la creación de perfiles para las aplicaciones de este tipo como un ejercicio para el usuario. Para limitar de forma agresiva aplicaciones de escritorio, el comando unconfined admite la opción "paranoid", que informa de todos los procesos en ejecución y de los perfiles de AppArmor correspondientes que podrían estar asociados, o no, a cada proceso. El usuario de unconfined podrá entonces decidir si estos programas necesitan un perfil de AppArmor. Si cuenta con perfiles nuevos o modificados, puede enviarlos a la lista de correo [email protected] junto con un ejemplo de uso del comportamiento de la aplicación que haya utilizado. El equipo de AppArmor revisará y podrá enviar el trabajo a openSUSE. No podemos garantizar que se incluyan todos los perfiles, pero haremos lo que esté en nuestras manos para incluirlos, de tal forma que los usuarios finales puedan contribuir a los perfiles de seguridad que se incluyen con openSUSE.

2.2.1 Inmunización de tareas de cron Para localizar los programas que ejecuta el daemon cron, tendrá que inspeccionar la configuración de cron local. Desafortunadamente, la configuración de cron es muy compleja, así que hay que inspeccionar muchos archivos. Las tareas periódicas de cron se ejecutan desde estos archivos: /etc/crontab /etc/cron.d/* /etc/cron.daily/* /etc/cron.hourly/* /etc/cron.monthly/* /etc/cron.weekly/*

Las tareas del Root de cron se pueden editar con el comando crontab -e, y es posible mostrar una lista de las tareas del Root de cron con crontab -l. Para efectuar estas acciones debe ser el usuario Root. Tras localizar estos programas, puede utilizar el programa Asistente para añadir perfiles para crear perfiles para ellos. Consulte la Sección 3.3.1, “Adición de perfiles mediante el asistente” (p. 18).

6

Guía de administración de Novell AppArmor 2.0

2.2.2 Inmunización de aplicaciones Web Para buscar aplicaciones Web, se debe investigar la configuración del servidor Web. El servidor Web Apache tiene muchas opciones de configuración, y las aplicaciones Web se pueden almacenar en muchos directorios distintos, según la configuración local. SUSE Linux almacena por defecto las aplicaciones Web en /srv/www/cgi-bin/  . En la medida en que sea posible, cada aplicación Web debería tener un perfil de Novell AppArmor. Tras localizar estos programas, puede utilizar el Asistente para añadir perfiles de AppArmor para crear perfiles para ellos. Consulte la Sección 3.3.1, “Adición de perfiles mediante el asistente” (p. 18).

Programas CGI y limitación de subprocesos en las aplicaciones Web Puesto que los programas CGI los ejecuta el servidor Web Apache, se debe modificar el propio perfil de Apache, usr.sbin.httpd2-prefork (para Apache2 en SUSE Linux), para añadir permisos de ejecución para cada uno de estos programas. Por ejemplo, al añadir la línea /srv/www/cgi-bin/mi_contador_visitas.pl rpx se garantizan permisos a Apache para que ejecute el guión Perl mi_contador _visitas.pl y se requiere que haya un perfil dedicado para mi_contador _visitas.pl. Si mi_contador_impactos.pl no tiene un perfil asociado, la regla deberá decir /srv/www/cgi-bin/mi_contador_impactos.pl rix para provocar que mi_contador_impactos.pl herede el perfil usr.sbin .httpd2-prefork. Algunos usuarios pueden encontrar incómodo tener que especificar permisos de ejecución para cada guión CGI que pueda invocar Apache. En su lugar, el administrador puede otorgar acceso controlado a colecciones de guiones CGI. Por ejemplo, si se añade la línea /srv/www/cgi-bin/*.{pl,py,pyc} rix, se permitirá que Apache ejecute todos los archivos de /srv/www/cgi-bin/ que terminen en .pl (guiones de Perl) y en .py o .pyc (guiones de Python). Del mismo modo, la sección ix de la regla provoca que los guiones de Python hereden el perfil de Apache, lo que resulta adecuado si no se desea escribir perfiles individuales para cada guión de Python.

Selección de programas que inmunizar

7

NOTA Si desea disponer de la funcionalidad del módulo de confinamiento de subprocesos (mod-apparmor) cuando las aplicaciones Web manejen módulos de Apache (mod_perl y mod_php), utilice las funciones de ChangeHat al añadir un perfil en YaST o en la línea de comandos. Para aprovechar la limitación de subprocesos, consulte la Sección 5.1, “Apache ChangeHat” (p. 104). A la hora de crear perfiles para aplicaciones Web que utilicen mod_perl y mod_php se requiere una manipulación ligeramente distinta. En este caso, el “programa” es un guión que interpreta directamente el módulo del proceso de Apache, por lo que no se produce la opción exec. En su lugar, la versión de Novell AppArmor de Apache llama al comando change_hat() que da nombre a un subperfil (un “hat”) que se corresponde con el nombre del URI solicitado. NOTA El nombre que se presenta para que lo ejecute el guión puede no ser el URI, según la forma en que se haya configurado dónde debe buscar Apache los guiones de módulos. Si ha configurado Apache para que coloque los guiones en un sitio distinto, estos nombres distintos aparecerán en syslog cuando Novell AppArmor se queje de violaciones de acceso. Consulte el Capítulo 4, Gestión de aplicaciones con perfiles (p. 71). Para los guiones mod_perl y mod_php, es el nombre del guión de Perl o de la página PHP solicitados. Por ejemplo, si se añade este subperfil, se permite que la página localtime.php se ejecute y acceda a la hora local del sistema: /usr/sbin/httpd2-prefork^/cgi-bin localtime.php { /etc/localtime /srv/www/cgi-bin/localtime.php /usr/lib/locale/** }

r, r, r,

Si no se ha definido ningún subperfil, la versión de Novell AppArmor de Apache aplica el hat DEFAULT_URI. Este subperfil es básicamente suficiente para mostrar una página Web HTML. El hat DEFAULT_URI que incluye Novell AppArmor por defecto es el siguiente: /usr/sbin/suexec2 ixr, /var/log/apache2/** rwl, /home/*/public_html/**

8

r,

Guía de administración de Novell AppArmor 2.0

/srv/www/htdocs/** /srv/www/icons/*.{gif,jpg,png} /usr/share/apache2/**

r, r, r,

Si desea tener un único perfil de Novell AppArmor para todas las páginas Web y los guiones CGI proporcionados por Apache, un buen enfoque consiste en editar el subperfil DEFAULT_URI.

2.2.3 Inmunización de agentes de red Para localizar daemons de servidor de red para los que se deban crear perfiles, habrá que inspeccionar los puertos abiertos en el equipo, tener en cuenta los programas que responden a esos puertos y crear perfiles para tantos programas de este tipo como sea posible. Si crea perfiles para todos los programas con puertos de red abiertos, los atacantes no podrán acceder al sistema de archivos del equipo sin tener que pasar por una directiva de perfil de Novell AppArmor. Explore manualmente el servidor en busca de puertos de red abiertos desde el exterior del equipo mediante un escáner, como nmap, o desde el interior del equipo con netstat. Inspeccione a continuación el equipo para determinar qué programas responden a los puertos abiertos descubiertos.

Selección de programas que inmunizar

9

Creación de perfiles de Novell AppArmor

3

En este capítulo se explica cómo crear y gestionar perfiles de Novell® AppArmor. Estará listo para crear perfiles de Novell AppArmor en cuanto haya seleccionado los programas cuyos perfiles desee crear. Para obtener ayuda al respecto, consulte el Capítulo 2, Selección de programas que inmunizar (p. 3).

3.1 Componentes y sintaxis de los perfiles En esta sección se describe la sintaxis y la composición de los perfiles de Novell AppArmor. En la Sección 3.1.1, “División de un perfil de Novell AppArmor en las partes que lo componen” (p. 11) encontrará un ejemplo que muestra esta sintaxis.

3.1.1 División de un perfil de Novell AppArmor en las partes que lo componen Los componentes del perfil de Novell AppArmor se denominan "reglas de Novell AppArmor". Actualmente hay dos tipos principales de reglas de Novell AppArmor: las entradas de vía y las entradas de capacidad. Las entradas de vía especifican los elementos a los que puede acceder el proceso en el sistema de archivos; las de capacidad proporcionan un control más ajustado sobre las acciones que un proceso limitado puede llevar

Creación de perfiles de Novell AppArmor

11

a cabo mediante otras llamadas del sistema que requieren privilegios. Las entradas include son un tipo de meta regla o directiva que incorporan entradas de vía y de capacidad procedentes de otros archivos. El modo más sencillo de explicar en qué consiste un perfil y cómo crear uno es mostrar los detalles de un perfil de demostración. Por ejemplo, examine el siguiente perfil para el programa /sbin/klogd: # perfil para limitar klogd❶ /sbin/klogd ❷ {❸ #include ❹ capability sys_admin,❺ /boot/* r❻, /proc/kmsg r, /sbin/klogd r, /var/run/klogd.pid lw, }



Un comentario que indica el nombre del programa limitado por este perfil. Los comentarios siempre deben estar precedidos por el signo #.



Vía completa al programa limitado.



Las llaves {} sirven como contenedor para incluir declaraciones de otros perfiles, así como entradas de vía y capacidad.



Esta directiva incorpora componentes de Novell AppArmor para simplificar los perfiles.



Las declaraciones de entradas de capacidad activan las 29 capacidades del borrador POSIX.1e.



Entrada de vía que especifica las partes del sistema de archivos a las que puede acceder el programa. La primera parte de una entrada de vía especifica la vía completa de un archivo (incluido el englobamiento de expresiones regulares) y la segunda parte indica los modos de acceso permitidos (r para lectura, w para escritura y x para ejecución). Un espacio en blanco de cualquier clase (espacio o tabulación) puede preceder a los nombres de vías o separarlos de los modos de acceso. El espacio en blanco entre el modo de acceso y la coma final es opcional.

Cuando se crea un perfil para un programa, el programa sólo puede acceder a los archivos, modos y capacidades POSIX especificadas en el perfil. Estas restricciones son adiciones a los controles de acceso nativos de Linux.

12

Guía de administración de Novell AppArmor 2.0

Ejemplo: Para conseguir la capacidad CAP_CHOWN, el programa debe disponer de acceso a CAP_CHOWN mediante los controles de acceso convencionales de Linux (normalmente, para ello debe ser un proceso propiedad del usuario Root) e incluir la capacidad chown en su perfil. Del mismo modo, para escribir en el archivo /foo/bar, el programa deberá tener el identificador de usuario y los bits de modo correctos configurados en los atributos del archivo (consulte las páginas Man de chmod y chown) e incluir /foo/bar w en su perfil. Los intentos de vulnerar las reglas de Novell AppArmor quedan registrados en syslog. En muchos casos, las reglas de Novell AppArmor evitan que funcione un ataque porque impiden el acceso a los archivos necesarios y, en cualquier caso, las limitaciones de Novell AppArmor reducirían los daños que un atacante pudiera causar en el conjunto de archivos permitidos por Novell AppArmor.

3.1.2 #include Las declaraciones #include son directivas que incorporan componentes de otros perfiles de Novell AppArmor para simplificar la estructura de los perfiles. Los archivos include recuperan los permisos de acceso de los programas. Utilizando una declaración include, puede proporcionar al programa acceso a las vías de directorios o archivos que también necesiten otros programas. Al utilizar este tipo de declaraciones, podrá reducir el tamaño de los perfiles. Por defecto, la declaración #include añade al final /etc/apparmor.d/, que es la ubicación donde espera encontrar el archivo include, al principio del nombre de la vía. Al contrario que otras declaraciones de perfiles (pero de forma similar a los programas en C), las líneas #include no terminan con una coma. Para que le resulte más sencillo crear los perfiles de sus aplicaciones, Novell AppArmor proporciona dos clases de declaraciones #include: las abstracciones y las porciones de programa.

Abstracciones Las abstracciones son declaraciones #include agrupadas por tareas de aplicación comunes. Estas tareas incluyen el acceso a mecanismos de autenticación, el acceso a rutinas de servicios de nombres, requisitos gráficos comunes y contabilidad del sistema. Los archivos descritos en estas abstracciones son específicos de la tarea nombrada; los programas que requieren uno de estos archivos suelen requerir otros archivos incluidos Creación de perfiles de Novell AppArmor

13

en el archivo de abstracción (depende de la configuración local y de los requisitos concretos del programa). Las abstracciones se encuentran en /etc/apparmor.d/ abstractions/.

Porciones de programa Las porciones de programa son controles de acceso para programas específicos que un administrador del sistema podría necesitar controlar basándose en directivas del sitio local. Cada porción es utilizada por un único programa. Se proporcionan para facilitar las modificaciones de directivas del sitio local, así como las actualizaciones de las directivas proporcionadas por Novell AppArmor. Los administradores pueden modificar las directivas de estos archivos de modo que se ajusten a sus necesidades en lugar de modificar los perfiles de los programas, lo que simplifica la tarea de unir las actualizaciones de directivas de Novell AppArmor para aplicar las directivas en cada sitio. Las restricciones de acceso de las porciones de programas suelen ser muy abiertas y están diseñadas para que los usuarios puedan acceder a sus archivos del modo menos intrusivo posible, manteniendo al mismo tiempo la protección de los recursos del sistema. La excepción a esta regla es la serie de porciones de programa postfix*. Estos perfiles se utilizan para facilitar la abstracción de la ubicación de los archivos binarios postfix. No es recomendable reducir los permisos de la serie postfix*. Las porciones de programa se encuentran en /etc/apparmor.d/program-chunks/.

3.1.3 Entradas de capacidad (POSIX.1e) Las declaraciones de capacidad consisten sencillamente en la palabra "capability", seguida del nombre de una capacidad POSIX.1e tal y como están definidas en la página Man capabilities(7).

3.2 Creación y gestión de perfiles de Novell AppArmor Existen tres modos de crear y gestionar los perfiles de Novell AppArmor, dependiendo del tipo de entorno informático que prefiera. Puede utilizar la interfaz gráfica de YaST (GUI de YaST), el modo ncurses de YaST basado en texto (ncurses de YaST) o la interfaz de línea de comandos. Las tres opciones son efectivas para crear y mantener 14

Guía de administración de Novell AppArmor 2.0

los perfiles, al tiempo que ofrecen opciones basadas en las necesidades concretas de los usuarios. La interfaz de línea de comandos requiere conocer los comandos de Linux y utilizar ventanas de terminal. Los tres métodos emplean herramientas especializadas de Novell AppArmor para crear los perfiles, de modo que no es necesario hacerlo manualmente, tarea que exigiría mucho tiempo.

3.2.1 Utilización de la interfaz gráfica de usuario de YaST Para emplear la interfaz gráfica de usuario de YaST a fin de crear y gestionar perfiles de Novell AppArmor, consulte la Sección 3.3, “Creación de perfiles de Novell AppArmor con la interfaz gráfica de usuario de YaST” (p. 16).

3.2.2 Utilización de la función ncurses de YaST La función ncurses de YaST puede utilizarse para crear y gestionar perfiles de Novell AppArmor y es la opción más adecuada para usuarios que cuentan con conexiones con el servidor con un ancho de banda limitado. A esta función se puede acceder escribiendo yast mientras inicia la sesión en una ventana o consola del terminal como usuario Root. La función ncurses de YaST cuenta con las mismas funciones que la interfaz gráfica de usuario de YaST. Consulte las instrucciones de la Sección 3.3, “Creación de perfiles de Novell AppArmor con la interfaz gráfica de usuario de YaST” (p. 16) para crear y gestionar perfiles de Novell AppArmor en ncurses de YaST, pero tenga en cuenta que el aspecto de las pantallas será distinto aunque su funcionalidad sea similar.

3.2.3 Utilización de la interfaz de línea de comandos La interfaz de línea de comandos requiere conocer los comandos de Linux y utilizar ventanas de terminal. Para emplear la interfaz de línea de comandos para crear y Creación de perfiles de Novell AppArmor

15

gestionar perfiles de Novell AppArmor, consulte la Sección 3.4, “Creación de perfiles de Novell AppArmor mediante la interfaz de línea de comandos” (p. 40). La interfaz de línea de comandos permite acceder a algunas herramientas que no están disponibles mediante los demás métodos de gestión de Novell AppArmor: complain Establece los perfiles en el modo de queja. Vuelva a definir el modo de aplicación cuando desee que el sistema comience a aplicar las reglas de los perfiles, en lugar de limitarse a registrar la información. Para obtener más información acerca de esta herramienta, consulte “Modo de aprendizaje o de queja” (p. 49). enforce Vuelve a definir los perfiles con el modo de aplicación y el sistema empieza a aplicar las reglas de los perfiles, en lugar de limitarse a registrar información. Para obtener más información acerca de esta herramienta, consulte “Modo de aplicación” (p. 50). unconfined Lleva a cabo una auditoría del servidor para encontrar procesos que estén ejecutándose y escuchando a la espera de conexiones de red, e informa de si están incluidos en perfiles. autodep Genera un esquema de perfil para un programa y lo carga en el módulo de Novell AppArmor en el modo de queja.

3.3 Creación de perfiles de Novell AppArmor con la interfaz gráfica de usuario de YaST Abra la interfaz gráfica de usuario de YaST iniciando YaST → Novell AppArmor en el menú principal. Novell AppArmor abre la interfaz de YaST tal y como se muestra a continuación:

16

Guía de administración de Novell AppArmor 2.0

NOTA También puede acceder a la interfaz gráfica de usuario de YaST abriendo una ventana de terminal, iniciando sesión como usuario Root e introduciendo el comando yast2.

En el marco derecho observará varios iconos de opciones de Novell AppArmor. Si Novell AppArmor no aparece en el marco izquierdo de la ventana de YaST, o bien los iconos de Novell AppArmor no aparecen, puede que sea necesario volver a instalar Novell AppArmor. Novell AppArmor permite realizar las acciones descritas a continuación. Haga clic en uno de los siguientes iconos de Novell AppArmor y seguidamente pase a la sección a la que se hace referencia: Asistente para añadir perfiles Para obtener información detallada, consulte la Sección 3.3.1, “Adición de perfiles mediante el asistente” (p. 18). Añadir perfil manualmente Permite añadir un perfil de Novell AppArmor para una aplicación del sistema sin la ayuda del asistente. Para obtener información detallada, consulte la Sección 3.3.2, “Adición manual de perfiles” (p. 24). Editar perfil Edita un perfil de Novell AppArmor existente en el sistema. Para obtener información detallada, consulte la Sección 3.3.3, “Edición de perfiles” (p. 30).

Creación de perfiles de Novell AppArmor

17

Suprimir perfil Permite suprimir un perfil de Novell AppArmor existente en el sistema. Para obtener información detallada, consulte la Sección 3.3.4, “Supresión de perfiles” (p. 31). Asistente para actualizar perfiles Para obtener información detallada, consulte la Sección 3.3.5, “Actualización de perfiles a partir de entradas del registro del sistema” (p. 32). Informes de AppArmor Para obtener información detallada, consulte la Sección 4.3, “Informes” (p. 76). Panel de control de AppArmor Para obtener información detallada, consulte la Sección 3.3.6, “Gestión de Novell AppArmor y del estado de los eventos de seguridad” (p. 37).

3.3.1 Adición de perfiles mediante el asistente El Asistente para añadir perfiles está diseñado para configurar los perfiles de Novell AppArmor utilizando las herramientas de perfiles de Novell AppArmor, genprof (generar perfil) y logprof (actualizar perfiles a partir de los registros del modo de aprendizaje). Para obtener más información acerca de estas herramientas, consulte la Sección 3.5.3, “Resumen de las herramientas de generación de perfiles” (p. 48). 1 Detenga la aplicación antes de realizar perfiles sobre ella para asegurarse de que el inicio de la aplicación esté incluido en el perfil. Para ello, asegúrese de que la aplicación o el daemon no se estén ejecutando antes de realizar el perfil. Por ejemplo, escriba /etc/init.d/PROGRAMA stop en una ventana de terminal tras iniciar sesión como usuario Root, donde PROGRAMA es el nombre del programa cuyo perfil desea crear. 2 Si no lo ha hecho ya, en la interfaz gráfica de usuario YaST, haga clic en Novell AppArmor → Asistente para añadir perfiles.

18

Guía de administración de Novell AppArmor 2.0

3 Introduzca el nombre de la aplicación o desplácese a la ubicación del programa. 4 Haga clic en Crear. De este modo se ejecutará una herramienta de Novell AppArmor llamada autodep, que lleva a cabo un análisis estático del programa cuyo perfil desea crear y carga un perfil aproximado en el módulo de Novell AppArmor. Para obtener más información acerca de autodep, consulte “autodep” (p. 48). Se abrirá la ventana del Asistente de perfiles de Novell AppArmor.

Creación de perfiles de Novell AppArmor

19

Novell AppArmor también establece en segundo plano el perfil en el modo de aprendizaje. Para obtener más información acerca del modo de aprendizaje, consulte “Modo de aprendizaje o de queja” (p. 49). 5 Ejecute la aplicación cuyo perfil desee crear. 6 Lleve a cabo tantas funciones de la aplicación como sea posible para que el modo de aprendizaje pueda registrar los archivos y directorios a los que el programa debe acceder para funcionar correctamente. 7 Haga clic en Explorar registro del sistema en busca de entradas que añadir a los perfiles para procesar los archivos de registro del modo de aprendizaje. De este modo se generará una serie de preguntas a las que deberá responder para guiar al asistente durante el proceso de generación del perfil de seguridad. NOTA Si aparece una solicitud para añadir hats, pase al Capítulo 5, Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache (p. 103). Las preguntas se dividen en dos categorías: • Un programa con perfil solicita un recurso no incluido en el perfil (consulte la Figura 3.1, “Excepción del modo de aprendizaje: control de acceso a recursos específicos” (p. 21)). La excepción del modo de aprendizaje requiere que el usuario permita o deniegue el acceso a un recurso específico. • El programa con perfil ejecuta otro programa y la transición del dominio de seguridad no está definida (consulte la Figura 3.2, “Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada” (p. 21)). La excepción del modo de aprendizaje requiere que el usuario defina los permisos de ejecución de una entrada. Cada uno de estos casos genera una serie de preguntas a las que deberá responder para añadir el recurso o el programa al perfil. Las dos figuras siguientes muestran un ejemplo de cada caso. Los pasos subsiguientes describen las opciones para responder a estas preguntas. Se abrirá la ventana del Asistente de perfiles de Novell AppArmor.

20

Guía de administración de Novell AppArmor 2.0

Figura 3.1 Excepción del modo de aprendizaje: control de acceso a recursos específicos

Figura 3.2 Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada

Creación de perfiles de Novell AppArmor

21

8 El Asistente para añadir perfiles comienza a sugerir entradas de vías de directorios a las que ha accedido la aplicación cuyo perfil está generando (tal y como se observa en la Figura 3.1, “Excepción del modo de aprendizaje: control de acceso a recursos específicos” (p. 21)) o a solicitar que defina permisos de ejecución para las entradas (tal y como se observa en la Figura 3.2, “Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada” (p. 21)). a En el caso de la Figura 3.1, “Excepción del modo de aprendizaje: control de acceso a recursos específicos”, de las siguientes opciones, seleccione la que satisfaga la solicitud de acceso (puede ser una entrada include sugerida, una versión global concreta de la vía o el nombre de vía real). Tenga en cuenta que no todas estas opciones estarán siempre disponibles. #include Sección de un perfil de Novell AppArmor que hace referencia a un archivo include. Los archivos include obtienen los permisos de acceso de los programas. Utilizando una declaración include, puede proporcionar al programa acceso a las vías de directorios o archivos que también necesiten otros programas. Al utilizar este tipo de declaraciones, podrá reducir el tamaño de los perfiles. Es recomendable seleccionar las entradas include cuando el sistema lo sugiera. Versión global Se accede haciendo clic en Global, tal y como se describe en el siguiente paso. Para obtener más información acerca de la sintaxis global, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Nombre real de vía La vía literal a la que debe acceder el programa para ejecutarse correctamente. b En el caso de la Figura 3.2, “Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada”, de las siguientes opciones, seleccione la que satisfaga la solicitud de acceso. Heredar Permanece en el mismo perfil de seguridad (perfil principal). Perfil Requiere que exista un perfil distinto para el programa ejecutado.

22

Guía de administración de Novell AppArmor 2.0

Unconfined Ejecuta el programa sin perfil de seguridad. AVISO A menos que sea absolutamente necesario, no ejecute programas sin limitación. Si selecciona la opción No limitado, el nuevo programa se ejecutará sin ninguna protección de AppArmor.

9 Después de seleccionar una vía de directorio, deberá procesarla como una entrada del perfil de Novell AppArmor haciendo clic en Permitir o en Denegar. Si no está satisfecho con la entrada de vía de directorio tal y como aparece, también puede utilizar las opciones Global o Editar. Las opciones disponibles para procesar las entradas del modo de aprendizaje y crear el perfil son las siguientes: Permitir Proporciona acceso al programa a las entradas de vías de directorio especificadas. El Asistente para añadir perfiles sugiere los permisos de acceso a los archivos. Para obtener más información acerca de este tema, consulte la Sección 3.7, “Modos de permiso de acceso a archivos” (p. 67). Denegar Haga clic en Denegar para impedir que el programa acceda a las entradas de vías de directorios especificadas. Global Al hacer clic en esta opción se modifica la vía de directorio (empleando comodines) para que incluya todos los archivos del directorio de entrada sugerido. Si hace doble clic se proporcionará acceso a todos los archivos y subdirectorios situados bajo el mostrado. Para obtener más información acerca de la sintaxis de englobamiento, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Global con ext. Modifica la vía de directorio original conservando la extensión del nombre de archivo. Un solo clic hace que /etc/apache2/file.ext se convierta en /etc/apache2/*.ext, añadiendo el comodín (asterisco) en lugar Creación de perfiles de Novell AppArmor

23

del nombre de archivo. De este modo el programa puede acceder a todos los archivos de los directorios sugeridos que acaben con la extensión .ext. Si se hace doble clic se proporcionará acceso a todos los archivos (con la extensión definida) y subdirectorios situados bajo el mostrado. Editar Permite editar la línea destacada. La nueva línea (editada) aparecerá al final de la lista. Abortar Cancela logprof, desechando todos los cambios de reglas introducidos hasta el momento y dejando intactos todos los perfiles, sin modificarlos. Finalizar Cierra logprof, guardando todos los cambios de reglas introducidos hasta el momento y modificando todos los perfiles en consecuencia. Haga clic en Permitir o en Denegar para cada entrada del modo de aprendizaje. Esto facilita la creación del perfil de Novell AppArmor. NOTA El número de entradas del modo de aprendizaje será directamente proporcional a la complejidad de la aplicación. Repita los pasos anteriores si necesita ejecutar más funciones de la aplicación. Cuando haya terminado, haga clic en Finalizar. En la siguiente ventana emergente, haga clic en Sí para salir del asistente para la creación de perfiles. El perfil se guardará y cargará en el módulo de Novell AppArmor.

3.3.2 Adición manual de perfiles Novell AppArmor permite crear un perfil de Novell AppArmor añadiendo entradas manualmente al perfil. Basta con seleccionar la aplicación para la que desee crear el perfil y luego añadir entradas. 1 Para añadir un perfil, abra YaST → Novell AppArmor. Se abrirá la interfaz de Novell AppArmor.

24

Guía de administración de Novell AppArmor 2.0

2 En Novell AppArmor, haga clic en Añadir perfil manualmente (consulte la Figura 3.3, “Adición manual de perfiles: selección de la aplicación” (p. 25)). Figura 3.3 Adición manual de perfiles: selección de la aplicación

3 Desplácese por el sistema para encontrar la aplicación cuyo perfil desee crear. 4 Cuando encuentre el perfil, selecciónelo y haga clic en Abrir. Aparecerá un perfil básico y vacío en la ventana Cuadro de diálogo de perfiles de Novell AppArmor.

Creación de perfiles de Novell AppArmor

25

5 En la ventana Cuadro de diálogo de perfiles de AppArmor, puede añadir, editar o suprimir entradas de perfiles de Novell AppArmor haciendo clic en los botones correspondientes y consultando las siguientes secciones: “Adición de entradas” (p. 26), “Edición de entradas” (p. 29) y “Edición de entradas” (p. 29). 6 Cuando haya terminado, haga clic en Terminado.

Adición de entradas En esta sección se explica la opción Añadir entrada, que encontrará en la Sección 3.3.2, “Adición manual de perfiles” (p. 24) o en la Sección 3.3.3, “Edición de perfiles” (p. 30). Al seleccionar Añadir entrada, aparecerá una lista desplegable que muestra los tipos de entrada que puede añadir al perfil de Novell AppArmor. • En la lista, seleccione una de las siguientes opciones: File (Archivo) En la ventana emergente, especifique la vía completa de un archivo, incluido el tipo de acceso permitido. Cuando termine, haga clic en Aceptar. Puede utilizar los englobamientos si es necesario. Para obtener información detallada sobre los englobamientos, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Para obtener información sobre los permisos de acceso a archivos, consulte la Sección 3.7, “Modos de permiso de acceso a archivos” (p. 67).

26

Guía de administración de Novell AppArmor 2.0

Directorio En la ventana emergente, especifique la vía completa de un directorio, incluido el tipo de acceso permitido. Puede utilizar los englobamientos si es necesario. Cuando termine, haga clic en Aceptar. Para obtener información detallada sobre los englobamientos, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Para obtener información sobre los permisos de acceso a archivos, consulte la Sección 3.7, “Modos de permiso de acceso a archivos” (p. 67).

Capacidad En la ventana emergente, seleccione las capacidades adecuadas. Se trata de declaraciones que habilitan las 32 capacidades POSIX.1e. Consulte la Sección 3.1.1, “División de un perfil de Novell AppArmor en las partes que lo componen” (p. 11) para obtener más información sobre las capacidades. Al terminar de realizar las selecciones, haga clic en Aceptar.

Creación de perfiles de Novell AppArmor

27

Include En la ventana emergente, desplácese hasta los archivos que desee utilizar como entradas include. Las declaraciones include son directivas que incorporan componentes de otros perfiles de Novell AppArmor para simplificar la estructura de los perfiles. Para obtener más información, consulte la Sección 3.1.2, “#include” (p. 13).

28

Guía de administración de Novell AppArmor 2.0

Edición de entradas En esta sección se explica la opción Editar entrada, que encontrará en la Sección 3.3.2, “Adición manual de perfiles” (p. 24) o en la Sección 3.3.3, “Edición de perfiles” (p. 30). Al seleccionar Editar entrada, se abrirá una ventana emergente del explorador de archivos. En ella podrá editar la entrada seleccionada. En la ventana emergente, especifique la vía completa de un archivo, incluido el tipo de acceso permitido. Puede utilizar los englobamientos si es necesario. Cuando termine, haga clic en Aceptar. Para obtener información detallada sobre los englobamientos, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Para obtener información sobre los permisos de acceso a archivos, consulte la Sección 3.7, “Modos de permiso de acceso a archivos” (p. 67).

Supresión de entradas En esta sección se explica la opción Suprimir entrada, que encontrará en la Sección 3.3.2, “Adición manual de perfiles” (p. 24) o en la Sección 3.3.3, “Edición de perfiles” (p. 30). Al seleccionar una entrada y luego hacer clic en Suprimir entrada, Novell AppArmor eliminará la entrada de perfil seleccionada.

Creación de perfiles de Novell AppArmor

29

3.3.3 Edición de perfiles Novell AppArmor permite editar manualmente los perfiles de Novell AppArmor añadiendo, editando o suprimiendo entradas. Basta con seleccionar el perfil y añadir, editar o suprimir las entradas que desee. Para editar un perfil, lleve a cabo los pasos siguientes: 1 Abra YaST → Novell AppArmor. 2 En Novell AppArmor, haga clic en Editar perfil. Se abrirá la ventana Editar perfil - Seleccionar perfil para editar.

3 En la lista de perfiles de programas, seleccione el perfil que desee editar. 4 Haga clic en Siguiente. El perfil se mostrará en la ventana Cuadro de diálogo de perfiles de AppArmor.

30

Guía de administración de Novell AppArmor 2.0

5 En la ventana Cuadro de diálogo de perfiles de AppArmor, puede añadir, editar o suprimir entradas de perfiles de Novell AppArmor haciendo clic en los botones correspondientes y consultando las siguientes secciones: “Adición de entradas” (p. 26), “Edición de entradas” (p. 29) y “Supresión de entradas” (p. 29). 6 Cuando haya terminado, haga clic en Terminado. 7 En la ventana emergente que aparecerá, haga clic en Sí para confirmar los cambios en el perfil.

3.3.4 Supresión de perfiles Con Novell AppArmor es posible suprimir un perfil de Novell AppArmor manualmente. Basta con seleccionar la aplicación para la que desee suprimir el perfil y luego suprimirlo del modo siguiente: 1 Abra YaST → Novell AppArmor. Se mostrará la interfaz de Novell AppArmor. 2 En Novell AppArmor, haga clic en el icono Suprimir perfil. Se abrirá la ventana Suprimir perfil - Seleccionar perfil para suprimir.

Creación de perfiles de Novell AppArmor

31

3 Seleccione el perfil que desee suprimir. 4 Haga clic en Siguiente. 5 En la ventana emergente que se abrirá, haga clic en Sí para suprimir el perfil.

3.3.5 Actualización de perfiles a partir de entradas del registro del sistema El asistente de perfiles de Novell AppArmor utiliza logprof, una herramienta que explora los archivos de registro y permite actualizar los perfiles según los resultados. logprof realiza un seguimiento de los mensajes desde el módulo de Novell AppArmor que representa las excepciones para todos los perfiles que se ejecutan en el sistema. Estas excepciones representan el comportamiento de la aplicación con perfil que no se ajusta a la definición del perfil para el programa. Puede añadir el nuevo comportamiento al perfil relevante seleccionando la entrada de perfil sugerida. 1 Abra YaST → Novell AppArmor. Se mostrará la interfaz de Novell AppArmor. 2 En Novell AppArmor, haga clic en Asistente para actualizar perfiles. Aparecerá la ventana del Asistente de perfiles de AppArmor.

32

Guía de administración de Novell AppArmor 2.0

Al ejecutar el Asistente para actualizar perfiles, logprof procesa los archivos de registro del modo de aprendizaje. De este modo se generará una serie de preguntas a las que deberá responder para guiar a logprof durante el proceso de generación del perfil de seguridad. Las preguntas se dividen en dos categorías: • Un programa con perfil solicita un recurso no incluido en el perfil (consulte la Figura 3.4, “Excepción del modo de aprendizaje: control de acceso a recursos específicos” (p. 34)). • El programa con perfil ejecuta otro programa y la transición del dominio de seguridad no está definida (consulte la Figura 3.5, “Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada” (p. 34)). Cada caso produce una pregunta que deberá responder y que permite añadir el recurso o programa al perfil. Las dos figuras siguientes muestran un ejemplo de cada caso. Los pasos subsiguientes describen las opciones para responder a estas preguntas.

Creación de perfiles de Novell AppArmor

33

Figura 3.4 Excepción del modo de aprendizaje: control de acceso a recursos específicos

Figura 3.5 Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada

34

Guía de administración de Novell AppArmor 2.0

3 logprof comienza a sugerir entradas de vías de directorios a las que ha accedido la aplicación cuyo perfil está generando (tal y como se observa en la Figura 3.4, “Excepción del modo de aprendizaje: control de acceso a recursos específicos” (p. 34)) o a solicitar que defina permisos de ejecución para las entradas (tal y como se observa en la Figura 3.5, “Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada” (p. 34)). a En el caso de la Figura 3.4, “Excepción del modo de aprendizaje: control de acceso a recursos específicos” (p. 34), de las siguientes opciones, seleccione la que satisfaga la solicitud de acceso (puede ser una entrada include sugerida, una versión global concreta de la vía o el nombre de vía real). Tenga en cuenta que no todas estas opciones estarán siempre disponibles. #include Sección de un perfil de Novell AppArmor que hace referencia a un archivo include. Los archivos include recuperan los permisos de acceso de los programas. Utilizando una declaración include, puede proporcionar al programa acceso a las vías de directorios o archivos que también necesiten otros programas. Al utilizar este tipo de declaraciones, podrá reducir el tamaño de los perfiles. Es recomendable seleccionar las entradas include cuando el sistema lo sugiera. Versión global Se accede haciendo clic en Global, tal y como se describe en el siguiente paso. Para obtener más información acerca de la sintaxis global, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Nombre real de vía Vía literal a la que el programa debe acceder para ejecutarse correctamente. b En el caso de la Figura 3.5, “Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada” (p. 34), seleccione la vía que satisfaga los requisitos de acceso seleccionando una de las siguientes opciones: Heredar Permanece en el mismo perfil de seguridad (perfil principal). Perfil Requiere que exista un perfil distinto para el programa ejecutado. Creación de perfiles de Novell AppArmor

35

Unconfined El programa se ejecuta sin perfil de seguridad. AVISO A menos que sea absolutamente necesario, no ejecute programas sin limitación. Si selecciona la opción No limitado, el nuevo programa se ejecutará sin ninguna protección de AppArmor.

4 Después de seleccionar una vía de directorio, deberá procesarla como una entrada del perfil de Novell AppArmor haciendo clic en Permitir o en Denegar. Si no está satisfecho con la entrada de vía de directorio tal y como aparece, también puede utilizar las opciones Global o Editar. Las opciones disponibles para procesar las entradas del modo de aprendizaje y crear el perfil son las siguientes: Permitir Proporciona acceso al programa a las entradas de vías de directorio especificadas. El asistente para la creación de perfiles sugiere los permisos de acceso a los archivos. Para obtener más información acerca de este tema, consulte la Sección 3.7, “Modos de permiso de acceso a archivos” (p. 67). Denegar Haga clic en Denegar para impedir que el programa acceda a las entradas de vías de directorios especificadas. Global Al hacer clic en esta opción se modifica la vía de directorio (empleando comodines) para que incluya todos los archivos del directorio de entrada sugerido. Si hace doble clic se proporcionará acceso a todos los archivos y subdirectorios situados bajo el mostrado. Para obtener más información acerca de la sintaxis de englobamiento, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Global con ext. Modifica la vía de directorio original conservando la extensión del nombre de archivo. Un solo clic hace que /etc/apache2/file.ext se convierta en /etc/apache2/*.ext, añadiendo el comodín (asterisco) en lugar 36

Guía de administración de Novell AppArmor 2.0

del nombre de archivo. De este modo el programa puede acceder a todos los archivos de los directorios sugeridos que acaben con la extensión .ext. Si se hace doble clic se proporcionará acceso a todos los archivos (con la extensión definida) y subdirectorios situados bajo el mostrado. Editar Permite editar la línea destacada. La nueva línea (editada) aparecerá al final de la lista. Abortar Cancela logprof, desechando todos los cambios de reglas introducidos hasta el momento y dejando intactos todos los perfiles, sin modificarlos. Finalizar Cierra logprof, guardando todos los cambios de reglas introducidos hasta el momento y modificando todos los perfiles en consecuencia. Haga clic en Permitir o en Denegar para cada entrada del modo de aprendizaje. Esto facilita la creación del perfil de Novell AppArmor. NOTA El número de entradas del modo de aprendizaje será directamente proporcional a la complejidad de la aplicación. Repita los pasos anteriores si necesita ejecutar más funciones de la aplicación. Cuando haya terminado, haga clic en Finalizar. En la siguiente ventana emergente, haga clic en Sí para salir del asistente para la creación de perfiles. El perfil se guardará y cargará en el módulo de Novell AppArmor.

3.3.6 Gestión de Novell AppArmor y del estado de los eventos de seguridad Novell AppArmor permite modificar el estado de Novell AppArmor y configurar la notificación de eventos.

Creación de perfiles de Novell AppArmor

37

Modificación del estado de Novell AppArmor Puede modificar el estado de Novell AppArmor habilitándolo o inhabilitándolo. Al habilitar Novell AppArmor se protege el sistema de posibles vulnerabilidades de los programas. Si se inhabilita Novell AppArmor, se anula la protección del sistema, aunque los perfiles estén configurados. Configuración de notificación de eventos Puede determinar cómo y cuándo desea recibir las notificaciones cuando se produzcan los eventos de seguridad del sistema. NOTA Deberá configurar un servidor de correo en el servidor de SUSE Linux que sea capaz de enviar correo saliente utilizando el protocolo simple de transferencia de correo (smtp) , por ejemplo postfix o exim, para que funcione la notificación de eventos. Para configurar la notificación de eventos o modificar el estado de Novell AppArmor, lleve a cabo los pasos siguientes: 1 Al hacer clic en el Panel de control de Novell AppArmor, aparecerá la ventana Configuración de Novell AppArmor, tal y como se muestra a continuación:

38

Guía de administración de Novell AppArmor 2.0

2 En la pantalla Configuración de AppArmor, determine si Novell AppArmor y la notificación de eventos de seguridad se están ejecutando. Para ello, busque un mensaje con el contenido habilitado. • Para modificar el estado de Novell AppArmor, prosiga con el procedimiento descrito en “Modificación del estado de Novell AppArmor” (p. 39). • Para configurar la notificación de eventos de seguridad, prosiga con el procedimiento descrito en la Sección 4.2.2, “Configuración de la notificación de eventos de seguridad” (p. 73).

Modificación del estado de Novell AppArmor Al modificar el estado de Novell AppArmor, puede habilitarlo o inhabilitarlo. Si Novell AppArmor está habilitado, significa que está instalado, en ejecución y aplicando las directivas de seguridad de Novell AppArmor. 1 Para habilitar Novell AppArmor, abra YaST → Novell AppArmor. Se abrirá el menú principal de Novell AppArmor. 2 En el menú principal de Novell AppArmor, haga clic en Panel de control de Novell AppArmor. Aparecerá la ventana Configuración de Novell AppArmor.

3 En la sección Habilitar Novell AppArmor de la ventana, haga clic en Configurar. Se abrirá el cuadro de diálogo Habilitar Novell AppArmor.

Creación de perfiles de Novell AppArmor

39

4 Habilite Novell AppArmor seleccionando Habilitar o inhabilite el programa seleccionando Inhabilitar. A continuación, haga clic en Aceptar. 5 Haga clic en Terminado en la ventana Configuración de Novell AppArmor. 6 Haga clic en Archivo → Salir en el Centro de control de YaST.

3.4 Creación de perfiles de Novell AppArmor mediante la interfaz de línea de comandos Novell AppArmor ofrece la posibilidad de emplear una interfaz de línea de comandos en lugar de la interfaz gráfica de usuario para gestionar y configurar la seguridad del sistema.

3.4.1 Comprobación del estado del módulo AppArmor El módulo AppArmor puede tener cualquiera de los tres estados siguientes: Descargado El módulo AppArmor no está cargado en el núcleo. En ejecución El módulo AppArmor está cargado en el núcleo y aplica las directivas de programas de Novell AppArmor. 40

Guía de administración de Novell AppArmor 2.0

Detenido El módulo AppArmor está cargado en el núcleo, pero no está aplicando las directivas. Puede detectar en cuál de los tres estados se encuentra el módulo AppArmor inspeccionando /sys/kernel/security/apparmor/profiles. Si cat /sys/kernel/security/apparmor/profiles muestra una lista de perfiles, Novell AppArmor se está ejecutando. Si está vacío y no muestra ningún resultado, AppArmor está detenido. Si el archivo no existe, AppArmor está descargado. El módulo AppArmor puede cargarse y descargarse mediante comandos de módulo estándar de Linux como modprobe, insmod, lsmod y rmmod, pero este enfoque no es recomendable. Es más útil gestionar Novell AppArmor mediante el guión rcapparmor, que puede llevar a cabo las siguientes operaciones: rcapparmor start Tiene un comportamiento distinto dependiendo del estado del módulo AppArmor. Si estaba descargado, start carga el módulo y lo inicia, colocándolo en el estado de ejecución. Si estaba detenido, start provoca que el módulo vuelva a explorar los perfiles de Novell AppArmor, que normalmente se encuentran en /etc/ apparmor.d y hace que el módulo pase al estado de ejecución. Si el módulo ya se estaba ejecutando, start presenta una advertencia y no lleva a cabo ninguna acción. rcapparmor stop Detiene el módulo AppArmor (si estaba en ejecución) retirando todos los perfiles de la memoria del núcleo, inhabilitando de forma efectiva todos los controles de acceso y poniendo el módulo en estado detenido. Si el módulo AppArmor ya estaba descargado o detenido, stop intenta volver a descargar los perfiles, pero no ocurre nada. rcapparmor restart Hace que el módulo AppArmor vuelva a explorar los perfiles que normalmente se encuentran en /etc/apparmor.d sin cancelar la limitación de los procesos en ejecución, añadiendo los nuevos perfiles y eliminando los perfiles que ya no se encontrarán en /etc/apparmor.d. rcapparmor kill Elimina el módulo AppArmor del núcleo de forma incondicional. Esta acción no es segura porque, en general, la descarga directa de módulos del núcleo no lo es.

Creación de perfiles de Novell AppArmor

41

Este comando sólo se proporciona como medio para resolver errores y emergencias en situaciones en las que pueda ser necesario eliminar el módulo. NOTA Novell AppArmor es un potente sistema de control de acceso y es posible que le bloquee su propio equipo, hasta un punto tal en que puede ser necesario arrancar el equipo desde un soporte de recuperación (como el CD 1 de SUSE Linux) para recuperar el control. Para evitar este tipo de problemas, compruebe siempre que dispone de un inicio de sesión de usuario Root en ejecución y sin limitación en el equipo que esté configurando cuando reinicie el módulo AppArmor. Si provoca daños en el sistema hasta tal punto que no sea posible iniciar sesión (por ejemplo, rompiendo el perfil asociado al daemon SSH), podrá reparar los daños utilizando el indicador del usuario Root en ejecución y reiniciando el módulo AppArmor.

3.4.2 Creación de los perfiles de Novell AppArmor Las definiciones de perfiles del módulo AppArmor se almacenan en el directorio /etc/ apparmor.d/ como archivos de texto sin formato. AVISO Todos los archivos del directorio /etc/apparmor.d/ se interpretan como perfiles y se cargan como tales. Cambiar el nombre de los archivos del directorio no es un modo efectivo de impedir que los perfiles se carguen. Deberá retirar los perfiles de este directorio para gestionarlos de forma efectiva. Puede utilizar un editor de texto, como vim, para acceder a estos perfiles y realizar cambios en ellos. Las siguientes opciones contienen pasos detallados para crear perfiles: Adición o creación de perfiles de Novell AppArrmor Consulte la Sección 3.4.3, “Adición o creación de perfiles de Novell AppArrmor” (p. 43)

42

Guía de administración de Novell AppArmor 2.0

Edición de perfiles de Novell AppArmor Consulte la Sección 3.4.4, “Edición de perfiles de Novell AppArmor” (p. 44) Supresión de perfiles de Novell AppArmor Consulte la Sección 3.4.5, “Supresión de perfiles de Novell AppArmor” (p. 44) Utilice vim para ver y editar los perfiles, escribiendo vim en una ventana de terminal. Para habilitar los colores de sintaxis al editar un perfil de Novell AppArmor en vim, utilice los comandos :syntax on y, a continuación, :set syntax=apparmor. Para obtener más información acerca de vim y los colores de sintaxis, consulte “apparmor.vim” (p. 63). NOTA Después de realizar cambios en un perfil, utilice el comando rcapparmor restart, descrito en la sección anterior. Este comando hace que Novell AppArmor vuelva a leer los perfiles. Para acceder a una descripción detallada de la sintaxis de estos archivos, consulte el Capítulo 3, Creación de perfiles de Novell AppArmor (p. 11).

3.4.3 Adición o creación de perfiles de Novell AppArrmor Para añadir o crear un perfil de Novell AppArmor para una aplicación, puede utilizar un método de creación de perfiles independiente o sistemático, dependiendo de sus necesidades. Perfiles independientes Este método es adecuado para crear perfiles de pequeñas aplicaciones con un tiempo de ejecución finito, como aplicaciones clientes para el usuario (como los clientes de correo). Consulte la Sección 3.5.1, “Perfiles independientes” (p. 46). Perfiles sistemáticos Resulta adecuado para generar perfiles de un gran número de programas al mismo tiempo y para crear perfiles de aplicaciones que pueden ejecutarse durante días, semanas o de forma continua en sucesivos reinicios, como las aplicaciones de servidores de red (por ejemplo, servidores Web o de correo). Consulte la Sección 3.5.2, “Perfiles sistemáticos” (p. 46).

Creación de perfiles de Novell AppArmor

43

3.4.4 Edición de perfiles de Novell AppArmor Los pasos siguientes describen el procedimiento para editar un perfil de Novell AppArmor. Para entender mejor los componentes de un perfil, consulte la Sección 3.1, “Componentes y sintaxis de los perfiles” (p. 11). 1 Si no ha iniciado sesión como usuario Root, escriba su en una ventana de terminal. 2 Introduzca la contraseña de usuario Root cuando el sistema lo solicite. 3 Para acceder al directorio, introduzca cd /etc/apparmor.d/. 4 Escriba ls para ver todos los perfiles instalados actualmente. 5 Abra el perfil que desee editar en un editor de texto, como vim. 6 Realice los cambios necesarios y guarde el perfil. 7 Reinicie Novell AppArmor escribiendo rcapparmor restart en una ventana de terminal.

3.4.5 Supresión de perfiles de Novell AppArmor Los pasos siguientes describen el procedimiento para suprimir un perfil de Novell AppArmor. 1 Si no ha iniciado sesión como usuario Root, escriba su en una ventana de terminal. 2 Introduzca la contraseña de usuario Root cuando el sistema lo solicite. 3 Para acceder al directorio de Novell AppArmor, escriba cd /etc/apparmor.d/.

44

Guía de administración de Novell AppArmor 2.0

4 Escriba ls para ver todos los perfiles de Novell AppArmor instalados actualmente. 5 Suprima el perfil saliendo de él con rm nombre del perfil. 6 Reinicie Novell AppArmor escribiendo rcapparmor restart en una ventana de terminal.

3.5 Dos métodos de creación de perfiles Dada la sintaxis para perfiles de Novell AppArmor detallada en la Sección 3.1, “Componentes y sintaxis de los perfiles” (p. 11), puede crear perfiles sin utilizar las herramientas. No obstante, proceder de este modo requiere un esfuerzo considerable. Para evitar las molestias que esto supone, utilice las herramientas de Novell AppArmor para automatizar la creación y ajuste de los perfiles. Hay dos enfoques distintos para la creación de perfiles de Novell AppArmor, así como herramientas que permiten utilizar ambos métodos. Perfiles independientes Este método es adecuado para crear perfiles de pequeñas aplicaciones con un tiempo de ejecución finito, como aplicaciones clientes para el usuario (como los clientes de correo). Para obtener más información, consulte la Sección 3.5.1, “Perfiles independientes” (p. 46). Perfiles sistemáticos Este método resulta adecuado para generar perfiles de un gran número de programas al mismo tiempo y para crear perfiles de aplicaciones que pueden ejecutarse durante días, semanas o de forma continua en sucesivos reinicios, como las aplicaciones de servidores de red (por ejemplo, servidores Web o de correo). Para obtener más información, consulte la Sección 3.5.2, “Perfiles sistemáticos” (p. 46). El desarrollo automatizado de perfiles resulta más sencillo de gestionar con las herramientas de Novell AppArmor: 1 Decida el método de creación de perfiles que mejor se adapte a sus necesidades.

Creación de perfiles de Novell AppArmor

45

2 Lleve a cabo un análisis estático. Ejecute genprof o autodep, dependiendo del método de perfiles que haya elegido. 3 Habilite el aprendizaje dinámico. Active el modo de aprendizaje para todos los perfiles de programas.

3.5.1 Perfiles independientes La generación y mejora de perfiles independientes se gestiona mediante el programa genprof. Este método resulta sencillo, dado que genprof se encarga de todo, pero también limitado, ya que requiere que genprof esté en ejecución durante toda la ejecución de prueba del programa (no podrá reiniciar el equipo mientras aún se esté desarrollando el perfil). Para utilizar genprof a fin de emplear el método de creación de perfiles independientes, consulte “genprof” (p. 51).

3.5.2 Perfiles sistemáticos Este método se denomina de perfiles sistemáticos porque actualiza todos los perfiles del sistema al mismo tiempo, en lugar de centrarse en uno solo o en unos pocos, como genprof o la generación de perfiles individuales. Con la creación de perfiles sistemáticos, la creación y mejora de los perfiles resulta algo menos automática, pero más flexible. Este método es adecuado para la generación de perfiles de aplicaciones con un tiempo de ejecución prolongado, cuyo comportamiento continúa después de los sucesivos reinicios, o bien para varios programas cuyos perfiles desee crear al mismo tiempo. Cree un perfil de Novell AppArmor para un grupo de aplicaciones mediante el siguiente método: 1 Cree perfiles para los programas individuales que forman la aplicación. Aunque este enfoque es sistemático, Novell AppArmor sigue supervisando únicamente los programas con perfiles y los programas secundarios de éstos. Por lo tanto, para que Novell AppArmor tenga en cuenta un programa, deberá hacer que autodep cree al menos un perfil aproximado para él. Para crear el perfil aproximado, consulte “autodep” (p. 48).

46

Guía de administración de Novell AppArmor 2.0

2 Configure los perfiles relevantes en el modo de aprendizaje o de queja. Active el modo de aprendizaje o de queja para todos los programas cuyo perfil desee generar, introduciendo complain /etc/apparmor.d/* en una ventana de terminal después de iniciar sesión como usuario Root. En el modo de aprendizaje, las solicitudes de acceso no se bloquean aunque el perfil indique que deben bloquearse. De este modo, puede llevar a cabo varias pruebas (tal y como se muestra en el Paso 3 (p. 47)) y aprender las necesidades de acceso del programa, de modo que pueda ejecutarse de forma adecuada. Con esta información, podrá decidir el nivel de seguridad que desee emplear con el perfil. Consulte “Modo de aprendizaje o de queja” (p. 49) para obtener instrucciones más detalladas para utilizar el modo de aprendizaje o de queja. 3 Utilice la aplicación. Ejecute la aplicación y utilice sus funciones. La utilización que desee realizar del programa es totalmente voluntaria, pero deberá hacer que el programa acceda a todos los archivos que representen sus necesidades de acceso. Dado que genprof no supervisa la ejecución, este paso puede durar días o semanas y puede prolongarse a lo largo de sucesivos reinicios totales del sistema. 4 Analice el registro. En los perfiles sistemáticos, ejecute logprof directamente en lugar de dejar que genprof lo ejecute (como en los perfiles individuales). El formato general de logprof es: logprof [ -d /vía/a/perfiles ] [ -f /vía/a/archivoregistro ]

Consulte “logprof” (p. 57) para obtener más información sobre la utilización de logprof. De este modo se generarán perfiles optimizados. Un 5 Repita los pasos 3 y 4. enfoque con repeticiones permite capturar conjuntos de datos más pequeños, que pueden incluirse en la formación y volverse a cargar en el motor de directivas. Las repeticiones subsiguientes generan menos mensajes y se ejecutan más rápidamente. 6 Edite los perfiles. Es posible que desee revisar los perfiles generados. Puede abrir y editar los perfiles de /etc/apparmor.d/ mediante vim. Para obtener ayuda acerca de cómo aprovechar vim al máximo, consulte “apparmor.vim” (p. 63).

Creación de perfiles de Novell AppArmor

47

7 Vuelva al modo de “aplicación.” En este modo, el sistema vuelve a aplicar las reglas de los perfiles, en lugar de limitarse a registrar información. Este paso se puede llevar a cabo manualmente, eliminando el texto flags=(complain) de los perfiles; o bien automáticamente, utilizando el comando enforce, que funciona del mismo modo que el comando complain, pero establece el modo de aplicación para los perfiles. Para asegurarse de que todos los perfiles dejan de estar en el modo de queja y vuelven al de aplicación, escriba el comando enforce /etc/apparmor.d/*. 8 Vuelva a explorar todos los perfiles. Para hacer que Novell AppArmor vuelva a explorar todos los perfiles y modifique el modo de aplicación en el núcleo, escriba el comando /etc/init.d/apparmor restart.

3.5.3 Resumen de las herramientas de generación de perfiles Todas las utilidades de generación de perfiles de Novell AppArmor están incluidas en el paquete RPM apparmor-utils, y la mayoría de ellas se almacenan en /usr/ sbin. En las siguientes secciones se presentan todas las herramientas.

autodep Crea un perfil aproximado del programa o aplicación con que se utilice. Puede generar perfiles aproximados para archivos binarios ejecutables y para programas de guiones interpretados. Los perfiles resultantes se consideran “aproximados” porque no contienen necesariamente todas las entradas de perfil que el programa necesita para estar adecuadamente limitado por Novell AppArmor. El perfil aproximado mínimo de autodep tiene al menos una directiva include básica, que contiene las entradas de perfil básicas necesarias para la mayoría de los programas. Para algunos tipos de programas, autodep genera un perfil más amplio. El perfil se genera realizando llamadas repetidas a ldd(1) en los ejecutables incluidos en la línea de comandos. Para generar un perfil aproximado, utilice el programa autodep. Los argumentos del programa pueden ser sencillamente el nombre del programa, que autodep averigua buscando en la variable path de la shell, o bien una vía completa. El propio programa puede ser de cualquier tipo (binario ELF, guión de shell, guión Perl, etc.) y autodep

48

Guía de administración de Novell AppArmor 2.0

genera un perfil aproximado, que puede mejorarse mediante la generación dinámica de perfiles descrita a continuación. El perfil aproximado resultante se escribe en el directorio /etc/apparmor.d empleando la convención de nombres de perfiles de Novell AppArmor (nombrando el perfil tras la vía completa del programa y sustituyendo los caracteres de barra invertida [/] de la vía por caracteres de punto [.]. El formato general de autodep es introducir lo siguiente en una ventana de terminal después de iniciar sesión como usuario Root: autodep [ -d /vía/a/perfiles ] [programa1 programa2...]

Si no introduce los nombres de los programas, el sistema los solicitará. /vía/a/perfiles sobrescribe la ubicación por defecto de /etc/apparmor.d. Para empezar a generar perfiles, debe crear perfiles para cada servicio de ejecutable principal que forme parte de la aplicación (cualquier elemento que pueda iniciarse sin ser un proceso secundario de otro programa que ya disponga de perfil). El método para encontrar estos programas dependerá de la aplicación concreta. A continuación se presentan algunas estrategias para encontrar estos programas: del volumen Si todos los programas cuyos perfiles desea generar se encuentran en un directorio y no hay ningún otro programa en ese directorio, el comando sencillo autodep /vía/a/los/programas/* crea perfiles nominales para todos los programas de ese directorio. Comando ps Puede ejecutar las aplicaciones y utilizar el comando estándar de Linux ps para encontrar todos los procesos que se estén ejecutando. A continuación, deberá rastrear manualmente la ubicación de estos programas y ejecutar el programa autodep para cada uno de ellos. Si los programas están en la vía del usuario, autodep los encontrará automáticamente. Si no lo están, el comando estándar de Linux locate puede resultar útil para encontrar los programas. Si locate no funciona (no se instala por defecto en SUSE Linux), utilice find. -name '*foo*' -print.

Modo de aprendizaje o de queja La herramienta de modo de aprendizaje o de queja detecta las violaciones de las reglas de los perfiles de Novell AppArmor, por ejemplo, cuando el programa del perfil accede a archivos no permitidos por éste. Las violaciones se permiten, pero también quedan registradas. Para mejorar el perfil, active el modo de queja, ejecute el programa mediante Creación de perfiles de Novell AppArmor

49

un conjunto de pruebas para generar eventos de registro que caractericen las necesidades de acceso del programa, y luego realice un procesamiento posterior del registro con las herramientas de Novell AppArmor para transformar los eventos del registro en perfiles mejorados. La activación manual del modo de queja (mediante la línea de comandos) añade un indicador a la parte superior del perfil, de modo que /bin/foo se transforma en /bin/foo flags=(complain). Para utilizar el modo de queja, abra una ventana de terminal como usuario Root e introduzca una de las siguientes líneas. • Si el programa de ejemplo (programa1) está en su vía, utilice: complain [programa1 programa2 ...]

• Si el programa no está en su vía, especifique la vía completa del modo siguiente: complain /sbin/programa1

• Si los perfiles no se encuentran en /etc/apparmor.d, escriba lo siguiente para anular la ubicación por defecto: complain /vía/a/perfiles/ programa1

• Especifique el perfil del programa1 del modo siguiente: complain /etc/apparmor.d/sbin.programa1

Los comandos anteriores activan el modo de queja para los perfiles o programas incluidos. El comando puede incluir programas y perfiles. Si el nombre del programa no incluye la vía completa, complain buscará el programa en $PATH. De modo que, por ejemplo, complain /usr/sbin/* encuentra perfiles asociados a todos los programas de /usr/sbin y los configura en el modo de queja, y complain /etc/apparmor.d/* configura todos los perfiles de /etc/apparmor.d en el modo de queja.

Modo de aplicación La herramienta de modo de aplicación detecta las violaciones de las reglas de los perfiles de Novell AppArmor, por ejemplo, cuando el programa del perfil accede a archivos no permitidos por éste. Las violaciones quedan registradas y no se permiten. El modo activado por defecto es el de aplicación. Active el modo de aplicación cuando desee

50

Guía de administración de Novell AppArmor 2.0

que los perfiles de Novell AppArmor controlen el acceso del programa incluido en el perfil. El modo de aplicación se activa al desactivar el de queja y viceversa. La activación manual del modo de aplicación (mediante la línea de comandos) añade un indicador a la parte superior del perfil, de modo que /bin/foo se transforma en /bin/foo flags=(enforce). Para utilizar el modo de aplicación, abra una ventana de terminal como usuario Root e introduzca una de las siguientes líneas. • Si el programa de ejemplo (programa1) está en su vía, utilice: enforce [programa1 programa2 ...]

• Si el programa no está en su vía, especifique la vía completa del modo siguiente: enforce /sbin/programa1

• Si los perfiles no se encuentran en /etc/apparmor.d, escriba lo siguiente para redefinir la ubicación por defecto: enforce /vía/a/perfiles/programa1

• Especifique el perfil del programa1 del modo siguiente: enforce /etc/apparmor.d/sbin.programa1

Los comandos anteriores activan el modo de aplicación para los perfiles o programas incluidos. Si no introduce los nombres de los programas o perfiles, el sistema los solicitará. /vía/a/perfiles redefine la ubicación por defecto de /etc/apparmor.d. El argumento puede ser una lista de programas o una lista de perfiles. Si el nombre del programa no incluye la vía completa, enforce buscará el programa en $PATH. De modo que, por ejemplo, enforce /usr/sbin/* encuentra perfiles asociados a todos los programas de /usr/sbin y los configura en el modo de aplicación, y enforce /etc/apparmor.d/* configura todos los perfiles de /etc/apparmor.d en el modo de aplicación.

genprof genprof (abreviatura en inglés de "generador de perfiles";) es la utilidad de generación de perfiles de Novell AppArmor. Ejecuta autodep para el programa especificado, creando Creación de perfiles de Novell AppArmor

51

un perfil aproximado (si no existe ya uno), establece el modo de queja, vuelve a cargarlo en Novell AppArmor, marca el registro del sistema (syslog) y solicita al usuario que ejecute el programa y utilice sus funciones. La sintaxis es la siguiente: genprof [ -d /vía/a/perfiles ]programa

Por ejemplo, si desea crear un perfil para el programa del servidor Web Apache httpd2prefork, lleve a cabo los siguientes pasos desde una shell de usuario Root: 1 Introduzca el comando rcapache2 stop. 2 A continuación, escriba genprof httpd2-prefork. A continuación, genprof hará lo siguiente: • Resolverá la vía completa de httpd2-prefork basándose en las variables de path de la shell. También es posible especificar una vía completa. En SUSE Linux, la vía completa es /usr/sbin/httpd2-prefork. • Comprueba si hay un perfil existente para httpd2-prefork. Si lo hay, lo actualiza. Si no, crea uno empleando el programa autodep, descrito en la Sección 3.5.3, “Resumen de las herramientas de generación de perfiles” (p. 48). NOTA Existe una convención de nombres que relaciona la vía completa de un programa con el nombre de archivo de su perfil, a fin de que las diferentes herramientas de perfiles de Novell AppArmor puedan manipularlos de forma coherente. La convención consiste en sustituir las barras invertidas (/) por puntos (.), de modo que el perfil de /usr/sbin/httpd2-prefork se almacene en /etc/apparmor .d/usr.sbin.httpd2-prefork. • Configura el perfil del programa en el modo de aprendizaje o queja, de modo que las violaciones del perfil queden registradas, pero se permitan. Un evento del registro tendría el aspecto siguiente: Oct 9 15:40:31 AppArmor: PERMITTING r access to /etc/apache2/httpd.conf (httpd2-prefork(6068) profile /usr/sbin/httpd2-prefork active /usr/sbin/httpd2-prefork)

52

Guía de administración de Novell AppArmor 2.0

• Marca el registro del sistema (syslog) con un marcador de inicio de los eventos de registro que debe tener en cuenta. Ejemplo: Sep 13 17:48:52 h2o root: GenProf: e2ff78636296f16d0b5301209a04430d

3 Cuando la herramienta lo solicite, ejecute la aplicación cuyo perfil esté generando en otra ventana de terminal y lleve a cabo tantas funciones de la aplicación como sea posible, a fin de que el modo de aprendizaje pueda registrar los archivos y directorios a los que debe acceder el programa para funcionar correctamente. Por ejemplo, introduzca rcapache2 start en una nueva ventana de terminal. 4 Entre las siguientes opciones, seleccione las que se podrán utilizar después de ejecutar las funciones del programa: •

ejecuta logprof con el registro del sistema a partir del punto en el que se incluyó la marca al iniciar genprof y vuelve a cargar el perfil. S

Si existen eventos de sistema en el registro, Novell AppArmor procesa los archivos de registro del modo de aprendizaje. De este modo se generará una serie de preguntas a las que deberá responder para guiar a genprof durante el proceso de generación del perfil de seguridad. •

F

sale de la herramienta y vuelve al menú principal.

NOTA Si aparece una solicitud para añadir hats, pase al Capítulo 5, Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache (p. 103). 5 Responderá a dos tipos de preguntas: • Un programa con perfil solicita un recurso no incluido en el perfil (consulte el Ejemplo 3.1, “Excepción del modo de aprendizaje: control de acceso a recursos específicos” (p. 54)). • El programa con perfil ejecuta otro programa y la transición del dominio de seguridad no está definida (consulte el Ejemplo 3.2, “Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada” (p. 55)).

Creación de perfiles de Novell AppArmor

53

Cada una de estas categorías genera una serie de preguntas a las que deberá responder para añadir el recurso o el programa al perfil. Las dos figuras siguientes muestran un ejemplo de cada caso. Los pasos subsiguientes describen las opciones para responder a estas preguntas. Ejemplo 3.1 Excepción del modo de aprendizaje: control de acceso a recursos específicos Leyendo entradas de registro de /var/log/messages. Actualizando perfiles de apparmor en /etc/apparmor.d. Perfil: /usr/sbin/xinetd Ejecutar: /usr/sbin/vsftpd [(H)eredar] / (P)erfil / (N)o limitado / (D)enegar / A(b)ortar / (F)inalizar)

La gestión de los accesos de ejecución es compleja. Deberá decidir cuáles de los tres tipos de permisos de ejecución desea otorgar al programa: heredar (ix) El elemento secundario hereda el perfil del principal, ejecutándose con los mismos controles de acceso que éste. Este modo resulta útil cuando un programa limitado necesita llamar a otro programa limitado sin obtener los permisos del perfil del destino o perder los permisos del perfil actual. Este modo suele utilizarse a menudo cuando el programa secundario es una aplicación de ayuda, como el cliente /usr/bin/mail, que utiliza el programa inferior como un programa que divide en páginas o el navegador Web Mozilla, que utiliza el programa Acrobat para mostrar los archivos PDF. perfil (px) El elemento secundario se ejecuta utilizando su propio perfil, que debe cargarse en el núcleo. Si el perfil no se encuentra presente, los intentos de ejecutar el elemento secundario no se efectúan correctamente, ya que se deniega el permiso. Resulta útil si el programa principal invoca a un servicio global, como la búsqueda en servidores DNS o el envío por correo mediante el MTA del sistema. no limitado (ux) El elemento secundario se ejecuta completamente sin limitación, sin que se aplique ningún perfil de Novell AppArmor al recurso ejecutado.

54

Guía de administración de Novell AppArmor 2.0

Ejemplo 3.2 Excepción del modo de aprendizaje: definición de permisos de ejecución para una entrada Añadiendo /bin/ps ix al perfil. Perfil:

/usr/sbin/xinetd Vía:

/etc/hosts.allow Nuevo modo: r

[1 - /etc/hosts.allow] [(P)ermitir] / (D)enegar / (N)uevo / (G)lobal / Global con (e)xt. / A(b)ortar / (F)inalizar

El menú anterior muestra a Novell AppArmor sugiriendo entradas de vía de directorios a las que ha accedido la aplicación cuyo perfil está creando. Es posible que también requiera la definición de permisos de ejecución para las entradas. Novell AppArmor proporciona uno o varios nombres de vías o entradas include. Haciendo clic en el número de opción, seleccione una o varias de las siguientes opciones y diríjase al paso siguiente. NOTA No siempre aparecen todas estas opciones en el menú de Novell AppArmor. #include Es la sección del perfil de Novell AppArmor que hace referencia a un archivo include, que proporciona permisos de acceso a los programas. Utilizando una declaración include, puede proporcionar al programa acceso a las vías de directorios o archivos que también necesiten otros programas. Al utilizar este tipo de declaraciones, podrá reducir el tamaño de los perfiles. Es recomendable seleccionar las entradas include cuando el sistema lo sugiera. Versión global Se accede haciendo clic en Global, tal y como se describe en el siguiente paso. Para obtener más información acerca de la sintaxis global, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Nombre real de vía Vía literal a la que el programa debe acceder para ejecutarse correctamente. 6 Después de seleccionar un nombre de vía o un archivo include, deberá procesarlos como una entrada del perfil de Novell AppArmor haciendo clic en Permitir o en Creación de perfiles de Novell AppArmor

55

Denegar. Si no está satisfecho con la entrada de vía de directorio tal y como aparece, también puede utilizar las opciones Global o Editar. Las opciones disponibles para procesar las entradas del modo de aprendizaje y crear el perfil son las siguientes: Pulse Intro Permite acceder a la vía de directorio seleccionada. Permitir Permite acceder a la vía de directorio seleccionada. Novell AppArmor sugiere el acceso a los permisos de archivos. Para obtener más información, consulte la Sección 3.7, “Modos de permiso de acceso a archivos” (p. 67). Denegar Impide que el programa acceda a las entradas de vías de directorio especificadas. Novell AppArmor se mueve a continuación al evento siguiente. Nuevo Solicita introducir una regla personalizada para el evento, lo que permite especificar el tipo de expresión regular que desee. Si la expresión introducida no se adapta realmente el evento que ha solicitado la pregunta, Novell AppArmor solicita confirmación y permite volver a introducir la expresión. Global Al hacer clic en esta opción se modifica la vía de directorio (empleando comodines) para que incluya todos los archivos del directorio de entrada sugerido. Si hace doble clic se proporcionará acceso a todos los archivos y subdirectorios situados bajo el mostrado. Para obtener más información acerca de la sintaxis global, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Global con ext. Modifica la vía de directorio original conservando la extensión del nombre de archivo. Por ejemplo, /etc/apache2/file.ext se convierte en /etc/apache2/*.ext, añadiendo el comodín (asterisco) en lugar del nombre de archivo. De este modo el programa puede acceder a todos los archivos de los directorios sugeridos que acaben con la extensión .ext. Si hace doble clic se proporcionará acceso a todos los archivos (con la extensión indicada) y subdirectorios bajo el mostrado.

56

Guía de administración de Novell AppArmor 2.0

Editar Permite editar la línea seleccionada. La nueva línea editada aparecerá al final de la lista. Abortar Cancela logprof, desechando todos los cambios de reglas introducidos hasta el momento y dejando intactos todos los perfiles, sin modificarlos. Finalizar Cierra logprof, guardando todos los cambios de reglas introducidos hasta el momento y modificando todos los perfiles en consecuencia. 7 Para ver y editar el perfil utilizando vim, introduzca vim /etc/apparmor.d/nombredelperfil en una ventana de terminal. Para habilitar los colores de sintaxis al editar un perfil de Novell AppArmor en vim, utilice los comandos :syntax on y, a continuación, :set syntax=apparmor. Para obtener más información acerca de vim y los colores de sintaxis, consulte “apparmor.vim” (p. 63).

logprof logprof es una herramienta interactiva que se emplea para revisar los resultados del modo de queja o aprendizaje encontrados en las entradas de syslog y, a continuación, generar nuevas entradas en los perfiles de seguridad de Novell AppArmor. Cuando logprof se ejecuta, comienza a explorar los archivos de registro producidos en el modo de queja o aprendizaje y, si hay nuevos eventos de seguridad no cubiertos por el conjunto de perfiles existente, proporciona sugerencias para modificar el perfil. El modo de queja o aprendizaje rastrea el comportamiento del programa y lo introduce en el registro del sistema. logprof utiliza esta información para observar el comportamiento del programa. Si un programa limitado se bifurca y ejecuta otro programa, logprof lo observa y pregunta al usuario qué modo de ejecución debe emplearse al iniciar el proceso secundario. Los siguientes modos de ejecución son opciones para iniciar el proceso secundario: ix, px y ux. Si existe un perfil distinto para el proceso secundario, la selección por defecto es px. Si no existe, el valor por defecto del perfil es ix. Los procesos secundarios con perfiles distintos han sido analizados por autodep y se cargan en Novell AppArmor si se está ejecutando.

Creación de perfiles de Novell AppArmor

57

Cuando logprof se cierra, los perfiles se actualizan con los cambios. Si el módulo AppArmor se está ejecutando, los perfiles actualizados vuelven a cargarse y si algún proceso que haya generado eventos de seguridad sigue ejecutándose en el perfil nullcomplain-profile, pasan a estar controlados por los perfiles adecuados. Para ejecutar logprof, escriba logprof en una ventana de terminal tras iniciar sesión como usuario Root. También puede emplear las siguientes opciones con logprof: logprof -d /vía/a/directorio/perfiles/ Especifica la vía completa a la ubicación de los perfiles, si no están almacenados en el directorio estándar: /etc/apparmor.d/. logprof -f /vía/a/archivoregistro/ Especifica la vía completa a la ubicación del archivo de registro, si no se encuentra en el directorio por defecto: /var/log/messages. logprof -m "marcador de cadena en el archivo de registro" Marca el punto de inicio en el que logprof debe empezar a buscar en el registro del sistema. logprof hace caso omiso de todos los eventos del sistema antes de encontrar la marca especificada. Si la marca contiene espacios, debe estar entre comillas para que funcione correctamente. Ejemplo: logprof -m e2ff78636296f16d0b5301209a04430d logprof explora el registro, preguntando al usuario cómo desea gestionar cada evento registrado. Cada pregunta presenta una lista numerada de reglas de Novell AppArmor que pueden añadirse pulsando el número del elemento en la lista. logprof busca por defecto los perfiles en /etc/apparmor.d/ y explora el registro de /var/log/messages, de modo que, en la mayoría de los casos, ejecutar logprof como usuario Root basta para crear el perfil. No obstante, es posible que en ocasiones necesite realizar búsquedas en archivos de registro almacenados, por ejemplo si el periodo de ejecución del programa supera a la ventana de rotación del registro (momento en el que se almacena el archivo de registro y se inicia uno nuevo). Si se da el caso, puede introducir zcat -f `ls -1tr /var/log/messages*` | logprof -f -.

58

Guía de administración de Novell AppArmor 2.0

logprof (ejemplo 1) A continuación encontrará un ejemplo de cómo logprof gestiona el acceso de httpd2prefork al archivo /etc/group. El ejemplo utiliza corchetes [] para indicar la opción por defecto. En este ejemplo, el acceso a /etc/group forma parte del acceso de httpd2-prefork a los servicios de nombres. La respuesta adecuada es 1, que activa un conjunto predefinido de reglas de Novell AppArmor. Al seleccionar 1 para utilizar la declaración #include, el paquete de servicios de nombres resuelve todas las futuras preguntas relacionadas con búsquedas DNS y también hace que el perfil sea más sólido, al lograr que cualquier cambio en la configuración DNS y en el paquete de perfiles de servicios de nombres asociado pueda realizarse en un solo paso, sin necesidad de revisar muchos perfiles. Perfil: /usr/sbin/httpd2-prefork Vía: /etc/group Nuevo modo: r [1 - #include ] 2 - /etc/group [(P)ermitir] / (D)enegar / (N)uevo / (G)lobal / Global con (e)xt. / A(b)ortar / (F)inalizar

Seleccione una de las siguientes respuestas: Pulse Intro Permite acceder a la vía de directorio seleccionada. Permitir Permite acceder a la vía de directorio seleccionada. Novell AppArmor sugiere el acceso a los permisos de archivos. Para obtener más información acerca de este tema, consulte la Sección 3.7, “Modos de permiso de acceso a archivos” (p. 67). Denegar Impide que el programa acceda a las entradas de vías de directorio especificadas. Novell AppArmor se mueve a continuación al evento siguiente. Nuevo Solicita introducir una regla personalizada para el evento, lo que permite especificar el tipo de expresión regular que desee. Si la expresión introducida no se adapta realmente el evento que ha solicitado la pregunta, Novell AppArmor solicita confirmación y permite volver a introducir la expresión. Creación de perfiles de Novell AppArmor

59

Global Al hacer clic en esta opción se modifica la vía de directorio (empleando comodines) para que incluya todos los archivos del directorio de entrada sugerido. Si hace doble clic se proporcionará acceso a todos los archivos y subdirectorios situados bajo el mostrado. Para obtener más información acerca de la sintaxis de englobamiento, consulte la Sección 3.6, “Nombres de vías y englobamiento” (p. 66). Global con ext. Modifica la vía de directorio original conservando la extensión del nombre de archivo. Por ejemplo, /etc/apache2/file.ext se convierte en /etc/ apache2/*.ext, añadiendo el comodín (asterisco) en lugar del nombre de archivo. De este modo el programa puede acceder a todos los archivos de los directorios sugeridos que acaben con la extensión .ext. Si hace doble clic se proporcionará acceso a todos los archivos (con la extensión indicada) y subdirectorios bajo el mostrado. Editar Permite editar la línea seleccionada. La nueva línea editada aparecerá al final de la lista. Abortar Cancela logprof, desechando todos los cambios de reglas introducidos hasta el momento y dejando intactos todos los perfiles, sin modificarlos. Finalizar Cierra logprof, guardando todos los cambios de reglas introducidos hasta el momento y modificando todos los perfiles en consecuencia.

logprof (ejemplo 2) En un ejemplo de generación de perfil para vsftpd, observamos esta pregunta: Perfil: /usr/sbin/vsftpd Vía: /y2k.jpg Nuevo modo: r [1 - /y2k.jpg] (P)ermitir / [(D)enegar] / (N)uevo / (G)lobal / Global con (e)xt. / A(b)ortar / (F)inalizar

60

Guía de administración de Novell AppArmor 2.0

En esta pregunta aparecen varios elementos de interés. En primer lugar, tenga en cuenta que vsftpd está solicitando una entrada de vía en la parte superior del árbol, aunque vsftpd en SUSE Linux sirve archivos FTP desde /srv/ftp por defecto. Esto se debe a que httpd2-prefork utiliza chroot y, para la parte de código dentro de chroot, Novell AppArmor observa acceso a archivos en el entorno de chroot en lugar de en la vía completa global. El segundo elemento de interés es que es posible que desee conceder acceso de lectura FTP a todos los demás archivos JPEG del directorio, por lo que puede utilizar Global con ext. y emplear la vía sugerida de /*.jpg. Al hacerlo se contraen las reglas anteriores, proporcionando acceso a archivos .jpg individuales e impidiendo cualquier pregunta futura relacionada con el acceso a los archivos .jpg. Finalmente, es posible que desee proporcionar un acceso más general a los archivos del FTP. Si selecciona Global en la última entrada, logprof sustituye la vía sugerida de /y2k.jpg por /*. O bien es posible que desee proporcionar un acceso aún mayor a todo el árbol de directorios, en cuyo caso podría utilizar la opción de vía Nuevo e introducir /**.jpg (que normalmente proporcionaría acceso a todos los archivos .jpg en todo el árbol de directorios) o bien /** (que proporcionaría acceso a todos los archivos del árbol de directorios). Los pasos descritos anteriormente se refieren al acceso de lectura. Los accesos de escritura son similares, excepto por el hecho de que es recomendable ser más conservador en el uso de expresiones regulares para dicho tipo de acceso. La gestión de los accesos de ejecución es más compleja. Deberá decidir cuáles de los tres tipos de permisos de ejecución desea otorgar: heredar (ix) El elemento secundario hereda el perfil del principal, ejecutándose con los mismos controles de acceso que éste. Este modo resulta útil cuando un programa limitado necesita llamar a otro programa limitado sin obtener los permisos del perfil del destino o perder los permisos del perfil actual. Este modo suele utilizarse a menudo cuando el programa secundario es una aplicación de ayuda, como el cliente /usr/ bin/mail, que utiliza el programa inferior como un programa que divide en páginas o el navegador Web Mozilla, que utiliza el programa Acrobat para mostrar los archivos PDF.

Creación de perfiles de Novell AppArmor

61

perfil (px) El elemento secundario se ejecuta utilizando su propio perfil, que debe cargarse en el núcleo. Si el perfil no se encuentra presente, los intentos de ejecutar el elemento secundario no se efectúan correctamente, ya que se deniega el permiso. Resulta útil si el programa principal invoca a un servicio global, como la búsqueda en servidores DNS o el envío por correo mediante el MTA del sistema. no limitado (ux) El elemento secundario se ejecuta completamente sin limitación, sin ningún perfil de Novell AppArmor aplicado al recurso ejecutado. En el siguiente ejemplo, se está generando el perfil del cliente de correo /usr/bin/ mail y logprof ha detectado que /usr/bin/mail ejecuta /usr/bin/less, una aplicación de ayuda que “divide en páginas” los mensajes de correo largos. En consecuencia, presenta el siguiente indicador: /usr/bin/nail -> /usr/bin/less (H)eredar / (P)erfil / (N)o limitado / (D)enegar

SUGERENCIA El archivo ejecutable real de /usr/bin/mail resulta ser /usr/bin/nail (no es un error tipográfico). El programa /usr/bin/less parece ser un programa sencillo para desplazarse por el texto que tiene más de una pantalla de largo (y de hecho, es para lo que emplea /usr/bin/mail). No obstante, less es en realidad un programa grande y potente que hace uso de muchas otras aplicaciones de ayuda, como tar y rpm. SUGERENCIA Ejecute less con un archivo tarball o un archivo RPM y accederá al inventario de estos contenedores. No desea que rpm se ejecute automáticamente al leer mensajes de correo (esto conduciría directamente a ataques de virus similares a los de Microsoft* Outlook, dado que rpm puede instalar y modificar programas en el sistema) por lo que, en este caso, la mejor elección es Heredar. De este modo, el programa less se ejecuta en este contexto con el perfil de /usr/bin/mail. Esto tiene dos consecuencias:

62

Guía de administración de Novell AppArmor 2.0

• Deberá añadir todos los accesos a archivos básicos para /usr/bin/less al perfil de /usr/bin/mail. • Podrá evitar añadir las aplicaciones de ayuda, como tar y rpm, al perfil de /usr/ bin/mail, de modo que cuando /usr/bin/mail ejecute /usr/bin/mail/ less en este contexto, el programa less sea menos peligroso de lo que resultaría sin la protección de Novell AppArmor. En otras circunstancias, puede que sea preferible emplear la opción Perfil. Esto tiene dos efectos en logprof: • La regla escrita en el perfil es px, lo que fuerza la transición al perfil propio del elemento secundario. • logprof construye un perfil para el elemento secundario y empieza a construirlo, del mismo modo que construye el perfil principal, atribuyendo eventos del proceso secundario al perfil secundario y haciendo preguntas como las anteriores al usuario de logprof. Finalmente, es posible que desee proporcionar al proceso secundario un gran nivel acceso especificando No limitado. De esta forma se escribe ux en el perfil principal, de modo que, cuando el programa secundario se ejecute, lo hará sin que se aplique ningún perfil de Novell AppArmor en absoluto. Esto implica una ejecución sin protección, y sólo debe emplearse cuando sea absolutamente necesario.

apparmor.vim Un archivo de coloreado de sintaxis para el editor de texto vim destaca con colores las distintas funciones de un perfil de Novell AppArmor. Mediante vim y el modo de sintaxis de Novell AppArmor, podrá ver las implicaciones semánticas de los perfiles gracias a los colores destacados. Utilice vim para ver y editar los perfiles, escribiendo vim en una ventana de terminal. Para habilitar los colores de sintaxis al editar un perfil de Novell AppArmor en vim, utilice los comandos :syntax on y, a continuación, :set syntax=apparmor. Si lo desea, puede incluir estas líneas en el archivo ~/.vimrc: syntax on set modeline set modelines=5

Creación de perfiles de Novell AppArmor

63

Al habilitar esta función, vim aplicará colores a las líneas del perfil: Azul Líneas #include que activan otras reglas y comentarios de Novell AppArmor, que comienzan por #. Blanco Líneas normales de acceso de lectura. Marrón Declaraciones de capacidad e indicadores de queja. Amarillo Líneas que proporcionan acceso de escritura. Verde Líneas que proporcionan permiso de ejecución (ix o px). Rojo Líneas que proporcionan acceso sin limitación (ux). Fondo rojo Errores de sintaxis que no se cargarían correctamente en los módulos de AppArmor. NOTA Existe un riesgo de seguridad al emplear estas líneas en el archivo .vimrc, dado que harían que vim confiase en el modo de sintaxis presentado en los archivos que está editando. Un atacante podría enviar un archivo de vim diseñado para llevar a cabo acciones peligrosas al abrirse. Utilice las páginas Man sobre apparmor.vim y vim y la sintaxis :help desde el editor vim para obtener ayuda adicional sobre la función para destacar la sintaxis. La sintaxis de Novell AppArmor se almacena en /usr/share/vim/current/ syntax/apparmor.vim.

Unconfined El comando unconfined examina los puertos de red abiertos del sistema, los compara con el conjunto de perfiles cargados en el sistema y emite un informe sobre los servicios

64

Guía de administración de Novell AppArmor 2.0

de red que no disponen de perfiles de Novell AppArmor. Requiere privilegios de usuario Root y no estar limitado por un perfil de Novell AppArmor. El comando unconfined debe ejecutarse como usuario Root para recuperar el enlace al ejecutable del proceso desde el sistema de archivos de procesos. Este programa es susceptible a las siguientes limitaciones de ejecución: • Gestión incorrecta de los ejecutables no enlazados. • Los ejecutables iniciados antes de que se cargara su perfil de Novell AppArmor no aparecen en los resultados, aunque se estén ejecutando sin limitación. • Los procesos finalizados entre netstat(8) y las comprobaciones sucesivas no se gestionan. NOTA El programa sólo registra los procesos que utilizan los protocolos TCP y UDP. En resumen, este programa no es adecuado para usos forenses y sólo se proporciona como ayuda para aplicar perfiles a todos los procesos que acceden a la red. Para obtener más información sobre los fundamentos científicos y la seguridad de Novell AppArmor, consulte los siguientes documentos: SubDomain: Parsimonious Server Security (SubDomain: Seguridad austera para servidores) de Crispin Cowan, Steve Beattie, Greg Kroah-Hartman, Calton Pu, Perry Wagle y Virgil Gligor. Describe el diseño y la implementación iniciales de Novell AppArmor. Publicado en las actas de la conferencia USENIX LISA (diciembre de 2000, Nueva Orleans, Luisiana). Este documento no está actualizado y describe una sintaxis y funciones que se diferencian del producto Novell AppArmor actual. Este documento sólo debe utilizarse como material científico y no como documentación técnica. Defcon Capture the Flag: Defending Vulnerable Code from Intense Attack (Defcon, capturar la bandera: defensa de código vulnerable ante ataques intensivos) de Crispin Cowan, Seth Arnold, Steve Beattie, Chris Wright y John Viega. Una buena guía para el uso táctico y estratégico de Novell AppArmor para resolver programas de seguridad serios en un breve período de tiempo. Publicado en las Creación de perfiles de Novell AppArmor

65

actas de la conferencia y exposición de supervivencia de la información de DARPA (DISCEX III), en abril de 2003 (Washington, DC).

3.6 Nombres de vías y englobamiento El englobamiento (o la coincidencia de expresiones regulares) consiste en modificar la vía de directorios utilizando comodines para incluir un grupo de archivos o subdirectorios. Los recursos de archivos se pueden especificar con una sintaxis global similar a la utilizada en shells populares como csh, bash y zsh. *

Sustituye a cualquier número de caracteres, excepto /. Ejemplo: un número arbitrario de elementos de la vía, incluidos directorios completos.

**

Sustituye a cualquier número de caracteres, incluido /. Ejemplo: un número arbitrario de elementos de la vía, incluidos directorios completos.

?

Sustituye a cualquier carácter independiente, excepto /.

[abc]

Sustituye a los caracteres independientes a, b o c. Ejemplo: una regla que coincida con /home[01]/*/.plan permite a un programa acceder a los archivos .plan a los usuarios de /home0 y /home1.

66

[a-c]

Sustituye a los caracteres independientes a, b o c.

{ab,cd}

Una regla coincide con ab y con cd al mismo tiempo.

Guía de administración de Novell AppArmor 2.0

Ejemplo: una regla que coincida con /{usr,www}/pages/** proporcionará acceso a las páginas Web de /usr/pages y /www/pages.

3.7 Modos de permiso de acceso a archivos Los modos de permiso de acceso a archivos consisten en combinaciones de los seis modos siguientes: r

modo de lectura

w

modo de escritura

px

modo de ejecución discreta de perfiles

ux

modo de ejecución sin restricciones

ix

modo de ejecución heredado

l

modo de enlace

3.7.1 Modo de lectura Proporciona al programa acceso de lectura al recurso. El acceso de lectura es necesario para los guiones de shell y otro tipo de contenido interpretado, y determina si el núcleo de un proceso en ejecución puede volcarse o si el proceso puede adjuntarse a otro mediante el comando ptrace(2) [ptrace(2) es un comando empleado por utilidades como strace(1), ltrace(1) y gdb(1)].

Creación de perfiles de Novell AppArmor

67

3.7.2 Modo de escritura Proporciona al programa acceso de escritura al recurso. Los archivos deben disponer de este permiso para que sea posible cancelar su enlace (eliminarlos).

3.7.3 Modo de ejecución discreta de perfiles Este modo requiere que se haya definido un perfil de seguridad discreto para un recurso ejecutado en una transición de dominio de Novell AppArmor. Si no hay ningún perfil definido, se deniega el acceso. Es incompatible con las entradas de ejecución heredar y sin restricciones.

3.7.4 Modo de ejecución sin restricciones Permite al programa ejecutar el recurso sin aplicar ningún perfil de Novell AppArmor. Requiere que también se incluya el modo de ejecución. Es incompatible con las entradas de ejecución heredar y de perfil discreto. Este modo resulta útil cuando un programa limitado debe llevar a cabo una operación con privilegios, como reiniciar el equipo. Al colocar la sección con privilegios en otro ejecutable y proporcionar derechos de ejecución sin restricciones, es posible omitir las restricciones obligatorias impuestas a todos los procesos limitados. Para obtener más información acerca de lo que significan las restricciones, consulte la página Man sobre apparmor(7).

3.7.5 Modo de ejecución heredado Impide la transición normal de dominios de Novell AppArmor en execve(2) cuando el programa del perfil ejecuta el recurso. En lugar de ello, el recurso ejecutado hereda el perfil actual. Es incompatible con las entradas de ejecución sin restricciones y de perfil discreto. Este modo resulta útil cuando un programa limitado necesita llamar a otro programa limitado sin obtener los permisos del perfil del destino o perder los permisos del perfil actual. Este modo se utiliza con muy poca frecuencia.

68

Guía de administración de Novell AppArmor 2.0

3.7.6 Modo de enlace El modo de enlace media entre el acceso a enlaces simbólicos y físicos y el privilegio para anular el enlace de los archivos (suprimirlos). Cuando se crea un enlace, el archivo que lo recibe debe disponer de los mismos permisos de acceso que el enlace creado (con la excepción de que el destino no tiene que disponer necesariamente de acceso al enlace).

Creación de perfiles de Novell AppArmor

69

Gestión de aplicaciones con perfiles

4

Tras crear perfiles e inmunizar las aplicaciones, SUSE Linux es más efectivo y queda más protegido si se lleva a cabo un mantenimiento de los perfiles de Novell AppArmor, lo que implica realizar un seguimiento de los asuntos conflictivos comunes. Es posible tratarlos antes de que se conviertan en problemas estableciendo notificaciones de eventos por correo electrónico, efectuando informes periódicos, actualizando perfiles desde las entradas del registro del sistema (que básicamente consiste en ejecutar la herramienta logprof mediante YaST), o llevando a cabo las tareas de mantenimiento. En las siguientes secciones se ofrecen detalles para realizar estas tareas: • Sección 4.1, “Monitorización de las aplicaciones protegidas” (p. 71) • Sección 4.5, “Mantenimiento de los perfiles de seguridad” (p. 99).

4.1 Monitorización de las aplicaciones protegidas Las aplicaciones limitadas por los perfiles de seguridad de Novell AppArmor generan mensajes cuando se ejecutan de formas inesperadas o fuera de su perfil indicado. Es posible monitorizar estos mensajes mediante notificaciones de eventos, generando informes periódicos o mediante la integración en mecanismos de informes de otros fabricantes. En las siguientes secciones se ofrece información detallada sobre el uso de estas funciones y sobre cómo localizar recursos adicionales. • Sección 4.2, “Establecimiento de notificaciones de eventos” (p. 72)

Gestión de aplicaciones con perfiles

71

• Sección 4.3, “Informes” (p. 76) • Sección 4.4, “Reacción a los eventos de seguridad” (p. 98)

4.2 Establecimiento de notificaciones de eventos La notificación de eventos de seguridad 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. Esta función está disponible actualmente a través de YaST. Al introducir una dirección de correo electrónico, se le notificará por este medio cuando se produzcan eventos de seguridad de Novell AppArmor. Se pueden activar tres tipos de notificaciones: Notificaciones simples Las notificaciones simples muestran un resumen del número total de eventos sin ofrecer detalles. Por ejemplo: dhcp-101.up.wirex.com has had 10 security events since Tue Oct 12 11:10:00 2004

Notificación de resumen La notificación de resumen muestra los eventos de seguridad de Novell AppArmor registrados y presenta una lista del número de apariciones individuales, incluida la fecha de la última aparición. Por ejemplo: AppArmor: PERMITIENDO acceso a la capacidad 'setgid' (httpd2-prefork(6347) perfil /usr/sbin/httpd2-prefork activo /usr/sbin/httpd2-prefork) 2 veces, la última el Sáb 9 Oct 16:05:54 2004.

Notificación detallada La notificación detallada muestra los eventos de seguridad de Novell AppArmor registrados sin modificaciones. Informa siempre que ocurre un evento y escribe una línea nueva en el registro detallado. Estos eventos de seguridad incluyen la fecha y la hora en la que se produjeron, si el perfil de la aplicación ha permitido o rechazado el acceso y el tipo de permiso de acceso al archivo que se permite o se rechaza. La notificación detallada también genera varios mensajes que la herramienta logprof (consulte “logprof” (p. 57)) utiliza para interpretar los perfiles. Por ejemplo:

72

Guía de administración de Novell AppArmor 2.0

Oct 9 15:40:31 AppArmor: PERMITTING r access to /etc/apache2/httpd.conf (httpd2-prefork(6068) profile /usr/sbin/httpd2-prefork active /usr/sbin/httpd2-prefork)

NOTA Para configurar la notificación de eventos, consulte la Sección 4.2.2, “Configuración de la notificación de eventos de seguridad” (p. 73). Después de configurar la notificación de eventos de seguridad, lea los informes para determinar si los eventos requieren que se les haga un seguimiento. Este seguimiento puede incluir los procedimientos descritos en la Sección 4.4.1, “Recepción de un rechazo de evento de seguridad” (p. 98).

4.2.1 Notificación del nivel de gravedad Se puede configurar Novell AppArmor para que envíe mensajes de eventos para los elementos presentes en la base de datos de gravedad y cuya gravedad sea superior al nivel seleccionado. La gravedad se mide en una escala del uno al diez, siendo el diez el incidente de seguridad más grave. En el archivo severity.db se definen los niveles de gravedad de los eventos de seguridad potenciales. Estos niveles vienen determinados por la importancia de los distintos eventos de seguridad, por ejemplo si se accede a ciertos recursos o se deniegan servicios.

4.2.2 Configuración de la notificación de eventos de seguridad La notificación de eventos de seguridad es una función de Novell AppArmor que informa si se produce una actividad sistemática de Novell AppArmor. Al seleccionar una frecuencia de notificación (por ejemplo, recibir notificaciones diarias), se activa la notificación. Deberá introducir una dirección de correo electrónico para que se le notifique por este medio cuando se produzcan eventos de seguridad de Novell AppArmor.

Gestión de aplicaciones con perfiles

73

NOTA En SUSE Linux se debe instalar un servidor de correo que pueda enviar correo saliente mediante el protocolo SMTP (por ejemplo, postfix o exim) para que funcione la notificación de eventos. 1 En la sección Habilitar notificación de eventos de seguridad de la ventana Configuración de AppArmor, haga clic en Configurar.

2 En la ventana Notificación de eventos de seguridad tiene la opción de habilitar tres tipos de notificación de eventos: Notificación simple, Notificación de resumen o Notificación detallada, que se definen en la Sección 4.2.1, “Notificación del nivel de gravedad” (p. 73). Para que se le envíen mensajes de correo electrónico de notificación con los eventos de seguridad de Novell AppArmor recientes, determine sus preferencias de tipo de notificación. 3 Introduzca las direcciones de correo electrónico de los usuarios que deban recibir las notificaciones en el campo al efecto de cada sección de tipo de notificación aplicable. Si las notificaciones están habilitadas, deberá introducir una dirección de correo electrónico. Si no lo hace, recibirá un mensaje de error. Separe las distintas direcciones con comas.

74

Guía de administración de Novell AppArmor 2.0

4 Seleccione la frecuencia de notificación para cada tipo de notificación que desee habilitar. Seleccione una de estas opciones de frecuencia de notificación: • Inhabilitado • 1 minuto • 5 minutos • 10 minutos • 15 minutos • 30 minutos • 1 hora • 1 día • 1 semana 5 Para cada tipo de notificación seleccionada, elija el nivel de gravedad más bajo por el que se enviará una notificación. Los eventos de seguridad se registran y las notificaciones se envían en el momento indicado por el intervalo si los eventos tienen el nivel de seguridad seleccionado, o uno más alto. Si el intervalo es 1 día, la notificación se enviará a diario si se producen eventos de seguridad. Consulte la Sección 4.2.1, “Notificación del nivel de gravedad” (p. 73) para obtener más información acerca de los niveles de seguridad. 6 Haga clic en Aceptar. 7 Haga clic en Terminado en la ventana Configuración de Novell AppArmor. 8 Haga clic en Archivo → Salir en el Centro de control de YaST.

Gestión de aplicaciones con perfiles

75

4.3 Informes La función de creación de informes de Novell AppArmor añade flexibilidad, al mejorar la forma en que los usuarios pueden ver los datos de los eventos de seguridad. La herramienta de creación de informes hace lo siguiente: • Crea informes a petición. • Exporta informes. • Programa informes periódicos para archivar. • Envía por correo electrónico informes periódicos. • Filtra datos de informe por fecha. • Filtra datos de informe por otros criterios, como el nombre del programa. 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. También es posible exportar un archivo html o csv. Estos son los tres tipos de informes disponibles en Novell AppArmor: Resumen ejecutivo de seguridad Es un informe combinado que consta de uno o más informes de incidentes de seguridad provenientes de uno o más equipos. Este informe puede ofrecer una vista unificada de los eventos de seguridad en varias máquinas. Para obtener más información, consulte “Resumen ejecutivo de seguridad” (p. 86). Informe de auditoría de aplicaciones Se trata de una herramienta de auditoría que informa sobre qué servidores de aplicaciones se están ejecutando y si las aplicaciones están siendo limitadas por Novell AppArmor. Los servidores de aplicaciones son aplicaciones que aceptan conexiones de red entrantes. Para obtener más información, consulte “Informe de auditoría de aplicaciones” (p. 82).

76

Guía de administración de Novell AppArmor 2.0

Informe de incidentes de seguridad Se trata de un informe que muestra la seguridad de las aplicaciones de un sólo host. Informa sobre violaciones de directivas realizadas por aplicaciones limitadas localmente durante un periodo concreto de tiempo. Este informe se puede editar y personalizar o añadir nuevas versiones. Para obtener más información, consulte “Informe de incidentes de seguridad” (p. 84). Para utilizar las funciones de creación de informes de Novell AppArmor, siga este procedimiento: 1 Para ejecutar informes, abra YaST → Novell AppArmor. Se abrirá la interfaz de Novell AppArmor.

2 En Novell AppArmor, haga clic en Informes de AppArmor. Se abrirá la ventana Informe de evento de seguridad de AppArmor. Seleccione una opción en la ventana Informes y diríjase a la siguiente sección para obtener más instrucciones:

Gestión de aplicaciones con perfiles

77

Ver archivo Muestra todos los informes que se han ejecutado y almacenado en /var/ log/apparmor/reports-archived/. Seleccione el informe que desee ver en detalle y haga clic en Ver. Para ver instrucciones sobre la opción Ver archivo, diríjase a la Sección 4.3.1, “Visualización de los informes archivados” (p. 79). Ejecutar ahora Produce una versión instantánea del tipo de informe seleccionado. Si selecciona un informe de incidentes de seguridad, podrá filtrarlo de varias formas. Para ver instrucciones sobre la opción Ejecutar ahora, diríjase a la Sección 4.3.2, “Ejecutar ahora: ejecución de informes a petición” (p. 88). Añadir Permite crear un informe de incidentes de seguridad programado. Para ver instrucciones sobre la opción Añadir, diríjase a la Sección 4.3.3, “Adición de informes nuevos” (p. 91). Editar Permite editar un informe de incidentes de seguridad programado. Suprimir Suprime un informe de incidentes de seguridad programado. Los informes bursátiles o empaquetados no se pueden suprimir.

78

Guía de administración de Novell AppArmor 2.0

Atrás Vuelve a la pantalla principal de Novell AppArmor. Abortar Vuelve a la pantalla principal de Novell AppArmor. Siguiente Realiza la misma función que el botón Ejecutar ahora.

4.3.1 Visualización de los informes archivados La opción Ver informes permite especificar la ubicación de gran número de informes de uno o más sistemas, además de incluir la habilidad de filtrar por fechas o por los nombres de los programas a los que se ha accedido y mostrarlos todos juntos en un informe. 1 En la ventana Informe de evento de seguridad de AppArmor, seleccione Ver archivo.

Gestión de aplicaciones con perfiles

79

2 Seleccione el tipo de informe que desea ver. Puede cambiar de un tipo a otro: SIR (Informe de incidentes de seguridad), App Aud (Auditoría de aplicaciones) y ESS (Resumen ejecutivo de seguridad). 3 Se puede modificar la ubicación del directorio de los informes archivados en Ubicación de informes archivados. Seleccione Aceptar para utilizar el directorio actual o Examinar para buscar una ubicación de informes nueva. El directorio por defecto es /var/log/apparmor/reports-archived/. 4 Para ver todos los informes archivados, seleccione Ver todo. Para ver un informe específico, seleccione un archivo de informe del campo Informe y haga clic en Ver. 5 Para los informes Auditoría de aplicaciones y Resumen ejecutivo de seguridad, continúe en el Paso 9 (p. 82). 6 Se abrirá el Cuadro de diálogo de configuración de informes para el Informe de incidentes de seguridad.

7 El Cuadro de diálogo de configuración de informes permite filtrar los informes seleccionados en la pantalla anterior. Escriba los detalles de filtro deseados. Los campos son:

80

Guía de administración de Novell AppArmor 2.0

Rango de fechas Para mostrar los informes de un periodo de tiempo concreto, seleccione Filtrar por intervalo de fechas. Introduzca las fechas de inicio y final que definan el alcance del informe. Nombre de programa Si introduce un nombre de programa o un patrón que coincida con el nombre del archivo binario ejecutable del programa que le interesa, el informe mostrará los eventos de seguridad que se hayan producido para ese programa específico. Nombre de perfil Si se introduce el nombre del perfil, el informe mostrará los eventos de seguridad que se hayan generado para el perfil especificado. Puede utilizarlo para comprobar qué limita un perfil específico. Número PID El Número PID es un número que identifica exclusivamente un proceso concreto o un programa en ejecución (este número sólo será válido durante la duración del proceso). Nivel de gravedad Seleccione el nivel de gravedad más bajo de los eventos de seguridad que se deban incluir en el informe. Se incluirán en los informes los eventos del nivel de gravedad seleccionado y los de gravedad mayor. Detalles Un origen al que el perfil ha denegado el acceso, incluidas las capacidades y los archivos. Se puede utilizar este campo para hacer un informe de los recursos a los que los perfiles impiden el acceso. Tipo de acceso El tipo de acceso describe lo que está ocurriendo en realidad con el evento de seguridad. Las opciones son: permiso, rechazo o auditoría. Modo El Modo es el permiso que el perfil otorga al programa o al proceso al que se aplica. Las opciones son: r (lectura) w (escritura) l (enlace) x (ejecutar).

Gestión de aplicaciones con perfiles

81

Tipo de exportación Permite exportar un archivo CSV (valores separados por comas) o HTML. El archivo CSV separa datos de las entradas de registro con comas utilizando un formato estándar de datos para que se puedan importar en aplicaciones orientadas a tablas. Se puede introducir una vía para el informe exportado escribiendo la vía completa en el campo al efecto. Ubicación de almacenamiento del registro Permite cambiar la ubicación de almacenamiento del informe exportado. La ubicación por defecto es /var/log/apparmor/reports-exported. Si cambia esta ubicación, haga clic en Aceptar. Seleccione Examinar para desplazarse por el sistema de archivos. 8 Para ver el informe, con los filtros oportunos, seleccione Siguiente. Se mostrará uno de los tres informes. 9 Consulte las secciones siguientes para obtener información detallada sobre cada tipo de informe. • Para el informe de auditoría de aplicaciones, consulte “Informe de auditoría de aplicaciones” (p. 82). • Para el informe de incidentes de seguridad, consulte “Informe de incidentes de seguridad” (p. 84). • Para el informe de resumen ejecutivo, consulte “Resumen ejecutivo de seguridad” (p. 86).

Informe de auditoría de aplicaciones Herramienta de auditoría que informa de los servidores de aplicaciones que se están ejecutando y de si AppArmor está limitando las aplicaciones. Los servidores de aplicaciones son aplicaciones que aceptan conexiones de red entrantes. Este informe proporciona la dirección IP del equipo host, la fecha en la que se realizó el informe de auditoría de la aplicación, el nombre y la vía del programa sin limitación o del servidor de la aplicación, el perfil sugerido o un espacio reservado para un perfil para un programa sin limitación, el número ID del proceso, el estado del programa (si está limitado o no) y el tipo de limitación que está efectuando el perfil (aplicación o queja).

82

Guía de administración de Novell AppArmor 2.0

La siguiente pantalla representa un informe de auditoría de aplicación:

A continuación se definen los campos del informe de auditoría de aplicación: Host El equipo protegido por AppArmor sobre cuyos eventos de seguridad se está informando. Fecha La fecha en la que se produjeron los eventos de seguridad. Programa El nombre del proceso en ejecución. Perfil El nombre completo del perfil de seguridad que se aplica al proceso. PID El número PID del proceso es un número que identifica exclusivamente un proceso concreto o un programa en ejecución (este número sólo será válido durante la duración del proceso).

Gestión de aplicaciones con perfiles

83

Estado Este campo indica si el programa presente en el campo de programa está limitado. Si no lo está, debería plantearse crear un perfil para él. Tipo Este campo indica el tipo de limitación que representa el evento de seguridad: aplicación o queja. Si la aplicación no está limitada (estado), no se informará de ningún tipo de limitación.

Informe de incidentes de seguridad Se trata de un informe que muestra los eventos de seguridad de interés para los administradores. El SIR informa sobre violaciones de directivas realizadas por aplicaciones limitadas localmente durante un periodo concreto de tiempo. Estos informes presentan las excepciones de la directiva y los cambios de estado del motor de la directiva. Estos dos tipos de eventos de seguridad se definen de la siguiente forma: Excepciones de la directiva Cuando una aplicación solicita un recurso que no está definido dentro de su perfil, se activa un evento de seguridad. Se genera un informe que muestra los eventos de seguridad de interés para los administradores. El SIR informa sobre violaciones de directivas realizadas por aplicaciones limitadas localmente durante un periodo concreto de tiempo. Estos informes presentan las excepciones de la directiva y los cambios de estado del motor de la directiva. Cambios de estado del motor de la directiva Aplica la directiva para las aplicaciones y mantiene su propio estado, incluido si los motores se inician o se detienen, si se vuelve a cargar una directiva y si la función de seguridad global está habilitada o no. La siguiente pantalla representa un informe de incidentes de seguridad:

84

Guía de administración de Novell AppArmor 2.0

A continuación se definen los campos del informe de incidentes de seguridad: Host El equipo protegido por AppArmor sobre cuyos eventos de seguridad se está informando. Fecha La fecha en la que se produjeron los eventos de seguridad. Programa El nombre del proceso en ejecución. Perfil El nombre completo del perfil de seguridad que se aplica al proceso. PID El número PID del proceso es un número que identifica exclusivamente un proceso concreto o un programa en ejecución (este número sólo será válido durante la duración del proceso). Gravedad Los niveles de seguridad de los eventos se toman de la base de datos de gravedad. En esta base de datos se define la importancia de los eventos potenciales de

Gestión de aplicaciones con perfiles

85

seguridad. La gravedad se mide en una escala del uno al diez, siendo el diez el incidente de seguridad más grave. Estos niveles vienen determinados por la importancia o el grado de amenaza de los distintos eventos de seguridad, por ejemplo si se accede a ciertos recursos o se deniegan servicios. Modo El modo es el permiso que el perfil otorga al programa o al proceso al que se aplica. Las opciones son: r (lectura) w (escritura) l (enlace) y x (ejecutar). Detalles Un origen al que el perfil ha denegado el acceso, incluidas las capacidades y los archivos. Se puede utilizar este campo para hacer un informe de los recursos a los que los perfiles impiden el acceso. Tipo de acceso El tipo de acceso describe lo que está ocurriendo en realidad con el evento de seguridad. Las opciones son: permiso, rechazo o auditoría.

Resumen ejecutivo de seguridad Es un informe combinado que consta de uno o más informes de alto nivel provenientes de uno o más equipos. Este informe puede ofrecer una vista unificada de los eventos de seguridad de varias máquinas, si los datos de estos equipos se copian en el directorio de archivo de informes, /var/log/apparmor/reports-archived. Este informe proporciona la dirección IP del equipo host, las fechas de inicio y fin de los eventos sondeados, el número total de rechazos, el número total de eventos, los niveles medios de gravedad registrados y el nivel de seguridad más alto registrado. Una línea de este informe representa un rango de informes de incidentes de seguridad. En la siguiente pantalla se muestra un resumen ejecutivo de seguridad.

86

Guía de administración de Novell AppArmor 2.0

A continuación se definen los campos del resumen ejecutivo de seguridad: Host El equipo protegido por AppArmor sobre cuyos eventos de seguridad se está informando. Fecha de inicio La fecha de inicio del periodo para el que se está creando el informe de eventos de seguridad. Fecha de finalización La fecha de finalización del periodo para el que se está creando el informe de eventos de seguridad. Número de rechazos En el periodo indicado, el número total de eventos de seguridad consistentes en intentos de acceso rechazados. Número de eventos En el periodo indicado, el número total de eventos de seguridad.

Gestión de aplicaciones con perfiles

87

Gravedad media La media de los niveles de gravedad registrados en el periodo indicado. Los eventos de gravedad desconocida no se tienen en cuenta en este cálculo. Gravedad más alta La gravedad del evento de gravedad más alta registrado en el periodo indicado.

4.3.2 Ejecutar ahora: ejecución de informes a petición La función de informes Ejecutar ahora permite extraer de manera instantánea información de informes de los registros de eventos de Novell AppArmor sin tener que esperar a los eventos programados. Vuelva al principio de esta sección si necesita ayuda para volver a la pantalla principal de informes (consulte la Sección 4.3, “Informes” (p. 76)). Lleve a cabo estos pasos para ejecutar un informe de la lista: 1 Seleccione el informe que desee ejecutar de forma inmediata en la lista de informes de la ventana Programar informes. 2 Seleccione Ejecutar ahora o Siguiente. La siguiente pantalla dependerá del informe que haya seleccionado en el paso anterior. Para los informes Auditoría de aplicaciones y Resumen ejecutivo de seguridad, continúe en el Paso 6 (p. 90). 3 Se abrirá el Cuadro de diálogo de configuración de informes para los Informes de incidentes de seguridad.

88

Guía de administración de Novell AppArmor 2.0

4 El Cuadro de diálogo de configuración de informes permite filtrar los informes seleccionados en la pantalla anterior. Escriba los detalles de filtro deseados. Están disponibles las opciones siguientes de filtro: Rango de fechas Para limitar los informes a un periodo de tiempo concreto, seleccione Filtrar por intervalo de fechas. Introduzca las fechas de inicio y final que determinen el alcance del informe. Nombre de programa Si introduce un nombre de programa o un patrón que coincida con el nombre del archivo binario ejecutable del programa que le interesa, el informe mostrará los eventos de seguridad que se hayan producido sólo para el programa especificado. Nombre de perfil Si se introduce el nombre del perfil, el informe mostrará los eventos de seguridad que se hayan generado para el perfil especificado. Puede utilizarlo para comprobar qué limita un perfil específico.

Gestión de aplicaciones con perfiles

89

Número PID El número PID del proceso es un número que identifica exclusivamente un proceso concreto o un programa en ejecución (este número sólo será válido durante la duración del proceso). Nivel de gravedad Seleccione el nivel de gravedad más bajo de los eventos de seguridad que se deban incluir en el informe. Se incluirán en los informes los eventos del nivel de gravedad seleccionado y los de gravedad mayor. Detalles Un origen al que el perfil ha denegado el acceso, incluidas las capacidades y los archivos. Se puede utilizar este campo para hacer un informe de los recursos a los que los perfiles impiden el acceso. Tipo de acceso El tipo de acceso describe lo que está ocurriendo en realidad con el evento de seguridad. Las opciones son: permiso, rechazo o auditoría. Modo El modo es el permiso que el perfil otorga al programa o al proceso al que se aplica. Las opciones son: r (lectura) w (escritura) l (enlace) y x (ejecutar). Tipo de exportación Permite exportar un archivo CSV (valores separados por comas) o HTML. El archivo CSV separa datos de las entradas de registro con comas utilizando un formato estándar de datos para que se puedan importar en aplicaciones orientadas a tablas. Se puede introducir una vía para el informe exportado escribiendo la vía completa en el campo al efecto. Ubicación de almacenamiento del registro Permite cambiar la ubicación de almacenamiento del informe exportado. La ubicación por defecto es /var/log/apparmor/reports-exported. Si cambia esta ubicación, haga clic en Aceptar. Seleccione Examinar para desplazarse por el sistema de archivos. 5 Para ver el informe, con los filtros oportunos, seleccione Siguiente. Se mostrará uno de los tres informes. 6 Consulte las secciones siguientes para obtener información detallada sobre cada tipo de informe.

90

Guía de administración de Novell AppArmor 2.0

• Para el informe de auditoría de aplicaciones, consulte “Informe de auditoría de aplicaciones” (p. 82). • Para el informe de incidentes de seguridad, consulte “Informe de incidentes de seguridad” (p. 84). • Para el informe de resumen ejecutivo, consulte “Resumen ejecutivo de seguridad” (p. 86).

4.3.3 Adición de informes nuevos La adición de nuevos informes permite crear un informe de incidentes de seguridad programado que muestre los eventos de seguridad de Novell AppArmor según los filtros definidos previamente. Si los informes están configurados con la opción Programar informes, se generará periódicamente un informe de los eventos de seguridad de Novell AppArmor que se hayan producido en el sistema. Es posible configurar que se genere un informe diario, semanal, mensual o cada hora durante el periodo de tiempo especificado. Se puede establecer que los informes muestren los rechazos de niveles de seguridad concretos o que realicen un filtro por nombre de programa, nombre de perfil, nivel de seguridad o recursos denegados. Este informe se puede exportar a un archivo HTML (lenguaje de marcas de hipertexto) o CSV (valores separados por comas). NOTA Vuelva al principio de esta sección si necesita ayuda para volver a la pantalla principal de informes (consulte la Sección 4.3, “Informes” (p. 76)). Para añadir un nuevo informe de incidentes de seguridad programado, haga lo siguiente: 1 Haga clic en Añadir para crear un nuevo informe de incidentes de seguridad. Se abrirá la primera página de Añadir SIR programado.

Gestión de aplicaciones con perfiles

91

2 Complete los campos con la siguiente información de filtro, según se precise: Nombre de informe Especifique el nombre del informe. Utilice nombres que permitan diferenciar claramente los informes entre sí. Día del mes Seleccione el día del mes en el que se efectuarán los informes mensuales. Si selecciona Todo, los filtros mensuales no se aplicarán. Día de la semana Seleccione el día de la semana en el que se efectuarán los informes semanales, si se desea. Si selecciona Todo, los filtros semanales no se aplicarán. Si están activados los informes mensuales, este campo estará definido por defecto en Todo. Hora y Minuto Permite seleccionar la hora. De esta forma se indica la hora y el minuto en los que desea que se efectúe el informe. Si no cambia la hora, los informes seleccionados se ejecutarán a media noche. Si no se han seleccionado ni valores de mes ni de semana, el informe se efectuará todos los días a la hora especificada. Correo electrónico de destino Puede enviar el informe de incidentes de seguridad programado por correo electrónico hasta a tres destinatarios. Sólo hay que introducir las direcciones electrónicas de los usuarios que necesiten esta información.

92

Guía de administración de Novell AppArmor 2.0

Tipo de exportación Esta opción permite exportar un archivo CSV (valores separados por comas) o HTML. El archivo CSV separa datos de las entradas de registro con comas utilizando un formato estándar de datos para que se puedan importar en aplicaciones orientadas a tablas. Se puede introducir una vía para el informe exportado escribiendo la vía completa en el campo al efecto. Ubicación de almacenamiento del registro Permite cambiar la ubicación de almacenamiento del informe exportado. La ubicación por defecto es /var/log/apparmor/reports-exported. Si cambia esta ubicación, haga clic en Aceptar. Seleccione Examinar para desplazarse por el sistema de archivos. 3 Haga clic en Siguiente para continuar a la segunda página del asistente Añadir SIR programado.

4 Complete los campos con la siguiente información de filtro, según se precise: Nombre de programa Es posible indicar un nombre de programa o un patrón que coincida con el nombre del archivo binario ejecutable del programa que interese. Este informe muestra los eventos de seguridad que se hayan producido sólo para el programa indicado. Nombre de perfil Es posible indicar el nombre del perfil para el que se deban mostrar en el informe los eventos de seguridad. Puede utilizarlo para comprobar qué limita un perfil específico.

Gestión de aplicaciones con perfiles

93

Número PID El número PID del proceso es un número que identifica exclusivamente un proceso concreto o un programa en ejecución (este número sólo será válido durante la duración del proceso). Detalles Un origen al que el perfil ha denegado el acceso, incluidas las capacidades y los archivos. Se puede utilizar este campo para crear un informe de los recursos a los que los perfiles impiden el acceso. Gravedad Seleccione el nivel de gravedad más bajo de los eventos de seguridad que se deban incluir en el informe. Se incluirán en los informes los eventos del nivel de gravedad seleccionado y los de gravedad mayor. Tipo de acceso El tipo de acceso describe lo que está ocurriendo en realidad con el evento de seguridad. Las opciones son: permiso, rechazo o auditoría. Modo El modo es el permiso que el perfil otorga al programa o al proceso al que se aplica. Las opciones son: r (lectura) w (escritura) l (enlace) y x (ejecutar). 5 Haga clic en Guardar para guardar este informe. Novell AppArmor volverá a la ventana principal de Programar informes, donde aparecerá el informe recién programado en la lista de informes.

4.3.4 Edición de informes En la pantalla Informes de AppArmor es posible seleccionar y editar un informe. Los informes bursátiles no se pueden editar ni suprimir. NOTA Vuelva al principio de esta sección si necesita ayuda para volver a la pantalla principal de informes (consulte la Sección 4.3, “Informes” (p. 76)). Lleve a cabo estos pasos para ejecutar un informe de la lista:

94

Guía de administración de Novell AppArmor 2.0

1 En la lista de informes de la ventana Programa informes, seleccione el informe que desee editar. 2 Haga clic en Editar para modificar el informe de incidentes de seguridad. Se abrirá la primera página de Editar SIR programado.

3 Introduzca la siguiente información de filtros, si es necesario: Día del mes Seleccione el día del mes en el que se efectuarán los informes mensuales. Si selecciona Todo, los filtros mensuales no se aplicarán. Día de la semana Seleccione el día de la semana en el que se efectuarán los informes semanales. Si selecciona Todo, los filtros semanales no se aplicarán. Si están activados los informes mensuales, este campo estará definido por defecto en Todo. Hora y Minuto Permite seleccionar la hora. De esta forma se indica la hora y el minuto en los que desea que se efectúe el informe. Si no cambia la hora, el informe seleccionado se ejecutará a media noche. Si no se ha seleccionado ni el mes ni el día de la semana, el informe se ejecutará todos los días a la hora indicada. Correo electrónico de destino Puede enviar el informe de incidentes de seguridad programado por correo electrónico hasta a tres destinatarios. Sólo hay que introducir las direcciones electrónicas de los usuarios que necesiten esta información.

Gestión de aplicaciones con perfiles

95

Tipo de exportación Esta opción permite exportar un archivo CSV (valores separados por comas) o HTML. El archivo CSV separa datos de las entradas de registro con comas utilizando un formato estándar de datos para que se puedan importar en aplicaciones orientadas a tablas. Se puede introducir una vía para el informe exportado escribiendo la vía completa en el campo al efecto. Ubicación de almacenamiento del registro Permite cambiar la ubicación de almacenamiento del informe exportado. La ubicación por defecto es /var/log/apparmor/reports-exported. Si cambia esta ubicación, haga clic en Aceptar. Seleccione Examinar para desplazarse por el sistema de archivos. 4 Haga clic en Siguiente para continuar a la siguiente página del asistente Editar SIR programado. Se abrirá la segunda página de Editar SIR programado.

5 Complete los campos con la siguiente información de filtro, según se precise: Nombre de programa Es posible indicar un nombre de programa o un patrón que coincida con el nombre del archivo binario ejecutable del programa que interese. Este informe muestra los eventos de seguridad que se hayan producido sólo para el programa indicado. Nombre de perfil Es posible indicar el nombre del perfil para el que se deban mostrar los eventos de seguridad. Puede utilizarlo para comprobar qué limita un perfil específico.

96

Guía de administración de Novell AppArmor 2.0

Número PID El número PID del proceso es un número que identifica exclusivamente un proceso concreto o un programa en ejecución (este número sólo será válido durante la duración del proceso). Detalles Un origen al que el perfil ha denegado el acceso, incluidas las capacidades y los archivos. Se puede utilizar este campo para crear un informe de los recursos a los que los perfiles impiden el acceso. Gravedad Seleccione el nivel de gravedad más bajo de los eventos de seguridad que se deban incluir en el informe. Se incluirán en los informes los eventos del nivel de gravedad seleccionado y los de gravedad mayor. Tipo de acceso El tipo de acceso describe lo que está ocurriendo en realidad con el evento de seguridad. Las opciones son: permiso, rechazo o auditoría. Modo El modo es el permiso que el perfil otorga al programa o al proceso al que se aplica. Las opciones son: r (lectura) w (escritura) l (enlace) y x (ejecutar). 6 Seleccione Guardar para guardar los cambios en este informe. Novell AppArmor volverá a la ventana principal de Programar informes, donde aparecerá el informe programado en la lista de informes.

4.3.5 Supresión de informes La opción Suprimir permite eliminar de forma permanente un informe de la lista de informes programados de Novell AppArmor. Para suprimir un informe, siga estas instrucciones: 1 Para eliminar un informe de la lista de informes, destáquelo y haga clic en Suprimir. 2 En el cuadro emergente de confirmación, haga clic en Cancelar si no desea suprimir el informe seleccionado. Si está seguro de que desea eliminarlo de forma permanente, haga clic en Suprimir.

Gestión de aplicaciones con perfiles

97

4.4 Reacción a los eventos de seguridad Existen algunos problemas de mantenimiento comunes que se deben inspeccionar regularmente y solucionar según las reglas que haya establecido. A continuación se describen algunos problemas comunes de mantenimiento que puede encontrar: • Sección 4.4.1, “Recepción de un rechazo de evento de seguridad” (p. 98). • Sección 4.5.2, “Cambio de los perfiles de seguridad” (p. 100).

4.4.1 Recepción de un rechazo de evento de seguridad Si recibe un rechazo, examine la violación de acceso y determine si el evento indica la presencia de una amenaza o forma parte del comportamiento normal de la aplicación. Se requieren conocimientos específicos de la aplicación para determinarlo. Si el rechazo es parte del comportamiento normal, ejecutar logprof en la línea de comandos o Asistente para actualizar perfiles en Novell AppArmor permitirá repetir el procedimiento en todos los mensajes de rechazo. Si se selecciona el que coincida con el rechazo concreto, se podrá actualizar automáticamente el perfil. Si el rechazo no forma parte del comportamiento normal de la aplicación, este acceso se considerará como un posible intento de intrusión (que se evitó) y esta notificación se enviará a la persona responsable de la seguridad de la organización.

4.4.2 Cambio de la seguridad de la aplicación Los usuarios siempre pueden editar manualmente el perfil, utilizando el comando vim en la línea de comandos o la opción Editar perfil de YaST.

98

Guía de administración de Novell AppArmor 2.0

4.5 Mantenimiento de los perfiles de seguridad En un entorno de producción se debe programar el mantenimiento de los perfiles de todas las aplicaciones instaladas. Las directivas de seguridad son una parte integral de la instalación. Se debe programar y tomar medidas para realizar copias de seguridad y restaurar los archivos de directivas de seguridad, programar los cambios del software y permitir cualquier modificación de las directivas de seguridad necesaria según dicte el entorno. Estos elementos se tratan en las secciones siguientes: • Sección 4.5.1, “Copia de seguridad de los perfiles de seguridad” (p. 99). • Sección 4.5.2, “Cambio de los perfiles de seguridad” (p. 100). • Sección 4.5.3, “Introducción de nuevo software en el entorno” (p. 100).

4.5.1 Copia de seguridad de los perfiles de seguridad Dado que crear perfiles lleva tiempo, es lógico realizar copias de seguridad de ellos. Esto puede evitar que tenga que crear de nuevo perfiles para todos los programas si se produce un fallo del sistema. Asimismo, si los perfiles se cambian, se podrán restaurar fácilmente los valores anteriores utilizando los archivos de copia de seguridad. Haga copias de seguridad de los perfiles copiando los archivos de perfil en un directorio específico. 1 Primero se deben archivar los archivos en un archivo de respaldo. Para ello, abra una ventana de terminal e introduzca lo siguiente como usuario Root: tar zclpf profiles.tgz /etc/apparmor.d

El método más sencillo para asegurarse de que se realizan copias de seguridad regulares de los archivos de directivas de seguridad es incluir el directorio /etc/ apparmor.d en la lista de directorios de los que el sistema efectúa copias de seguridad.

Gestión de aplicaciones con perfiles

99

2 También puede utilizar el comando scp o un administrador de archivos como Konqueror o Nautilus para almacenar los archivos en algún tipo de soporte de almacenamiento, en la red o en otro equipo.

4.5.2 Cambio de los perfiles de seguridad El mantenimiento de los perfiles de seguridad incluye cambiarlos si se decide que el sistema necesita más o menos seguridad en sus aplicaciones. Para cambiar los perfiles de Novell AppArmor, consulte la Sección 3.3.3, “Edición de perfiles” (p. 30).

4.5.3 Introducción de nuevo software en el entorno Si se añade una versión nueva o un parche de una aplicación al sistema, siempre hay que actualizar el perfil para que se adapte convenientemente. Existen varias opciones que dependen de la estrategia de instalación de software de la empresa. Los parches y actualizaciones se pueden instalar en un entorno de prueba o en un entorno de producción. A continuación se explica cómo hacerlo con estos métodos. Si pretende instalar un parche o actualizar en un entorno de prueba, el mejor método para actualizar los perfiles es uno de los siguientes: • Ejecute el asistente de creación de perfiles seleccionando Asistente para añadir perfiles en YaST. De esta forma se actualiza el conjunto de perfiles de aplicación con la producción actual con el menor esfuerzo. Si desea obtener instrucciones detalladas, consulte la Sección 3.3.1, “Adición de perfiles mediante el asistente” (p. 18). • Ejecute genprof escribiendo genprof en una ventana de terminal tras iniciar sesión como usuario Root. Para obtener información detallada, consulte “genprof” (p. 51). Si pretende instalar un parche o actualizar directamente en un entorno de producción, el mejor método para actualizar los perfiles es uno de los siguientes: • Monitorice con frecuencia el sistema para determinar si se deben añadir nuevos rechazos al perfil y actualícelo según resulte conveniente mediante el comando logprof. Para obtener información detallada, consulte “logprof” (p. 57). 100

Guía de administración de Novell AppArmor 2.0

• Ejecute las herramientas de creación de perfiles para determinar el nuevo comportamiento de la aplicación (existe un alto riesgo de seguridad, ya que se permiten y registran todos los accesos, que no se rechazan). Si desea obtener instrucciones detalladas, consulte la Sección 3.3.5, “Actualización de perfiles a partir de entradas del registro del sistema” (p. 32).

Gestión de aplicaciones con perfiles

101

Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache

5

Un perfil de Novell® AppArmor representa la directiva de seguridad para un programa o un proceso concretos. Se aplica a un programa ejecutable, pero si una porción del programa necesita permisos de acceso distintos que otras porciones, el programa puede “cambiar de sombrero” para utilizar un contexto de seguridad distinto, diferente del acceso del programa principal. Esto se conoce como un hat (sombrero en inglés) o subperfil. ChangeHat permite a los programas cambiar de un hat de un perfil Novell AppArmor a otro. Permite definir la seguridad a un nivel más preciso que los procesos. Esta función requiere que todas las aplicaciones se hagan “compatibles con ChangeHat”, lo que significa que se modifican para realizar una petición al módulo de Novell AppArmor para cambiar los dominios de seguridad en momentos arbitrarios durante la ejecución de la aplicación. Un perfil puede tener un número arbitrario de subperfiles, pero sólo hay dos niveles: un subperfil no admite más subperfiles subordinados. Los subperfiles se escriben como perfiles distintos y reciben un nombre que contiene el nombre del perfil, seguido por el nombre del subperfil separados por el símbolo ^. Los subperfiles se deben almacenar en el mismo archivo que su perfil principal. NOTA Para obtener más información, consulte la página Man de change_hat.

Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache

103

5.1 Apache ChangeHat Novell AppArmor incluye el módulo mod-apparmor para el programa Apache. El módulo mod-apparmor funciona en el sistema SUSE Linux para hacer que el servidor Web Apache se haga “compatible con ChangeHat”. Se instala si Apache se encuentra presente en el sistema. Cuando Apache sea compatible con ChangeHat, buscará los siguientes perfiles de seguridad personalizados de Novell AppArmor en el orden otorgado para cada solicitud de URI que reciba. • El hat específico para el URI (por ejemplo, ^phpsysinfo-dev/templates/ classic/images/bar_left.gif) • DEFAULT_URI • HANDLING_UNTRUSTED_INPUT Si dispone del servidor Apache 2 necesario instalado en el sistema, el módulo mod-apparmor se instala automáticamente con Novell AppArmor y se añade a la configuración de Apache. Apache 1.3 no es compatible. NOTA Si instala mod-apparmor sin Novell AppArmor, tendrá que asegurarse de que el módulo de carga de Apache dispone de un comando en el archivo de configuración que cargue el módulo mod-apparmor añadiendo la siguiente línea al archivo de configuración de Apache: LoadModule change_hat_module modules/mod_change_hat.so

5.1.1 Herramientas para la gestión de aplicaciones compatibles con ChangeHat Al igual que ocurre con la mayoría de las herramientas de Novell AppArmor, se pueden usar dos métodos para gestionar ChangeHat: YaST o la interfaz de línea de comandos.

104

Guía de administración de Novell AppArmor 2.0

Es mucho más flexible gestionar las aplicaciones compatibles con ChangeHat desde la línea de comandos, pero el proceso es también más complicado. Ambos métodos permiten gestionar los hats de las aplicaciones y llenarlos con entradas de perfil. En los siguientes pasos se realiza una demostración en la que se añaden hats a un perfil de Apache mediante YaST. En el Asistente para añadir perfiles, las utilidades de creación de perfiles de Novell AppArmor solicitan que se creen nuevos hats para solicitudes de URI distintas. Si se decide crear un hat nuevo, se podrán crear perfiles individuales para cada URI. De esta forma podrá crear reglas muy estrictas para cada solicitud. Si el URI que se está procesando no representa un procesamiento significativo, o si no supone un riesgo de seguridad importante, podrá seleccionar de forma segura la opción Usar hat por defecto para procesar este URI en el hat por defecto, que es el perfil de seguridad por defecto. En la demostración, se ha creado un hat nuevo para el URI phpsysinfo-dev y sus accesos posteriores. Mediante las herramientas de creación de perfiles, se ha determinado lo que se añade a este nuevo hat. El hat resultante se convierte en un contenedor de alta seguridad que comprende todo el procesamiento del servidor que se produce cuando el URI phpsysinfo-dev se pasa al servidor Web Apache. En esta demostración se ha generado un perfil para la aplicación phpsysinfo (consulte http://phpsysinfo.sourceforge.net para obtener más información). Se presupone que el paquete phpsysinfo-dev está instalado en /srv/www/htdocs/ phpsysinfo-dev/ en una instalación limpia (nueva) de Novell AppArmor. 1 Una vez instalado phpsysinfo-dev, podrá añadir hats al perfil de Apache. En la interfaz de Novell AppArmor, seleccione el Asistente para añadir perfiles.

Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache

105

2 En Perfil que añadir, indique httpd2-prefork. 3 Haga clic en Crear perfil. Se abrirá la ventana del Asistente de perfiles de Novell AppArmor.

4 Reinicie Apache introduciendo el comando rcapache2 restart en una ventana de terminal.

106

Guía de administración de Novell AppArmor 2.0

NOTA Reinicie en este momento cualquier programa para el que esté creando un perfil. 5 Abra http://localhost/phpsysinfo-dev/ en una ventana del navegador Web. La ventana del navegador mostrará el uso de la red y la información del sistema. NOTA Para garantizar que el servidor procesa esta solicitud y que no se revisan datos de caché del navegador, deberá actualizar la página. Para ello, haga clic en el botón Actualizar del navegador para asegurarse de que Apache procesa la solicitud para el URI phpsysinfo-dev. 6 Haga clic en Explorar registro del sistema en busca de entradas que añadir a los perfiles. Novell AppArmor abrirá la herramienta logprof, que explorará toda la información adquirida en el paso anterior. Empezará a realizar preguntas sobre el perfil. 7 En nuestra demostración, logprof presenta primero las opciones Añadir hat pedido o Usar hat por defecto, ya que ha notado que phpsysinfo-dev ha accedido a un URI. Seleccione Añadir hat pedido.

Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache

107

8 Haga clic en Permitir Al seleccionar Añadir hat pedido en el paso anterior, se crea un hat nuevo en el perfil e indica que las preguntas siguientes acerca de las acciones del guión se añadan al hat recién creado, en lugar de al hat por defecto para esta aplicación. En la pantalla siguiente, Novell AppArmor muestra un programa externo que ha ejecutado el guión. Puede indicar que el programa se debe ejecutar con las limitaciones indicadas por el hat phpsysinfo-dev (haga clic en Heredar), con las limitaciones de un perfil distinto (haga clic en Perfil) o que se ejecute sin limitaciones o sin ningún perfil de seguridad (haga clic en No limitado). Si se elige Perfil, se creará un perfil nuevo para el programa, si no existe ya uno. NOTA Si se selecciona No limitado se puede crear un agujero de seguridad importante y se debe tener precaución a la hora de elegir esta opción.

108

Guía de administración de Novell AppArmor 2.0

a Seleccione Heredar para la vía /bin/bash. De esta forma se añadirá /bin/bash/ (al que accede Apache) al perfil hat phpsysinfo-dev con los permisos necesarios. b Haga clic en Permitir. 9 Las siguientes preguntas le solicitarán que genere nuevos hats y que añada entradas para el perfil y sus hats. El proceso de adición de entradas a perfiles se trata de forma detallada en la Sección 3.3.1, “Adición de perfiles mediante el asistente” (p. 18). Cuando haya respondido a todas las preguntas, haga clic en Finalizar para guardar los cambios y salir del asistente. A continuación se muestra un ejemplo del aspecto que puede tener un hat phpsyinfodev.

Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache

109

Ejemplo 5.1 Ejemplo de hat phpsysinfo-dev ^phpsysinfo { #include <program-chunks/base-files> /bin/df /bin/bash /dev/tty /etc/SuSE-release /etc/fstab /etc/hosts /etc/mtab /proc/** /sbin/lspci /srv/www/htdocs/sysinfo/** /sys/bus/pci/devices /sys/devices/** /usr/bin/who /usr/share/pci.ids /var/log/apache2/{access,error}_log /var/run/utmp }

ix, ix, rw, r, r, r, r, r, ix, r, r, r, ix, r, w, r,

NOTA El perfil ^phpsysinfo-dev sólo será válido en el contexto de un proceso que se ejecute en el perfil principal httpd2-prefork.

5.1.2 Adición de hats y de entradas a hats Cuando se utiliza el cuadro de diálogo Editar perfil (para obtener más información, consulte la Sección 3.3.3, “Edición de perfiles” (p. 30)) o cuando se añade un perfil nuevo mediante Añadir manualmente perfil de Novell AppArmor (para obtener más información, consulte la Sección 3.3.2, “Adición manual de perfiles” (p. 24)), se da la opción de añadir hats (subperfiles) a los perfiles de Novell AppArmor. Es posible añadir un subperfil de ChangeHat en la ventana Cuadro de diálogo de perfiles de Novell AppArmor.

110

Guía de administración de Novell AppArmor 2.0

1 En la ventana Cuadro de diálogo de perfiles de Novell AppArmor, haga clic en Añadir entrada y seleccione Hat. Se abrirá el cuadro de diálogo Introducir nombre de hat:

2 Introduzca el nombre del hat que desea añadir al perfil de Novell AppArmor. El nombre es el URI que, cuando se accede a él, recibe los permisos definidos en el hat. 3 Haga clic en Crear hat. Volverá a la ventana Cuadro de diálogo de perfiles de Novell AppArmor. 4 Cuando haya terminado de añadir el nuevo hat, haga clic en Terminado.

Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache

111

NOTA Para observar un ejemplo de un perfil de Novell AppArmor, consulte el Ejemplo 5.1, “Ejemplo de hat phpsysinfo-dev” (p. 110).

5.2 Configuración de Apache para mod-apparmor Apache se configura colocando directivas en archivos de configuración de sólo texto. El archivo de configuración principal suele ser httpd.conf. Cuando se compila Apache se puede indicar la ubicación de este archivo. Las directivas se pueden colocar en cualquiera de estos archivos de configuración para modificar el comportamiento de Apache. Si se realizan cambios a los archivos de configuración principales, habrá que iniciar o reiniciar Apache para que estos cambios se reconozcan.

5.2.1 Directivas de host virtual Las directivas de host virtual controlan si las solicitudes que contienen información de vías finales, que siguen a un nombre de archivo real (o un archivo que no exista en un directorio que sí esté presente), se aceptarán o se rechazarán. Para consultar la documentación de Apache sobre las directivas de host virtual, diríjase a la http:// httpd.apache.org/docs-2.0/mod/core.html#virtualhost La palabra clave de configuración específica de change_hat es ImmDefaultHatName y se utiliza de la misma forma que ImmHatName, por ejemplo, ImmDefaultHatName Mi_hat_por_defecto. La opción de configuración se basa en realidad en una directiva de servidor que permite utilizar la palabra clave independientemente de otras opciones, por lo que se configura para el servidor por defecto. En Apache, se considera que los hosts virtuales son como “servidores” independientes, por lo que se puede definir un nombre de hat por defecto, así como un nombre para cada host virtual, si se desea. Cuando llega una solicitud, los siguientes pasos reflejan la secuencia que sigue mod-apparmor para intentar aplicar los hats.

112

Guía de administración de Novell AppArmor 2.0

1.

Un hat de ubicación o de directorio indicado mediante la palabra clave ImmHatName.

2.

Un hat cuyo nombre indique la vía completa del URI.

3.

Un hat de servidor por defecto indicado mediante la palabra clave ImmDefaultHatName.

4.

DEFAULT_URI (y si no existe ninguno, vuelve al hat “principal” de Apache).

5.2.2 Directivas de ubicación y directorio Las directivas de ubicación y directorio indican los nombres de los hats en el archivo de configuración del programa, de modo que el programa pueda llamar al hat para asuntos de seguridad. Para Apache, encontrará documentación sobre estas directivas en http://httpd.apache.org/docs-2.0/sections.html. El ejemplo de directiva de ubicación siguiente indica que mod-apparmor debería usar un hat concreto para una ubicación determinada: ImmHatName MI_NOMBRE_DE_HAT

En este ejemplo se intenta utilizar MI_NOMBRE_DE_HAT para cualquier URI que empiece por /foo/ (/foo/, /foo/bar, /foo/cgi/path/bla_bla/bla, etc.). En el siguiente ejemplo, la directiva de directorio funciona de forma similar que la de ubicación, excepto en que hace referencia a una vía del sistema de archivos: # Fíjese en que no hay barra inclinada de cierre ImmHatName immunix.com

Ejemplo: En el siguiente ejemplo se utiliza el programa phpsysinfo para ilustrar el uso de una directiva de ubicación. Se puede descargar el archivo Tarball de http:// phpsysinfo.sourceforge.com. 1 Tras descargar el archivo Tarball, instálelo en /srv/www/htdocs/sysinfo/ 2 Cree el archivo /etc/apache2/conf.d/sysinfo.conf y añádale el siguiente texto: Creación de perfiles para las aplicaciones Web mediante ChangeHat de Apache

113

ImmHatName sysinfo

El siguiente hat deberá funcionar ahora para phpsyinfo: ^sysinfo { #include <program-chunks/base-files> /bin/df /bin/bash /dev/tty /etc/SuSE-release /etc/fstab /etc/hosts /etc/mtab /proc/** /sbin/lspci /srv/www/htdocs/sysinfo/** /sys/bus/pci/devices /sys/devices/** /usr/bin/who /usr/share/pci.ids /var/log/apache2/{access,error}_log /var/run/utmp }

ix, ix, rw, r, r, r, r, r, ix, r, r, r, ix, r, w, r,

3 Vuelva a cargar los perfiles de Novell AppArmor introduciendo el comando rcapparmor restart en una ventana de terminal como usuario Root. 4 Reinicie Apache introduciendo el comando rcapache2 restart en una ventana de terminal tras iniciar sesión como usuario Root. 5 Escriba la dirección http://hostname/sysinfo/ en un navegador para obtener la información del sistema que ofrece phpsysinfo. 6 Realice un seguimiento de los errores de configuración. Para ello diríjase a /var/ log/syslog o ejecute el comando dmesg y busque en el resultado cualquier rechazo que se haya producido.

114

Guía de administración de Novell AppArmor 2.0

6

Asistencia técnica En este capítulo se describen las tareas relacionadas con el mantenimiento. Aprenda a actualizar Novell® AppArmor y a obtener una lista de las páginas Man disponibles en las que se ofrece ayuda sobre el uso de las herramientas de la línea de comandos incluidas con Novell AppArmor. En la sección de solución de problemas encontrará algunos problemas habituales que se dan en Novell AppArmor y cómo solucionarlos. Por último, se incluye una descripción de las opciones de asistencia técnica incluidas con su copia de SUSE Linux.

6.1 Actualización en línea de Novell AppArmor Las actualizaciones para los paquetes de Novell AppArmor se ofrecerán de la misma manera que cualquier actualización de los productos basados en SUSE Linux. Su descarga y aplicación es exactamente igual a la de cualquier otro paquete incluido en el producto SUSE Linux.

6.2 Uso de las páginas Man Hay páginas de manual (Man) disponibles. En un terminal, escriba man apparmor para abrir la página Man de AppArmor. Las páginas Man se distribuyen en secciones numeradas del 1 al 8. Cada sección es específica de una categoría de documentación:

Asistencia técnica

115

Tabla 6.1

Páginas de manual (Man): secciones y categorías

Sección

Categoría

1

Comandos del usuario

2

Llamadas al sistema

3

Funciones de biblioteca

4

Información del controlador del dispositivo

5

Formatos del archivo de configuración

6

Juegos

7

Conceptos de nivel avanzado

8

Comandos del administrador

Los números de secciones se utilizan para distinguir las páginas Man entre sí. Por ejemplo, exit(2) describe la llamada de salida del sistema, mientras que exit(3) describe la función de salida C de la biblioteca. Las páginas Man de Novell AppArmor son las siguientes: • unconfined(8) • autodep(1) • complain(1) • enforce(1) • genprof(1) • logprof(1) • change_hat(2) • logprof.conf(5)

116

Guía de administración de Novell AppArmor 2.0

• apparmor.conf(5) • apparmor.d(5) • apparmor.vim(5) • apparmor(7) • apparmor_parser(8)

6.3 Información adicional Hay más información acerca del producto AppArmor en la página de Novell AppArmor de Novell: http://www.novell.com/products/apparmor/. La documentación de Novell AppArmor, incluido este documento, se puede encontrar en http://www.novell.com/documentation/apparmor/ o en el sistema instalado en /usr/share/doc/packages/apparmor-docs/. Existen listas de correo específicas para AppArmor donde los usuarios pueden enviar preguntas o suscribirse para comunicarse con los desarrolladores. [email protected] Esta es la lista de correo para los usuarios finales de AppArmor. Se trata de un buen lugar para hacer preguntas sobre cómo usar AppArmor para proteger las aplicaciones. [email protected] Esta es la lista de correo para desarrolladores de AppArmor y miembros de la comunidad. Sirve para plantear cuestiones acerca de cómo desarrollar las funciones del núcleo de AppArmor: el módulo del núcleo y las herramientas de perfiles. Si está interesado en revisar el código de AppArmor y contribuir con revisiones o mejoras, ésta podría ser la lista más adecuada. [email protected] Esta lista con poco volumen de mensajes anuncia la disponibilidad de nuevas versiones o funciones.

Asistencia técnica

117

6.4 Solución de problemas En la siguiente sección se describen los problemas más habituales y los mensajes de error que se pueden producir al utilizar Novell AppArmor. SUSE Linux está instalado pero AppArmor no aparece en el menú de YaST AppArmor se instala por defecto si se seleccionan los escritorios GNOME o KDE en el momento de la instalación. Si se selecciona Sistema gráfico mínimo o Modo de texto, AppArmor no se instala por defecto. En estos casos, utilice YaST para instalar los paquetes que falten. Para obtener más información acerca de esto, consulte la Novell AppArmor 2.0 Installation and Quick Start Guide (Guía de instalación e inicio rápido de Novell AppArmor 2.0). Comportamiento extraño de la aplicación Si nota algún comportamiento extraño de la aplicación o cualquier otro tipo de problema, deberá comprobar primero los mensajes de rechazo en los archivos de registro para determinar si AppArmor está poniendo demasiadas limitaciones a la aplicación. Para comprobar los mensajes de rechazo, inicie YaST → Novell AppArmor y diríjase a Informes de AppArmor. Seleccione Ver archivo y Auditoría de aplicaciones para ver el informe de auditoría de las aplicaciones. Es posible aplicar filtros de fechas y horas para reducir los resultados al periodo concreto en el que comenzó el comportamiento extraño de la aplicación. Problemas con Apache Apache no se abre correctamente o no sirve páginas Web y acaba de instalar un módulo nuevo o ha realizado un cambio de configuración. Cuando se instalan módulos adicionales de Apache (como mod-apparmor) o se realizan cambios de configuración en Apache, debe volver a crear los perfiles de Apache para que se incorporen las reglas adicionales que se deban añadir al perfil. No se envían los informes por correo electrónico Si la función de informes genera un archivo HTML o CSV que supera el tamaño por defecto, el archivo no se envía. Los servidores de correo tienen un tamaño límite estricto por defecto para los correos electrónicos. Este límite puede impedir que AppArmor envíe mensajes de correo electrónico generados como informes. Si no le llega el mensaje, puede deberse a esto.

118

Guía de administración de Novell AppArmor 2.0

Los usuarios deben ser conscientes de los límites de tamaño del correo y deben comprobar sus archivos en caso de que no reciban correos electrónicos. Se excluyen algunos perfiles de la lista de perfiles utilizada AppArmor siempre carga y aplica todos los perfiles disponibles en el directorio de perfiles (/etc/apparmor.d/). Si decide no aplicar un perfil a una aplicación concreta, deberá suprimir el perfil oportuno o moverlo a otra ubicación en la que AppArmor no pueda comprobarlo. El funcionamiento de AppArmor puede producir varios errores. A continuación se muestra una lista de posibles problemas y cómo solucionarlos. No se encuentra apparmor_parser Si ejecuta logprof como un usuario distinto al Root, por ejemplo como el usuario tux, es probable que se presente este error: tux@localhost:~> /usr/sbin/logprof No se encuentra apparmor_parser.

NOTA Sólo se debe ejecutar logprof como usuario Root. /usr/sbin/genprof debe ejecutarse como usuario Root Si se ejecuta genprof como usuario distinto al Root, se produce el mismo resultado: tux@localhost:~> /usr/sbin/genprof /usr/sbin/genprof debe ejecutarse como usuario Root.

Descargando perfiles de AppArmor... error Los guiones de inicio y parada de AppArmor se deben ejecutar como usuario Root. Si se ejecutan como usuario distinto al Root, se produce este resultado: tux@localhost:~> /etc/init.d/apparmor stop /sbin/apparmor_parser: Lo sentimos. No dispone de privilegios suficientes para ejecutar este programa. Descargando perfiles de AppArmor... error

Error de análisis de AppArmor En el siguiente ejemplo se muestra la sintaxis del error de análisis completo. Si se editan manualmente perfiles de Novell AppArmor se pueden introducir errores de sintaxis. Si intenta iniciar o reiniciar AppArmor con errores de sintaxis en los perfiles, se producirá un error como este:

Asistencia técnica

119

localhost:~ # /etc/init.d/apparmor start Cargando perfiles de AppArmor Error de análisis de AppArmor, línea 2: Se ha detectado un carácter inesperado: ’h Error en el perfil /etc/apparmor.d/usr.sbin.squid error al cargar error

6.5 Informe sobre errores de AppArmor Los desarrolladores de AppArmor y SUSE Linux se enorgullecen de ofrecer productos de la mejor calidad. Sus comentarios e informes sobre errores nos ayudarán a seguir haciendo un buen trabajo. Así que, si encuentra algún error en AppArmor, envíe un informe sobre este producto: 1 Mediante el navegador, diríjase a https://bugzilla.novell.com/ index.cgi. 2 Introduzca los datos de su cuenta Novell y haga clic en login (inicio de sesión). O bien Cree una cuenta Novell nueva de la siguiente forma: a Haga clic en crear cuenta en la página Inicie sesión para continuar. b Introduzca un nombre de usuario y una contraseña y los datos adicionales de dirección y haga clic en create login (crear inicio de sesión) para proceder de forma inmediata a la creación de los datos de inicio de sesión. O bien Introduzca los datos de otras cuentas Novell que posea para sincronizarlas todas en una sola cuenta. 3 Compruebe si existe ya algún informe sobre un problema similar al suyo haciendo clic en Search (buscar).

120

Guía de administración de Novell AppArmor 2.0

Puede realizar una búsqueda rápida de un producto concreto o de una palabra clave, o bien utilizar la función Advanced Search (búsqueda avanzada). 4 Si ya hay un informe para su problema, revise el informe y añada información adicional, si es necesario. 5 Si aún no hay un informe para su problema, seleccione New (nuevo) en la barra de navegación superior para acceder a la página Enter Bug (nuevo error). 6 Seleccione el producto sobre el que desee informar. En su caso, debe ser su versión de SUSE Linux. Haga clic en submit (enviar). 7 Selecciona la versión del producto, el componente (en este caso, AppArmor), la plataforma de hardware y la gravedad. 8 Escriba un breve titular en el que se describa al problema y una descripción más elaborada en la parte de abajo que incluya los archivos de registro. Se pueden adjuntar archivos al informe de errores con capturas de pantalla, archivos de registro o pruebas. 9 Tras introducir todos los detalles, haga clic en Submit Report (enviar informe) para enviar el informe a los desarrolladores.

Asistencia técnica

121

Glosario Apache Apache es un servidor Web gratuito basado en UNIX. En la actualidad es el servidor Web más utilizado en Internet. Encontrará más información sobre Apache en el sitio Web de Apache en http://www.apache.org. clases de base de perfil Bloques de creación de perfiles necesarios para las actividades de las aplicaciones comunes, como la búsqueda DNS o la autenticación de usuarios. control de acceso obligatorio Método para restringir el acceso a los objetos basado en atributos de seguridad fijos asignados a los usuarios, a los archivos y a otros objetos. Los controles son obligatorios en el sentido de que ni los usuarios ni sus programas los pueden modificar. control de acceso perfeccionado Novell AppArmor ofrece control de acceso perfeccionado para servicios de red, indicando los archivos que cada programa tiene permitido leer, escribir y ejecutar. De esta forma se garantiza que cada programa haga lo que se supone que debe hacer, y nada más. cortafuegos mediante aplicación Novell AppArmor contiene aplicaciones y limita las acciones que éstas pueden llevar a cabo. Utiliza un sistema de limitación de privilegios para evitar que los atacantes puedan utilizar programas dañinos en el servidor protegido, o incluso utilizar aplicaciones de confianza de formas no previstas. firma de ataque Patrón de una actividad del sistema o de la red que indica la presencia de un posible virus o de un ataque de un pirata informático (hacker). Los sistemas de detección de intrusiones pueden utilizar firmas de ataque para diferenciar las actividades legítimas de las potencialmente dañinas. Dado que no se basa en firmas de ataques, Novell AppArmor ofrece una defensa preventiva, en lugar de reactiva, ante los ataques. Este enfoque es mejor ya que no hay un intervalo de tiempo vulnerable durante el cual se ha de definir la firma de

ataque para Novell AppArmor, como ocurre con los productos que utilizan estas firmas para proteger sus redes. GUI Graphical User Interface (Interfaz gráfica del usuario). Hace referencia a un software de presentación que ofrece una interfaz atractiva y fácil de utilizar entre el usuario del equipo y la aplicación que utiliza. Algunos de sus elementos son las ventanas, los iconos, los botones, los cursores y las barras de desplazamiento. HIP Host Intrusion Prevention (Prevención de intrusiones en el host). Funciona con el núcleo del sistema operativo para bloquear comportamientos anormales de aplicaciones, considerando que este comportamiento anormal representa un ataque desconocido. Bloquea paquetes dañinos en el host en el nivel de la red antes de que puedan “dañar” a la aplicación a la que van dirigidos. RPM Gestor de paquetes RPM. Se trata de un sistema abierto de creación de paquetes disponible para todo el mundo. Funciona con Red Hat Linux, SUSE Linux y otros sistemas Linux y UNIX. Es capaz de instalar, desinstalar, verificar, consultar y actualizar paquetes de software informático. Si desea obtener más información, consulte http://www.rpm.org/. SSH Shell segura. Un servicio que le permite acceder a su servidor desde un equipo remoto y emitir comandos de texto a través de una conexión segura. URI Universal Resource Identifier (Identificador universal de recursos). Término genérico para cualquier tipo de nombre o dirección que haga referencia a objetos de la World Wide Web. Una URL es un tipo de URI. URL Uniform Resource Locator (Localizador uniforme de recursos). La dirección global de los documentos y otros recursos en la World Wide Web. La primera parte de la dirección indica qué protocolo se debe utilizar, la segunda indica la dirección IP o el nombre de dominio en el que se ubica el recurso. Por ejemplo, en http://www.immuix.com/index.html, http es el protocolo que se va a utilizar.

124

Guía de administración de Novell AppArmor 2.0

vulnerabilidades Un aspecto de un sistema o una red que queda expuesto a los ataques. Características de los sistemas informáticos que permiten a algún individuo impedir que funcione correctamente o que permiten que usuarios sin autorización tomen el control del sistema. Puntos débiles o defectos de diseño, administración o implementación del hardware, el firmware o el software. Si se explota, una vulnerabilidad puede llegar a tener un impacto inadmisible en forma de acceso sin autorización a la información o interrupción de los procesos críticos.

Glosario

125

Related Documents

Apparmor Admin Guide Pt Br
November 2019 2
Admin Guide
November 2019 41
Admin-guide
June 2020 26
Sun System Admin Guide
November 2019 35

More Documents from ""

Tipografia
June 2020 9
May 2020 4
November 2019 17
May 2020 2