Mini-Manual de configuración de marco de seguridad informática Apparmor. Introducción: Este mini-manual trata los temas siguientes: Start/Stop Web.



Documentos relacionados
Acronis License Server. Guía del usuario

Ejecución del programa de instalación de Windows XP

Creación y administración de grupos locales

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

LiLa Portal Guía para profesores

Administrar El Usuario Mediante Windows NT

DOCENTES FORMADORES UGEL 03 PRIMARIA

Notas para la instalación de un lector de tarjetas inteligentes.

Acronis Backup & Recovery 11 Guía de inicio rápido

Creación y administración de grupos de dominio

Técnicas de Programación

Guía de inicio rápido a

WINDOWS : TERMINAL SERVER

Sophos Anti-Virus para Mac OS X, versión 4.9 guía de inicio. Para Macs en red con Mac OS X

Instrucciones de instalación de IBM SPSS Modeler (licencia de usuario autorizado)

MANUAL DE LA APLICACIÓN HELP DESK

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Configuracion Escritorio Remoto Windows 2003

INSTALACIÓN DE MEDPRO

Kiara Celeste Contreras Feliz. Matricula: Sistema Operativo III. 5- Creación de usuarios y grupos

IBM SPSS Statistics Versión 22. Instrucciones de instalación para Linux (Licencia de usuario autorizado)

Guía del usuario - escan para Linux Servidor de archivo

Instrucciones de instalación de IBM SPSS Modeler Server 16 para Windows

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

MANUAL DE AYUDA MÓDULOS 2011 MACOS

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

WINDOWS : COPIAS DE SEGURIDAD

Correo Electrónico: Webmail: Horde 3.1.1

Manual de instalación de Kaspersky Internet Security

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

GUÍA DE USUARIO DEL CORREO

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Introducción a la Firma Electrónica en MIDAS

MACROS. Automatizar tareas a través del uso de las macros.

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010

Mondopad v1.8. Inicio rápido

ACCESO Y MANEJO DEL PANEL DE CONTROL

Guía Rápida de Inicio

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

MANUAL COPIAS DE SEGURIDAD

Manual hosting acens

Sophos Anti-Virus para NetApp Storage Systems Guía de inicio. Para Windows 2000 y posterior

MANUAL DE USUARIO DE CUENTAS DE CORREO

Capture Pro Software. Introducción. A-61640_es

Tutorial: Primeros Pasos con Subversion

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Instalación del Software Magaya

5. Composer: Publicar sus páginas en la web

V i s i t a V i r t u a l e n e l H o s p i t a l

Oficina Online. Manual del administrador

IBM SPSS Statistics Versión 22. Instrucciones de instalación para Windows (Licencia de usuario autorizado)

Retrospect 10 para Mac Anexo de la Guía del usuario

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Oasis es una fábrica para el bien común de los datos mediante la utilización de aplicaciones propuestas.

Guía de instalación de la carpeta Datos de IslaWin

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

PRACTICA 9 SERVIDOR WEB APACHE SERVIDOR WEB APACHE. JEAN CARLOS FAMILIA Página 1

Manual de usuario. S i m p l e m e n t e, m e j o r e s d a t o s!

Toda base de datos relacional se basa en dos objetos

UNIDAD DIDACTICA 3 USUARIOS Y GRUPOS EN REDES WINDOWS 2003 SERVER II

Activación de un Escritorio Remoto

Instalación del Admin CFDI

Microsoft Access proporciona dos métodos para crear una Base de datos.

Ubuntu Server HOW TO : SQUID. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar servidor proxi Squid.

23 de abril de Remote Scan

Cómo unir un equipo al dominio de las aulas tecnológicas

TEMA 5 SISTEMA/ ADMINISTRACIÓN AUTORIZACIÓN.

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

UNIDAD DIDACTICA 16 USUARIOS SAMBA EN UN CONTROLADOR DE DOMINIO LINUX SERVER

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0):

OBTENCIÓN Y RENOVACIÓN (*) DEL CERTIFICADO ELECTRÓNICO DE EMPLEADO PÚBLICO DE LA FÁBRICA NACIONAL DE MONEDA Y TIMBRE (FNMT)

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

Guía paso a paso para la cumplimentación del formulario de candidatura

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Redes de área local Aplicaciones y Servicios Linux NFS

Esta guía describe los pasos y actividades para realizar actas de reuniones por medio de Google Drive

GUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO

Guía de instalación de la carpeta Datos de ContaWin

IBM SPSS Statistics para Linux Instrucciones de instalación (Usuario individual)

ACTIVE DIRECTORY - PROPIEDADES DE USUARIO

Intego NetUpdate X4 Manual del usuario

