13.07.2015 Views

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

48CAPÍTULO 4. EL SISTEMA DE FICHEROSdispositivo con un determinado nombre del sistema de ficheros. Internamente, el núcleo de Unixno distingue a sus archivos por su nombre sino por un número de inodo; de esta forma, el ficherocon número de inodo 23421 será el mismo tanto si se denomina /etc/passwd como si se denomina/usr/fichero. Mediante la orden ln(1) se pueden asignar a un mismo inodo varios nombres defichero diferentes en el sistema de archivos.4.2 Sistemas de ficherosCuando un sistema Unix arranca una de las tareas que obligatoriamente ha de realizar es incorporardiferentes sistemas de ficheros – discos completos, una partición, una unidad de CD-ROM. . . – ala jerarquía de directorios Unix; este proceso se llama montaje, y para realizarlo generalmente seutiliza la orden mount. Es obligatorio montar al menos un sistema de ficheros durante el arranque,el sistema raíz (‘/’), del que colgarán todos los demás.Montar un sistema de ficheros no significa más que asociar un determinado nombre de directorio,denominado mount point o punto de montaje, con el sistema en cuestión, de forma que alutilizar dicha ruta estaremos trabajando sobre el sistema de ficheros que hemos asociado a ella.Para saber qué sistemas de ficheros se han de montar en el arranque de la máquina, y bajo quénombre de directorio, Unix utiliza un determinado archivo; aunque su nombre depende del clonutilizado (/etc/vfstab en Solaris, /etc/fstab en Linux. . . ), su función – e incluso su sintaxis –es siempre equivalente. Un ejemplo de este fichero es el siguiente:luisa:~# cat /etc/fstab/dev/hda3 / ext2 defaults 1 1/dev/hda4 /home ext2 defaults 1 2none /proc proc defaults 1 1luisa:~#Cuando el sistema arranque, el fichero anterior viene a indicar que en /dev/hda3 se encuentra elsistema de ficheros raíz, de tipo ext2 (el habitual en Linux), y que se ha de montar con las opcionesque se toman por defecto. La segunda línea nos dice que /home es un sistema diferente del anterior,pero del mismo tipo y que se montará con las mismas opciones; finalmente, la última entrada hacereferencia al directorio /proc/, donde se encuentra un sistema de ficheros especial que algunosUnices utilizan como interfaz entre estructuras de datos del núcleo y el espacio de usuario (no entraremosen detalles con él). Si cualquiera de las entradas anteriores fuera errónea, el sistema o bienno arrancaría o bien lo haría incorrectamente. Por lo que evidentemente el fichero /etc/fstab osus equivalentes ha de ser sólo modificable por el root, aunque nos puede interesar – como veremosluego – que los usuarios sin privilegios puedan leerlo.Lo visto hasta aquí no suele representar ningún problema de seguridad en Unix; si hemos dichoque no hablaríamos de aspectos generales de los sistemas de ficheros, ¿por qué comentamoseste aspecto? Muy sencillo: diferentes problemas radican en una gestión incorrecta del montajede sistemas de ficheros. Por ejemplo, algo muy habitual en un atacante que consigue privilegiosde administrador en una máquina es instalar ciertas utilidades que le permitan seguir gozando deese privilegio (por ejemplo, un rootkit o un simple shell setuidado); si guarda el fichero setuidado –hablaremos más tarde de estos permisos ‘especiales’ – en cualquier directorio de nuestro sistema,su localización será muy rápida: una orden tan simple como find nos alertará de su presencia.En cambio, ¿qué sucede si el atacante utiliza una parte del sistema de ficheros oculta? Cuandomontamos un sistema bajo un nombre de directorio, todo lo que había en ese directorio desaparecede la vista, y es sustituido por el contenido del sistema montado; no volverá a estar accesible hastaque no desmontemos el sistema:luisa:~# mount/dev/hda3 on / type ext2 (rw)/dev/hda4 on /home type ext2 (rw)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!