13
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD PROFESIONAL CULHUACAN SECCION DE ESTUDIOS DE POSTGRADO E INVESTIGACION SEGURIDAD EN SISTEMAS OPERATIVOS MAESTRO MOISES SALINAS ROSALES DANIEL CRUZ CHAVEZ MANEJO DE ROLES EN LINUX IMPLEMENTACION DE LA HERRAMIENTA “GRSECURITY” AGOSTO 2008

Manejo Roles Linux

Embed Size (px)

DESCRIPTION

GRSECURITY

Citation preview

  • 1. ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD PROFESIONAL CULHUACANSECCION DE ESTUDIOS DE POSTGRADO E INVESTIGACION SEGURIDAD EN SISTEMAS OPERATIVOSMAESTRO MOISES SALINAS ROSALES DANIEL CRUZ CHAVEZMANEJO DE ROLES EN LINUX IMPLEMENTACION DE LA HERRAMIENTA GRSECURITY AGOSTO 2008

2. GRSECURITY El proyecto grsecurity ofrece varios parches al ncleo de Linux que mejoran la seguridad global del sistema, entre sus principales caractersticas destacan: Proteccin del espacio de direcciones, a travs de la herramienta PAX se previene elabuso de los desbordamientos de buffer, adems de proveer aleatoriedad a laadministracin de procesos en memoria. Proteccin del sistema de archivos, sobre este aspecto existen restricciones en el/proc, que hacen que un usuario pueda ver nicamente sus procesos, ademsprotecciones de ejecucin en /tmp. Registro de actividad en el kernel, configuracin de varias opciones de auditoria. Proteccin de ejecutables con la configuracin de opciones que intervienen en lacreacin de procesos y a que binarios del sistema se puede acceder. Protecciones de red con restricciones sobre que tipos de sockets podrn utilizar losusuarios y opciones de configuracin relacionadas con la seleccin aleatoria de la pilaTCP/IP. Opciones de registros de eventos que permiten especificar el tiempo entre mensajesde notificacin y el nmero mximo de estos mensajes. Opciones de control de acceso basado en roles RBAC. INSTALACION El proceso de instalacin se realiz sobre una versin de Linux con las siguientes caractersticas: Distribucin Ubuntu 8.04 Desktop i386 Kernel 2.6.24 En general, el proceso consiste en obtener los fuentes del kernel, obtener los parches de grsecurity, aplicar los parches al Kernel, recompilarlo e instalarlo. 3. Para compilar el kernel se necesitan instalar los siguientes paquetes: apt-get install build-essential bin86 kernel-package apt-get install libqt3-headers libqt3-mt-dev Cambiamos de directorio cd /usr/src Bajamos los fuentes del kernel y los fuentes de grsecurity wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2 wget http://www.grsecurity.net/grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz Para el kernel 2.6.24 es necesario bajar la versin mas reciente de grsecurity que seala claramente en su nombre de archivo la versin del kernel a parchar. Se descomprimen los archivos tar xjvf linux-2.6.24.tar.bz2 gunzip grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz Cambiamos de nombre al directorio donde se descomprimieron los fuentes y hacemos una liga con un nombre mas corto mv linux-2.6.24 linux-2.6.24-grsec ln -s linux-2.6.24-grsec linux Cambiamos al directorio de los fuentes y copiamos a este directorio, el parche descompactado de grsecurity. cd linux cp /usr/src/grsecurity-2.1.11-2.6.24.5-200804211829.patch . 4. Aplicamos el parche cat grsecurity-2.1.11-2.6.24.5-200804211829.patch | patch Np1 Con lo anterior ya tenemos listos los fuentes para configurar y compilar Copiamos el archivo de configuracin inicial que tenemos actualmente cp /boot/config-2.6.24-19-generic .config Configuramos lo que ser el nuevo kernel make xconfig Aparece la siguiente ventana de configuracin 5. De la pantalla anterior, seleccionamos las opciones de grsecurity requeridas y salvamos el archivo con el botn de guardar. Ubicados en el directorio /usr/src/linux construimos el paquete .deb make-kpkg clean make-kpkg -initrd --revision=ck2 kernel_image Si no hubo errores se genero el paquete /usr/src/linux-image-2.6.24-grsec_ck2_i386.deb Para instalarlo dpkg -i linux-image-2.6.24-grsec_ck2_i386.deb Por ultimo descargamos de un mirror de Ubuntu el paquete gradm2_2.1.11-1_i386.deb y lo instalamos con dpkg. Reiniciamos el sistema operativo 6. CONTROL DE ACCESO BASADO EN ROLES (RBAC) Existen dos tipos de mecanismos de control de acceso usados para prevenir el acceso no autorizado a archivos o informacin en general: DAC (control de acceso discrecional) y MAC (control de acceso obligatorio). Linux usa por defecto el mecanismo DAC, en el cual el creador del archivo puede definir quien tiene acceso a este. En DAC un usuario tiene un completo control sobre los objetos que le pertenecen y los programas que ejecuta. As mismo, el programa ejecutado por un usuario tendr los mismos permisos de ese usuario que lo esta ejecutando. Lo anterior implica que la seguridad del sistema depende de las aplicaciones que se estn ejecutando y por lo tanto, cuando se produce una vulnerabilidad de seguridad en una aplicacin, sta afecta a todos los objetos a los que el usuario tiene acceso. As, si la aplicacin es ejecutada por root, el atacante puede obtener los mximos privilegios en el sistema, comprometiendo la seguridad global. Un sistema MAC fuerza a que todos sigan las reglas establecidas por el administrador. En este modelo existe una poltica de seguridad definida por el administrador y que los usuarios no pueden modificar. Esta poltica va ms all de establecer propietarios de archivos, define contextos, en donde se indica cuando un objeto puede acceder a otro objeto. La implementacin MAC de grsecurity es llamada RBAC. Esta herramienta asocia roles a cada usuario, cada rol define que operaciones pueden ser llevadas a cabo sobre ciertos objetos. Dada una coleccin bien escrita de roles y operaciones, los usuarios estarn restringidos a hacer solamente aquellas tareas que el administrador le dice que pueden hacer. 7. TRABAJANDO CON RBAC gradm2 es el programa que permite administrar y mantener polticas para el sistema. Con el se puede activar o desactivar el sistema RBAC, cambiar su rol y configurar una contrasea para el modo de administrador. Para introducir una contrasea para el administrador: gradm2 -P admin(ingresar contrasea del rol administrador) hecho lo anterior podemos activar el sistema RBAC con: gradm2 -E La poltica predeterminada esta definida en /etc/grsec2/policy y es bastante restrictiva ya que siendo usuario root no podemos ver el directorio /etc/grsec2/, la siguiente instruccin: cd /etc/grsec2/ dar por resultado que no se encuentra el archivo o directorio. O bien, una instruccin como ifconfig no ser capaz de modificar las caractersticas de las interfaces con el modo RBAC habilitado.usuario root no puede modificar la interfaz eth0 8. Para desactivar el sistema RBAC gradm2 -D (ingresar la contrasea definida para el administrador) Para conocer en que estado se encuentra RBAC gradm2 -SLISTAS DE CONTROL DE ACCESO El sistema de control de acceso MAC de grsecurity esta implementado con listas de control de acceso ACL's, el administrador define restriciones sobre sujetos (recursos, procesos, archivos, etc.). Para cualquier evento, el kernel verifica las ACL's de MAC y las definidas en el estandar de Linux que manejan objetos. ACL estandar de Linux (sentencia getfacl) Objeto archivo home/daniel, objeto usuario y grupo daniel 9. Estructura de una ACL de grsecurity: { [+|-]connect { /:}bind { /:} } ARCHIVO DE POLITICAS PREDETERMINADO /etc/grsec2/policy 10. Como se menciono anteriormente, la politica definida en el archivo predeterminado es bastante restrictiva. Si RBAC esta activo ningun usuario podr acceder al programa dmesg y auditar el sistema.dmesg operacion no permitidaACTUALIZANDO LAS POLITICAS La manera mas sencilla de actualizar las politicas para la ejecucin de un determinado programa es a travs del modo de aprendizaje de grsecurity en lugar de hacerlo manualmente. Para el modo de aprendizaje, ser necesario desactivar RBAC temporalmente desde la consola utilizando: gradm2 -a admin gradm2 -D Como ya podemos ver el directorio y los archivos de grsecurity, aadimos al final del archivo /etc/grsec2/policy una entrada como la siguientesubject/bin/dmesg l (L minuscula) / /etc/grsec2 h -CAP_ALL 11. Lo anterior oculta el directorio raiz a el proceso dmesg y elimina cualquier privilegio que pueda necesitar. La l junto al nombre del programa significa que se usar el modo de aprendizaje Activamos RBAC en modo de aprendizaje gradm2 -L /etc/grsec/learn_config -E Ejecutamos el comando dmesg dmesg Si la orden tiene exito, grsecurity crea las entradas correpondientes en el registro de aprendizaje. Entonces utilizaremos gradm2 para generar las ACL's para el programa dmesg, a partir de los datos obtenidos. Desactivamos RBAC y el modo de aprendizaje gradm2 -a admin gradm2 -L /etc/grsec2/learn_config -O /etc/grsec2/learning.dmesgse creo el archivo learning.dmesg con las politicas para dmesg 12. Sustituimos en /etc/grsec2/policy la directiva de aprendizaje que inlcuimos para dmesg por el contenido de learning.dmesg y volvemos a inicar RBAC. Ahora para root, es posible ejecutar el comando dmesg con RBAC activo. Por ultimo definimos dentro de nuestras politicas que tambin el usuario daniel tenga derecho a auditar el sistema con dmesg.Agregando al usuario daniel Esta secuencia se puede seguir para cada programa que necesite permisos especiales para operar. Mientras grsecurity este en modo de aprendizaje debemos asegurarnos de probar todas las operaciones que se vayan a necesitar para que se detecte que llamadas utilizan los procesos o que archivos del sistema se requieren. 13. CONCLUSION Grsegurity brinda la posibilidad de crear un sistema que proporciona a cada proceso unicamente los permisos que necesita para hacer su trabajo: ni ms, ni menos. Grsegurity brinda un control muy preciso sobre todo lo que se puede hacer en un sistema.