Inicio Programas Accesorios Explorador de Windows Archivo Nuevo Carpeta

tic Compartir archivos ENPCAC Placydo Torres Prof. Cruz Jorge Fernández

Guía de Instalación para clientes de WebAdmin

Instrucciones de instalación de TrueCode

LAS FACTURAS ELECTRÓNICAS.COM

Instalación y uso de Check 2000 Client Server con ZENworks 2

Manual de Palm BlueBoard 2.0

Guía del usuario - escan para Linux Escritorio

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

WorldShip Instalación para una estación de trabajo única o de grupo de trabajo

Transcripción:

Mini-Manual de configuración de marco de seguridad informática Apparmor. Introducción: Apparmor está diseñado para ofrecer servicios de seguridad de fácil manejo a las aplicaciones de los servidores y las estaciones de trabajo. 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, de forma que se puedan prevenir estos ataques incluso si intentan explotar vulnerabilidades anteriormente desconocidas. Este mini-manual trata los temas siguientes: 1. Modos de permisos de acceso a archivos. 2. Instalación Apparmor. 3. Start/Stop Apparmor. 4. Herramientas de línea de comandos para Apparmor. 5. Inmunización de programas. 5.1. Selección de programas a inmunizar. 5.1.1. Inspección de los puertos abiertos para inmunizar programas. 5.1.2. Inmunización de programas que otorgan privilegios. 5.1.3. Inmunización de tareas de cron. 5.1.4. Inmunización de aplicaciones Web. 5.1.5. Inmunización de agentes de red. 6. Creación de perfiles. 6.5.1 Ejemplos de perfiles. 6.5.1.1. Creación de perfiles para las aplicaciones web mediante ChangeHat de Apache. 7. Configuración de políticas de seguridad. 1. Modos de permisos de acceso a archivos. La sintaxis que Apparmor utiliza es bastante simple. Los permisos son establecidos de una manera basada en rutas con interruptores llamados permisos. Los permisos son los siguientes: r = Modo de lectura. w = Modo de escritura. ix = Modo de ejecución heredado. Heredar el perfil de los padres. m = Permitir la asignación de ejecutables. l = Modo de enlace. ux = Modo de ejecución sin restricciones. (No es recomendado su uso). Ux = Modo de ejecución sin restricciones (No es recomendado su uso). px = Modo de ejecución discreta de perfiles.

Px = modo de ejecución discreta de perfiles. (Requiere un perfil distinto que existe para la aplicación que se llama) k = Bloquea los permisos. Nota: Los permisos Ux no son recomendables debido a que le permiten a una aplicación o servicio ejecutarse sin restricciones. En el peor de los casos escribir un perfil independiente para la aplicación o uso de autorización ix en su lugar y conceda permisos de acuerdo con el perfil principal. 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) [es un comando empleado por utilidades como strace(1), ltrace(1) y gdb(1) ] 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. 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. 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. Modo de ejecución heredado. Impide la transición normal de dominios de Apparmor enexecve 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. 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. 2. Instalación Apparmor. Instalar el marco de seguridad Apparmor es bastante sencillo, en este documento usted será capaz tras su lectura de instalarlo sin ayuda del mismo. En este caso instalaremos el marco de seguridad Apparmor. sudo apt-get install apparmor Los paquetes se enumeran a continuación son necesarios para una instancia totalmente funcional de Apparmor: sudo apt-get install apparmor-docs apparmor-notify apparmor-profiles apparmorutils Apparmor incluye por defecto una serie de perfiles tales como: /usr/sbin/ntpd (enforce) /usr/sbin/cupsd (enforce) /usr/lib/cups/backend/cups-pdf (enforce) /usr/bin/evince-thumbnailer (enforce) /usr/bin/evince-previewer (enforcesudo ) /usr/bin/evince (enforce) /usr/lib/connman/scripts/dhclient-script (enforce) /usr/lib/networkmanager/nm-dhcp-client.action (enforce) /sbin/dhclient3 (enforce) Usted puede instalar otros perfiles de Apparmor, que le ayudará a empezar con algunas aplicaciones adicionales, pero también hay que escribir y personalizar nuestros propios perfiles. Para instalar algunos perfiles adicionales: sudo apt-get install apparmor-profiles Aunque esto instala algunos perfiles adicionales, que son permisivas en que por defecto al modo de queja (usted tendrá que activar manualmente). Para ver los perfiles instalados entramos a la carpeta /etc/apparmor.d y le decimos ls para que nos muestre los perfiles. Los perfiles que se instalan son los siguientes: /usr/sbin/traceroute (complain) /usr/sbin/smbd (complain) /usr/sbin/ntpd (enforce) /usr/sbin/nscd (complain) /usr/sbin/nmbd (complain) /usr/sbin/mdnsd (complain) /usr/sbin/identd (complain) /usr/sbin/dovecot (complain)

