Anda di halaman 1dari 134

Novell AppArmor

2.0 www.novell.com
02/28/2006 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 documentation@suse.de.


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 Inmunización de programas que otorgan privilegios . . . . . . . . . . . 3
2.2 Inspección de los puertos abiertos para inmunizar programas . . . . . . . 4

3 Creación de perfiles de Novell AppArmor 11


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

4 Gestión de aplicaciones con perfiles 71


4.1 Monitorización de las aplicaciones protegidas . . . . . . . . . . . . . 71
4.2 Establecimiento de notificaciones de eventos . . . . . . . . . . . . . 72
4.3 Informes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.4 Reacción a los eventos de seguridad . . . . . . . . . . . . . . . . . 98
4.5 Mantenimiento de los perfiles de seguridad . . . . . . . . . . . . . . 99
5 Creación de perfiles para las aplicaciones Web mediante
ChangeHat de Apache 103
5.1 Apache ChangeHat . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2 Configuración de Apache para mod-apparmor . . . . . . . . . . . . 112

6 Asistencia técnica 115


6.1 Actualización en línea de Novell AppArmor . . . . . . . . . . . . . 115
6.2 Uso de las páginas Man . . . . . . . . . . . . . . . . . . . . . . 115
6.3 Información adicional . . . . . . . . . . . . . . . . . . . . . . 117
6.4 Solución de problemas . . . . . . . . . . . . . . . . . . . . . . 118
6.5 Informe sobre errores de AppArmor . . . . . . . . . . . . . . . . 120

Glosario 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 anterior-
mente 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 intro-
duzca 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
Novell® AppArmor ofrece tecnología de inmunización que protege las aplicaciones
1
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 inmuni-
zació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
Novell® AppArmor pone en cuarentena programas para proteger el resto del sistema
2
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 /usr/sbin/httpd2-prefork confined by '/usr/sbin/httpd2-prefork (enforce)'


5274 /sbin/dhcpcd not confined
5592 /usr/bin/ssh not confined
7146 /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 ejecu-
tando 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


apparmor-general@forge.novell.com 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 corres-
ponde 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 r,
/srv/www/cgi-bin/localtime.php r,
/usr/lib/locale/** 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/** r,

8 Guía de administración de Novell AppArmor 2.0


/srv/www/htdocs/** r,
/srv/www/icons/*.{gif,jpg,png} r,
/usr/share/apache2/** 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
En este capítulo se explica cómo crear y gestionar perfiles de Novell® AppArmor.
3
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 propor-
cionan 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 <abstractions/base>❹
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 actualiza-
ciones 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 ejecu-
tá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 conti-
nuació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 infor-
mació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 propor-
cionar 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 correc-
tamente.

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 especifi-
cadas. 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 incor-
poran 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, selec-
cione 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 propor-
cionar 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 correcta-
mente.

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 especifi-
cadas. 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 direc-
tivas.

Puede detectar en cuál de los tres estados se encuentra el módulo AppArmor inspeccio-
nando /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 actual-
mente.

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 herra-
mientas 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 utili-


zació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.

5 Repita los pasos 3 y 4. De este modo se generarán perfiles optimizados. Un


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 encon-
trará 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 httpd2-
prefork, 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:

• S 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.

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 especifi-
cadas. 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 null-
complain-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 httpd2-
prefork 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 <abstractions/nombredelservicio>]
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 subdirec-
torios 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 conse-
cuencia, 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 subdirec-
torios. 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.

[a-c] Sustituye a los caracteres independientes a, b o


c.

{ab,cd} Una regla coincide con ab y con cd al mismo


tiempo.

66 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 utili-
dades 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
Tras crear perfiles e inmunizar las aplicaciones, SUSE Linux es más efectivo y queda
4
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, “Configu-


ración de la notificación de eventos de seguridad” (p. 73). Después de confi-
gurar 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 infor-
mació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 selec-
ciona 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 aplica-
ciones 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 infor-
mació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 compor-
tamiento 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
Un perfil de Novell® AppArmor representa la directiva de seguridad para un programa
5
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 infor-
mació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 phpsyinfo-
dev.

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 ix,
/bin/bash ix,
/dev/tty rw,
/etc/SuSE-release r,
/etc/fstab r,
/etc/hosts r,
/etc/mtab r,
/proc/** r,
/sbin/lspci ix,
/srv/www/htdocs/sysinfo/** r,
/sys/bus/pci/devices r,
/sys/devices/** r,
/usr/bin/who ix,
/usr/share/pci.ids r,
/var/log/apache2/{access,error}_log w,
/var/run/utmp 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:
<Location /foo/>
ImmHatName MI_NOMBRE_DE_HAT
</Location>

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:
<Directory "/srv/www/www.immunix.com/docs"> # Fíjese en que no hay barra
inclinada de cierre
ImmHatName immunix.com
</Directory>

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
<Location "/sysinfo">
ImmHatName sysinfo
</Location>

El siguiente hat deberá funcionar ahora para phpsyinfo:


^sysinfo {
#include <program-chunks/base-files>
/bin/df ix,
/bin/bash ix,
/dev/tty rw,
/etc/SuSE-release r,
/etc/fstab r,
/etc/hosts r,
/etc/mtab r,
/proc/** r,
/sbin/lspci ix,
/srv/www/htdocs/sysinfo/** r,
/sys/bus/pci/devices r,
/sys/devices/** r,
/usr/bin/who ix,
/usr/share/pci.ids r,
/var/log/apache2/{access,error}_log w,
/var/run/utmp 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


Asistencia técnica
En este capítulo se describen las tareas relacionadas con el mantenimiento. Aprenda a
6
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.

apparmor-general@forge.novell.com
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.

apparmor-dev@forge.novell.com
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.

apparmor-announce@forge.novell.com
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 aplica-
ciones, 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

Anda mungkin juga menyukai