ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA




          UNIDAD PROFESIONAL CULHUACAN




 SECCION DE ESTUDIOS DE...
GRSECURITY


El proyecto “grsecurity” ofrece varios parches al núcleo de Linux que mejoran la seguridad
global del sistema...
Para compilar el kernel se necesitan instalar los siguientes paquetes:


   •   apt-get install build-essential bin86 kern...
Aplicamos el parche


   •   cat grsecurity-2.1.11-2.6.24.5-200804211829.patch | patch –Np1


Con lo anterior ya tenemos l...
De la pantalla anterior, seleccionamos las opciones de “grsecurity” requeridas y salvamos el
archivo con el botón de guard...
CONTROL DE ACCESO BASADO EN ROLES (RBAC)


Existen dos tipos de mecanismos de control de acceso usados para prevenir el ac...
TRABAJANDO CON RBAC


“gradm2” es el programa que permite administrar y mantener políticas para el sistema. Con
el se pued...
Para desactivar el sistema RBAC


      gradm2 -D     (ingresar la contraseña definida para el administrador)


Para cono...
Estructura de una ACL de “grsecurity”:


      <path of subject process> <optional subject modes> {
             <file obj...
Como se menciono anteriormente, la politica definida en el archivo predeterminado es
bastante restrictiva. Si RBAC esta ac...
Lo anterior oculta el directorio raiz a el proceso “dmesg” y elimina cualquier privilegio que
pueda necesitar. La “l” junt...
Sustituimos en “/etc/grsec2/policy” la directiva de aprendizaje que inlcuimos para “dmesg”
por el contenido de “learning.d...
CONCLUSION


“Grsegurity” brinda la posibilidad de crear un sistema que proporciona a cada proceso
unicamente los permisos...
Upcoming SlideShare
Loading in …5
×

Manejo Roles Linux

1,666 views

Published on

GRSECURITY

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,666
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Manejo Roles Linux

  1. 1. 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
  2. 2. GRSECURITY El proyecto “grsecurity” ofrece varios parches al núcleo de Linux que mejoran la seguridad global del sistema, entre sus principales características destacan: • Protección del espacio de direcciones, a través de la herramienta PAX se previene el abuso de los desbordamientos de buffer, además de proveer aleatoriedad a la administración de procesos en memoria. • Protección del sistema de archivos, sobre este aspecto existen restricciones en el /proc, que hacen que un usuario pueda ver únicamente sus procesos, además protecciones de ejecución en /tmp. • Registro de actividad en el “kernel”, configuración de varias opciones de auditoria. • Protección de ejecutables con la configuración de opciones que intervienen en la creación de procesos y a que binarios del sistema se puede acceder. • Protecciones de red con restricciones sobre que tipos de “sockets” podrán utilizar los usuarios y opciones de configuración relacionadas con la selección aleatoria de la pila TCP/IP. • Opciones de registros de eventos que permiten especificar el tiempo entre mensajes de notificación y el número máximo de estos mensajes. • Opciones de control de acceso basado en roles RBAC. INSTALACION El proceso de instalación se realizó sobre una versión de Linux con las siguientes características: • Distribución 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. 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 versión mas reciente de “grsecurity” que señala claramente en su nombre de archivo la versión 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. 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 configuración 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 configuración
  5. 5. De la pantalla anterior, seleccionamos las opciones de “grsecurity” requeridas y salvamos el archivo con el botón 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. 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 información 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 están ejecutando y por lo tanto, cuando se produce una vulnerabilidad de seguridad en una aplicación, ésta afecta a todos los objetos a los que el usuario tiene acceso. Así, si la aplicación es ejecutada por “root”, el atacante puede obtener los máximos 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 política de seguridad definida por el administrador y que los usuarios no pueden modificar. Esta política va más allá de establecer propietarios de archivos, define contextos, en donde se indica cuando un objeto puede acceder a otro objeto. La implementación 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 colección bien escrita de roles y operaciones, los usuarios estarán restringidos a hacer solamente aquellas tareas que el administrador le dice que pueden hacer.
  7. 7. TRABAJANDO CON RBAC “gradm2” es el programa que permite administrar y mantener políticas para el sistema. Con el se puede activar o desactivar el sistema RBAC, cambiar su rol y configurar una contraseña para el modo de administrador. Para introducir una contraseña para el administrador:  gradm2 -P admin (ingresar contraseña del rol administrador) hecho lo anterior podemos activar el sistema RBAC con:  gradm2 -E La política 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 instrucción:  cd /etc/grsec2/ dará por resultado que no se encuentra el archivo o directorio. O bien, una instrucción como “ifconfig” no será capaz de modificar las características de las interfaces con el modo RBAC habilitado. usuario “root” no puede modificar la interfaz eth0
  8. 8. Para desactivar el sistema RBAC  gradm2 -D (ingresar la contraseña definida para el administrador) Para conocer en que estado se encuentra RBAC  gradm2 -S LISTAS 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. 9. Estructura de una ACL de “grsecurity”: <path of subject process> <optional subject modes> { <file object> <optional object modes> [+|-]<capability> <resource name> <soft limit> <hard limit> connect { <ip>/<netmask>:<low port>–<high port> <type> <proto> } bind { <ip>/<netmask>:<low port>–<high port> <type> <proto> } } ARCHIVO DE POLITICAS PREDETERMINADO “/etc/grsec2/policy”
  10. 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 permitida ACTUALIZANDO LAS POLITICAS La manera mas sencilla de actualizar las politicas para la ejecución de un determinado programa es a través 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”, añadimos al final del archivo “/etc/grsec2/policy” una entrada como la siguiente subject /bin/dmesg l (L minuscula) / /etc/grsec2 h -CAP_ALL
  11. 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.dmesg se creo el archivo “learning.dmesg” con las politicas para “dmesg”
  12. 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 también 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. 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 más, ni menos. “Grsegurity” brinda un control muy preciso sobre todo lo que se puede hacer en un sistema.

×