/usr/sbin/dnsmasq (complain) /usr/sbin/cupsd (enforce) /usr/lib/cups/backend/cups-pdf (enforce) /usr/sbin/avahi-daemon (complain) /usr/lib/dovecot/pop3-login (complain) /usr/lib/dovecot/pop3 (complain) /usr/lib/dovecot/managesieve-login (complain) /usr/lib/dovecot/imap-login (complain) /usr/lib/dovecot/imap (complain) /usr/lib/dovecot/dovecot-auth (complain) /usr/lib/dovecot/deliver (complain) /usr/bin/evince-thumbnailer (enforce) /usr/bin/evince-previewer (enforce) /usr/bin/evince (enforce) /sbin/syslog-ng (complain) /sbin/syslogd (complain) /sbin/klogd (complain) /usr/lib/connman/scripts/dhclient-script (enforce) /usr/lib/networkmanager/nm-dhcp-client.action (enforce) /sbin/dhclient3 (enforce) /bin/ping (complain) Apparmor registra las violaciones en un perfil, este perfil lo que hace es mostrar todas los mensajes de errores que se cometen en las violaciones de perfiles: nano /etc/var/log/menssages o nano /etc/var/log/syslog. Una vez que se define un perfil, este se activa automáticamente cuando se inicia la aplicación. Hay dos modos de funcionamiento, modo de queja (complain) y modo forzado (enforce). Complain: Posiciona un perfil en modo reclamo. Útil para la realización de pruebas y el desarrollo de nuevos perfiles. sudo aa-complain /path/to/bin Enforce: coloca un perfil en modo forzar: sudo aa-enforce /path/to/bin 3. Start/Stop Apparmor. Usage: /etc/init.d/apparmor {start stop restart reload force-reload status recache} Iniciar Apparmor: sudo /etc/init.d/apparmor Start Detener Apparmor: sudo /etc/init.d/apparmor stop Reiniciar Apparmor: sudo /etc/init.d/apparmor reload Mostrar estado Apparmor: sudo /etc/init.d/apparmor status 4. Herramientas de línea de comandos para Apparmor.

Nota: Para el posible uso de estos comandos debemos instalar antes los útiles de Apparmor: sudo aptitude install apparmor-utils. El paquete apparmor-utils contiene utilidades de línea de comandos que usted puede utilizar para cambiar el modo de ejecución de Apparmor, encontrar el estado de un perfil, crear nuevos perfiles. Se instalarán los siguientes paquetes extras: libapparmor-perl libapparmor1 librpc-xml-perl libterm-readkey-perl libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-expat-perl libxml-sax-perl Paquetes sugeridos: apparmor-docs libterm-readline-gnu-perl libapache2-mod-perl2 Se instalarán los siguientes paquetes nuevos: apparmor-utils libapparmor-perl libapparmor1 librpc-xml-perl libterm-readkey-perl libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-expat-perl libxml-sax-perl sudo genprof aa-genprof: crea un perfil para cada aplicación y se pone en modo de queja (complain). Por ejemplo con sudo aa-genprof firefox podemos crear un perfil para Firefox en modo de queja. sudo apparmor status: muestra el estado actual de los perfiles de Apparmor. sudo complain aa-complain: posiciona un perfil en modo de queja (sudo aa-complain /path/to/bin), por ejemplo con: sudo aa-complain se crea un perfile para Firefox en modo de queja. Para posicionar a todos los perfiles en modo queja: sudo aa-complain /etc/apparmor.d/* sudo enforce aa-enforce: crea un perfil en modo obligatorio (enforce). Por ejemplo: sudo aaenforce se crea un perfile para Firefox en modo obligatorio. Este ejemplo pone todos los perfiles excepto uno en modo obligatorio: GLOBIGNORE="*profile.name" sudo aa-enforce /etc/apparmor.d/* por ejemplo: GLOBIGNORE="*bin.ping" sudo aa-enforce /etc/apparmor.d/* sudo aa-logprof: Analiza y revisa las entradas de registro generados por una aplicación que está limitada por un perfil de Apparmor en el modo de queja. Se le ayuda en la generación de nuevas entradas en el perfil en cuestión. aa-confine: Detecta cualquier aplicación que se ejecuta en el sistema que detecta las conexiones de red y no está protegida por un perfil de Apparmor. sudo autodep aa-autodep: Crea un perfil de código auxiliar para el programa o aplicación examinados. El perfil resultante se llama aproximado, ya que no necesariamente contienen todas las entradas de perfil que el programa tiene que ser confinados adecuadamente. sudo unconfined aa-unconfined: Salida de una lista de procesos con tcp abiertos o los puertos UDP que no tienen perfiles de Apparmor cargado. sudo apparmor_parser: es utilizado para cargar el perfil dentro del Kernel. También puede ser utilizado para recargar un perfil ya cargado usando la opción -r. Para cargar un perfil: cat /etc/apparmor.d/profile.name sudo apparmor_parser -a

Después de modificar (editar) un uso de perfil: sudo apparmor_parser -r /etc/apparmor.d/<profile> Donde perfil es el perfil de volver a la carga. Si lo prefiere, puede reiniciar AppArmor (reload): /etc/init.d/apparmor restart Los comandos anteriores se le permiten controlar Apparmor. Si por alguna razón usted pone un perfil en el modo de aplicación y la aplicación deja de funcionar, utilice los comandos sudo aa-complain y luego sudo /etc/init.d/apparmor recargar el perfil para poner de nuevo en el modo de queja y volver a cargar Apparmor para la aplicación las obras. 5. Inmunización de programas. Ofrece tecnología de inmunización que protege las aplicaciones frente a las vulnerabilidades inherentes que tienen. Tras instalarlo configurar perfiles y reiniciar el equipo, el sistema queda inmunizado, ya que empieza a aplicar directivas de seguridad de Apparmor. La protección de programas con Apparmor se denomina inmunización. 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 Apparmor a fin de crear perfiles para las aplicaciones que desee proteger. 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. 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. Controla el acceso otorgado a los servicios de red y a otros programas para evitar que se puedan explotar las debilidades del sistema. 5.1. Selección de programas a inmunizar. Apparmor pone en cuarentena programas para proteger el resto del sistema de los daños provocados por un proceso afectado. Deberá inspeccionar los puertos para comprobar para qué programas se deben crear perfiles (consulte inspección de los puertos abiertos para inmunizar programas) y crear perfiles para todos los programas que otorguen privilegios. 5.1.1. 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. 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 Apparmor que se haya

cargado. La herramienta unconfined informará a continuación de estos programas y del perfil de Apparmor asociado con cada uno de ellos, o indicará que no hay nada si el programa no está limitado. Figura 1 Configuración de la herramienta unconfined. A continuación se le muestra un ejemplo de salida de unconfined: sudo unconfined netstat -npl 799 ❶ /usr/sbin/avahi-daemon not confined 799 /usr/sbin/avahi-daemon not confined 1169 /usr/sbin/cupsd❷ confined by '/usr/sbin/cupsd (complain)' 29119 /usr/sbin/ntpd❸ confined by '/usr/sbin/ntpd (complain)' 29119 /usr/sbin/ntpd confined by '/usr/sbin/ntpd (complain)' 29119 /usr/sbin/ntpd confined by '/usr/sbin/ntpd (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: 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. Unconfined requiere privilegios de usuario root y no se debe ejecutar desde un shell que se encuentre limitado por un perfil de Apparmor. La herramienta unconfined no distingue entre una interfaz de red y otra, así que informa de todos los procesos sin limitación, incluso de los que puedan estar a la escucha de una interfaz LAN interna.

La búsqueda de aplicaciones cliente de redes de usuarios depende de las preferencias del usuario. La herramienta unconfined detecta e informa de los puertos de red abiertos por las aplicaciones cliente, pero sólo cuando esas aplicaciones cliente se están ejecutando en el momento del análisis. Esto es un problema, ya que los servicios de red tienden a ejecutarse en todo momento, mientras que las aplicaciones cliente de red sólo suelen ejecutarse cuando el usuario se interesa por ellas. 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. A continuación se le muestra un ejemplo de salida de paranoid: Figura 2 Configuración de la herramienta unconfined con paranoid. 5.1.2. 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 inmunización de tareas de cron. 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 inmunización de aplicaciones Web.

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 inmunización de agentes de red. 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. 5.1.3. 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/cron.d/* /etc/cron.daily/* /etc/cron.hourly/* /etc/cron.monthly/* /etc/cron.weekly/* A continuación se le muestra un ejemplo de salida de estos archivos: Figura 3 Configuración de las tareas de inmunización. 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 nano /etc/crontab -l. Para efectuar estas acciones debe ser el usuario root. 5.1.4. 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 Nova Ligero almacena por defecto las

aplicaciones Web en /var/www. En la medida en que sea posible, cada aplicación Web debería tener un perfil de Apparmor. 5.1.5. 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 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. 6. Creación de perfiles. Los perfiles de Apparmor son archivos de texto plano alojados en /etc/apparmor.d/.por ejemplo nano /etc/apparmor.d/bin.ping es el perfil de Apparmor para la orden /bin/ping. Una mirada a este perfil: Figura 4 Creación de perfiles. #include <tunables/global> /bin/ping flags=(complain) { #include <abstractions/base> #include <abstractions/consoles> #include <abstractions/nameservice> capability net_raw, capability setuid, network inet raw, /bin/ping mixr,

/etc/modules.conf r, #include <tunables/global>: incluye declaraciones de los otros archivos. Esto permite que las declaraciones pertenecientes a varias aplicaciones se puedan colocar en un archivo común. /bin/ping flags=(complain): ruta del programa perfilado, también establece el modo a complain. capability net_raw: Permite a la aplicación acceder a la capacidad CAP_NET_RAW Posix.1e. /bin/ping mixr: Permite a la aplicación leer y ejecutar el acceso al archivo. Hay dos tipos principales de reglas usadas en perfiles: - Entradas de ruta o vía: que detallan a qué archivos puede acceder una aplicación en el sistema de archivos. - Entradas de capacidad: determinan qué privilegios puede utilizar un proceso confinado. Para añadir o crear un perfil de 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). 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, se 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. genprof (abreviatura en inglés de generador de perfiles) es la utilidad de generación de perfiles de Apparmor. Ejecuta autodep para el programa especificado, creando un perfil aproximado (si no existe ya uno), establece el modo de queja, vuelve a cargarlo en Apparmor, marca el registro del sistema (syslog) y solicita al usuario que ejecute el programa y utilice sus funciones. La sintaxis es la siguiente: sudo genprof application opciones: -D - dir / ruta / a / perfiles Especifica dónde debe buscar el perfil de seguridad Apparmor conjunto. El valor predeterminado es / etc / apparmor.d. - 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). 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 y mejora de los perfiles resulta algo menos automático, 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.

Ejemplo de creación de un perfil (Firefox): Para cada aplicación realice los pasos siguientes para crear un perfil: - Entre como root. - sudo genprof firefox, esto genera un perfil básico para Firefox en modo complain. Cuando corramos el firefox cada violación del perfil será guardada en un log. - Siga las instrucciones del asistente hasta que éste haya finalizado. - Prueba la configuración del perfil mediante la realización de todas las tareas que usted necesita con la aplicación que acaba de configurar. Normalmente, el programa se ejecuta sin problemas y no se dan cuenta de las actividades de Apparmor en absoluto. Sin embargo, si observa una mala conducta determinada con su solicitud, compruebe el sistema de registros y ver si Apparmor está demasiado limitando para su aplicación (en modo de queja). En función del mecanismo de registro utilizado en el sistema, busque la entrada de registro de Apparmor: nano etc/var/log/menssages. - En caso de que necesite añadir más elementos a la configuración del perfil: sudo aa-logprof nombre_perfil. - Debe reiniciar el perfil: /etc/init.d/apparmor restart Estructura de un perfil. 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. Los perfiles se compone de cuatro secciones # include, las entradas de la capacidad, las normas, y sombreros. # Include: es similar a la de abastecimiento o en las bibliotecas y le permite generar una lista de restricciones comunes. En lugar de escribir esta lista una y otra vez en los perfiles, se puede conservar en un lugar común y que se incorpore un perfil con un # include. Cuando se actualiza la lista común, todos los perfiles se actualizan. Reglas: Estos son, básicamente, un conjunto de permisos aplicados a los archivos o directorios. El syntas es una ruta seguido por un conjunto de reglas. Path y Reglas: path Usted puede utilizar Globing o caracteres especiales en la ruta. * Sustituye a cualquier número de caracteres, excepto /. ** Sustituye a cualquier número de caracteres, incluyendo /.? Sustituye a cualquier carácter individual, excepto /. [ abc ] Suplentes el carácter único a, b, o c. [ a-c ] Suplentes el carácter único a, b, o c. { ab,cd } Expandir a una regla para que coincida con ab y otra para que coincida con cd. [ ^a ] Sustituye a cualquier carácter excepto a. Reglas para los archivos incluyen: r = lectura w = escribir l = enlace k = bloqueo a = anexar Edición de un perfil. Los pasos siguientes describen el procedimiento para la edición de un perfil de Apparmor: Si usted no está conectado como root, escriba sudo su en una ventana de terminal. Introduzca la contraseña de root cuando se le solicite. Ir al directorio de perfil con cd / etc / apparmor.d /. Escriba ls para ver todos los perfiles instalados actualmente. Escriba nano nombre_perfil. Haga los cambios necesarios, a continuación, guardar el perfil. Reinicie Apparmor introduciendo sudo /etc/init.d/apparmor reload en una ventana de terminal.

Eliminar un perfil. Los pasos siguientes describen el procedimiento para la eliminación de un perfil de Apparmor. Si usted no está conectado como root, escriba su en una ventana de terminal. Introduzca la contraseña de root cuando se le solicite. Ir al directorio de perfil con cd / etc / apparmor.d /. Escriba ls para ver todos los perfiles instalados actualmente. Eliminar el perfil con rm profilename Reinicie Apparmor introduciendo sudo /etc/init.d/apparmor reload en una ventana de terminal. 6.1. Deshabilitar un perfil. Para desactivar temporalmente un perfil hasta el siguiente reinicio o recarga de la política (como root): descargar el perfil de 'apparmor_parser-r / etc / apparmor.d / <perfil>' Por ejemplo: sudo rm /etc/apparmor.d/disable/bin.ping Para desactivar permanentemente un perfil (como root): Sintaxis: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ sudo apparmor_parser -R /etc/apparmor.d/profile.name Los perfiles también se pueden eliminar mediante la realización (como root): apparmor_parser -R <profile_name> apparmor_parser-r <nombre_perfil> echo -n "<profile_name>" /sys/kernel/security/apparmor/.remove echo-n "<nombre_perfil>" / sys / kernel / security / apparmor /.remove Reiniciar un perfil: Sintaxis: sudo apparmor_parser -r /etc/apparmor.d/profile.name Por ejemplo: sudo apparmor_parser -r /etc/apparmor.d/bin.ping 6.1.2. Ejemplos de perfiles 6.1.2.1. Creación de perfiles para las aplicaciones web mediante ChangeHat de Apache. Un perfil de Apparmor representa la directiva de seguridad para un programa o un proceso concretos. Se aplica a un programa ejecutable, pero si una porción del programa necesita permisos de acceso distintos que otras porciones, el programa puede cambiar de sombrero para utilizar un contexto de seguridad distinto, diferente del acceso del programa principal. Esto se conoce como un hat (sombrero en inglés) o subperfil. ChangeHat permite a los programas cambiar de un hat de un perfil 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 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 las páginas Man de change_hat. Apache Change_Hat: Apparmor incluye el módulo mod-apparmor para el programa Apache. El módulo mod-apparmor funciona en el sistema para hacer que el servidor Web Apache se haga compatible con ChangeHat. Se instala si Apache se encuentra presente en el sistema. Primeramente apache debe ser configurado para usar el módulo mod_apparmor. $ sudo apt-get install apache2 $ sudo apt-get install libapache2-mod-apparmor $ sudo a2enmod apparmor $ sudo aa-enforce /etc/apparmor.d/usr.lib.apache2.mpm-prefork.apache2 $ sudo /etc/init.d/apache2 restart Figura 5 Configuración del apache. La política en nano usr.lib.apache2.mpm-prefork.apache2 : # 3- Configure apache with the following: #<Directory /var/www/phpsysinfo/> # AAHatName phpsysinfo #</Directory> # #include <abstractions/base> #include <abstractions/nameservice> capability kill, capability net_bind_service, capability setgid,

capability setuid, capability sys_tty_config, / rw, /** mrwlkix, } ^HANDLING_UNTRUSTED_INPUT { #include <abstractions/nameservice> / rw, /** mrwlkix, } # package-specific Apparmor files. #include <apache2.d> } En esta política para Apache, el sombrero HANDLING_UNTRUSTED_INPUT permite el acceso a todo el sistema. Registro y Auditoría: /var/log/audit/audit.log: aquí guarda Apparmor las violaciones de los perfiles. Apparmor ofrece la capacidad de auditar reglas dadas para que cuando se emparejan un mensaje de auditoría aparecerá en el registro de auditoría. Para habilitar los mensajes de auditoría para una determinada norma, la palabra clave de auditoría se antepone a la regla: audit /etc/foo/* rw, Si es conveniente para la auditoría sólo se le dé permiso puede ser la norma divide en dos reglas. En el ejemplo siguiente, los mensajes de auditoría cuando se abren los archivos para escribir, pero no cuando se abren sólo para la lectura: audit /etc/foo/* w, /etc/foo/* r, Nota: Mensajes de auditoría no se generan para cada acceso de lectura o escritura de un archivo, pero sólo cuando se abre un archivo para leer o escribir. Control de la auditoría puede ser combinado con las normas propietario del archivo condicional para proporcionar auditoría al acceso de los usuarios archivos de su propiedad (en este momento no es posible auditar los archivos que no les pertenecen): audit owner /home/*/.ssh/** rw, Directorios y Archivos: La siguiente lista contiene los archivos más importantes y los directorios utilizados por el marco AppArmor. Si va a administrar y solucionar problemas de sus perfiles de forma manual, asegúrese de que usted sabe acerca de estos archivos y directorios: /sys/kernel/security/apparmor/profiles: Virtualizados archivo cargado actualmente en representación de la serie de perfiles.

/etc/apparmor/: Ubicación de los archivos de configuración de AppArmor. /etc/apparmor/profiles/extras/: Un repositorio local de los perfiles enviados con AppArmor, pero no está habilitado de forma predeterminada. /etc/apparmor.d/: Ubicación de los perfiles, nombrado con el convenio de sustitución de la / en su camino con. (not for the root / )para los perfiles son más fáciles de manejar. Por ejemplo, el perfil para el programa / usr / sbin / ntpd es nombrado usr.sbin.ntpd. /etc/apparmor.d/abstractions/: Ubicación de las abstracciones. /etc/apparmor.d/program-chunks/: Ubicación de programas en trozos. /proc/*/attr/current: Consulte este archivo para revisar el estado de un proceso de confinamiento y el perfil que se utiliza para limitar el proceso. El comando ps auxz recupera esta información automáticamente. 7. Configuración de políticas de seguridad. Gestión del uso de los puertos USB, RS32 (serie), puerto de impresión. Para que un programa de software para acceder al dispositivo USB correctamente la Apparmor debe ser cambiado. Editar el archivo gedit /etc/apparmor.d/abstractions/libvirt-qemu y descomentar algunas líneas # WARNING: descomentariar estas zonas nos da el acceso para invitados directo al hardware. # Esto es necesario para pasar a través de USB, pero es un riesgo de seguridad. Usted ha sido advertido. /sys/bus/usb/devices/ r, /sys/devices/*/*/usb[0-9]*/** r, /dev/bus/usb/*/[0-9]* rw, Después de los cambios realizados Apparmor debe ser reiniciado: $ sudo /etc/init.d/apparmor restart Linux utiliza la librería libusb para trabajar con los accesos a los puertos usb: -rwxr-xr-x /usr/bin/libusb-config -rw-r--r-- /usr/include/usb.h -rw-r--r-- /usr/include/usbpp.h -rw-r--r-- /usr/lib/libusb.a -rw-r--r-- /usr/lib/libusb.la lrwxrwxrwx /usr/lib/libusb.so -> libusb-0.1.so.4.4.4 -rw-r--r-- /usr/lib/libusbpp.a -rw-r--r-- /usr/lib/libusbpp.la lrwxrwxrwx /usr/lib/libusbpp.so -> libusbpp-0.1.so.4.4.4 -rw-r--r-- /usr/lib/pkgconfig/libusb.pc Gestión del uso de la red.

Permiten programar los informes detallados de eventos y configurar alertas basadas en eventos definidos por el usuario. Para desactivar la red de acceso absoluto: "capability net_raw" / "network inet raw" Después "rcapparmor restart" para volver a cargar los perfiles. Apparmor ofrece acceso a la red basado en la mediación del dominio de red y el tipo. /bin/ping { network inet dgram, network inet raw,...} Gestión de los permisos de impresión. Habilita impresión de pdf: $sudo apt-get install cups-pdf $sudo chmod +s /usr/lib/cups/backend/cups-pdf Para que Apparmor no bloquee la impresión: sudo aa-complain cupsd Reiniciar CUPS:$sudo service cups restart $sudo aa-complain cupsd sudo /etc/init.d/cups restart Desactivar perfil de CUPS: sudoaa-complain /usr/sbin/cupsd Editar el perfil para habilitar las cups en Apparmor:$gksugedit /etc/apparmor.d/usr.sbin.cupsd En la línea 84, aproximadamente, vemos:/usr/lib/cups/backend/socket ixr, /usr/lib/cups/backend/usbixr, Lo cambiamos, añadiendo una línea:/usr/lib/cups/backend/socket ixr, /usr/lib/cups/backend-available/socket ixr, /usr/lib/cups/backend/usbixr, Reiniciar Apparmor y cups:$sudo service apparmor restart $sudo service cups restart Otra vía: aa-genprof cupsd Se hace una serie de acciones, es decir configuro lo que vaya a imprimir. Se confirma con la letra S y después que escanea se finaliza con la letra F. Luego, se pone el comando cat o nano mas la dirección donde está ubicado las cupsd y se verá todo lo ocurrido. Para habilitar o deshabilitar la política se utiliza aa-complain o aa-enforce, es decir aa-complain /etc/ mas la ubicación de las cupsd. Gestión de los permisos de instalación y ejecución de programas.

Programas que ejecutan setuid o sergid (es decir, que se ejecutan con la identidad del propietario del programa o de grupo). Usted puede encontrar programas que se ejecutan con setuid a root con el comando: # find / -user root -perm -4000 Las aplicaciones de red que tienen los puertos abiertos. Apparmor ofrece una pequeña utilidad llamada unconfined que utiliza la salida de netstat-pnl para identificar los programas que se ejecutan actualmente con puertos de red abiertos, pero que actualmente no tienen el perfil. Aplicaciones web, por ejemplo, scripts CGI o páginas PHP invocadas por un servidor web. GDB: el objetivo de un depurador como GDB es permitir que usted vea lo que está pasando dentro de un programa mientras se ejecuta o lo que otro programa está haciendo en el momento en que se estrelló. GDB: [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e prog] [-se prog] [-c core] [-x cmds] [-d dir] [prog[core procid]] GDB puede hacer cuatro tipos de cosas: Comience su programa, especificando todo lo que pueda afectar a su comportamiento. Haga su programa para dejar en condiciones específicas. Examinar lo que ha sucedido, cuando el programa se ha detenido. Cambiar las cosas en su programa, así que usted puede experimentar con correcting los efectos de un fallo y continuar a aprender sobre otra. Puede ejecutar gdb sin argumentos u opciones, pero la forma más habitual comenzar GDB es con uno o dos argumentos, que especifica un programa ejecutable como argumento: gdb programa También puede comenzar con un programa ejecutable y un archivo central: gdb programa básico Puede, en cambio, especificar un ID de proceso como un segundo argumento, si desea depurar un proceso en ejecución: gdb programa 1234. Éstos son algunos de los comandos más necesarios de GDB: break [file:] función: Establezca un punto de interrupción en la función (en archivo). run [arglist]: Inicie el programa (con arglist, si se especifica). bt Backtrace: Ver el programa de pila. print expr: Muestra el valor de una expresión. help [nombre]: Mostrar información sobre la orden GDB nombre, o información general sobre el uso de GDB. Gestión de las políticas de contraseñas. aa-genprof passwd: configurar las contraseñas Se hace una serie de acciones, es decir configuro lo que vaya a imprimir. Se confirma con la letra S y después que escanea se finaliza con la letra F. Luego, se pone el comando cat o nano mas la dirección donde está ubicado el passwd y se verá todo lo ocurrido.

Para habilitar o deshabilitar la política se utiliza aa-complain o aa-enforce, es decir aa-complain /etc/ mas la ubicación de las passwd. shadow es el comando que se utiliza para la caducar la contraseña. El punto de conflicto es que un nombre de archivo dado no es el propio archivo. Así, mientras que /etc/shadow puede identificar el archivo de contraseñas ocultas, el nombre no es el archivo de contraseñas ocultas. Si un atacante es capaz de crear otro nombre para el archivo (mediante el uso de enlaces o espacios de nombres, tal vez), que otro nombre podría ser una manera para que el atacante para acceder al archivo de contraseñas ocultas. Así que, aunque Apparmor prohíbe el acceso a /etc/shadow para una aplicación dada, que la aplicación aún puede tener acceso a rutas de acceso de otro tipo que se podría hacer para hacer referencia al mismo archivo. /etc/ tiende sombra real del archivo de contraseña en formato cifrado para la cuenta de usuario con propiedades adicionales relacionados con la contraseña de usuario es decir, que almacena la información segura cuenta de usuario. Todos los campos están separados por dos puntos (:) símbolo. Contiene una entrada por línea para cada usuario en /etc/passwd. En general, la entrada de sombra archivo es el siguiente: 1. Nombre de usuario: Es su nombre de usuario. 2. Contraseña: Es la contraseña cifrada. La contraseña debe tener un mínimo de 6-8 caracteres incluyendo los caracteres especiales, números. 3. Último cambio de contraseña (lastchanged): Días desde el 01 de enero 1970 que la contraseña fue cambiada por última vez. 4. Mínimo: El número mínimo de días necesarios entre los cambios de contraseña es decir, el número de días que quedan antes de que el usuario puede cambiar su contraseña. 5. Máxima: El número máximo de días que la contraseña es válida (después de que el usuario se ve obligado a cambiar su contraseña). 6. Avisa: El número de días antes de la contraseña es de expirar ese usuario es advertido de que su contraseña debe ser cambiada. 7. Inactivo: El número de días después de que caduque la contraseña de cuenta está deshabilitada. 8. Válida desde el día 01 de enero 1970 que la cuenta está deshabilitada, es decir una fecha absoluta especificando cuando la entrada no podrán ser utilizados.