Gentoo Logo

[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


6. Permisos de ficheros

Contenido:

6.a. Lectura para todos

Los usuarios normales no deberían tener acceso a los archivos de configuración o contraseñas. Un atacante puede robar contraseñas de bases de datos o sitios web y usarlos para alterar --o incluso peor, borrar-- datos. Por esto es importante que los permisos de ficheros sean correctos. Si usted está seguro que un archivo sólo es usado por root, asígnele los permisos 0600 y asigne el usuario correcto al fichero con chown.

6.b. Escritura para todos/grupos

Listado de Código 2.1: Buscando ficheros y directorios con escritura para todos

# find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \; 2>/dev/null >writable.txt
# find / -type d \( -perm -2 -o -perm -20 \) -exec ls -ldg {} \; 2>/dev/null >>writable.txt

Esto creará un fichero enorme con los permisos de todos los archivos que tienen tanto permiso de escritura para el grupo a para todos. Verifique los permisos y elimine los permisos de escritura para todos ejecutando /bin/chmod o-w en cada fichero.

6.c. Ficheros SUID/SGID

Los ficheros con el bit SUID o SGID habilitado se ejecutan con los privilegios del usuario o grupo propietario y no del usuario que ejecuta el archivo. Normalmente esos bits se usan en archivos que necesitan ejecutarse como root para hacer su labor. Esos archivos pueden provocar un compromiso de root (si contienen agujeros de seguridad). Los ficheros con el bit SUID o SGID activado resultan peligrosos y deberían ser evitados a toda costa. Si usted no usa estos ficheros utilice en ellos chmod 0 o desinstale (unmerge) el paquete de donde provienen (verifique a qué paquete pertenecen usando equery; si todavía no lo tiene instalado simplemente escriba emerge gentoolkit). En cualquier caso, basta desactivar el bit SUID con chmod -s.

Listado de Código 3.1: Buscando ficheros setuid

# find / -type f \( -perm -004000 -o -perm -002000 \) -exec ls -lg {} \; 2>/dev/null >suidfiles.txt

Esto creará un archivo conteniendo la lista de los ficheros SUID/SGID.

Listado de Código 3.2: Listado de los binarios setuid

/bin/su
/bin/ping
/bin/mount
/bin/umount
/var/qmail/bin/qmail-queue
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/crontab
/usr/bin/chage
/usr/bin/expiry
/usr/bin/sperl5.6.1
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/suidperl
/usr/lib/misc/pt_chown
/usr/sbin/unix_chkpwd
/usr/sbin/traceroute
/usr/sbin/pwdb_chkpwd

Por defecto, Gentoo Linux no tiene muchos ficheros SUID (aunque depende de lo que haya instalado), pero usted debería obtener una lista similar a la anterior. Muchos de los comandos no deben ser utilizados por los usuarios normales, sólo por root. Desactive el bit SUID en ping, mount, umount, chfn, chsh, newgrp, suidperl, pt_chown y traceroute usando chmod -s en cada fichero. No desactive el bit en su, qmail-queue o unix_chkpwd. Desactivar setuid de estos ficheros le impedirá hacer 'su' y recibir correo. Desactivando el bit (donde es seguro hacerlo) usted elimina la posibilidad de que un usuario normal (o un atacante) consiga acceso de root a través de estos archivos.

Los únicos ficheros SUID que tengo en mi sistema són su, passwd, gpasswd, qmail-queue, unix_chkpwd y pwdb_chkpwd. Pero si usted está ejecutando X, necesita tener alguno más, puesto que X necesita el privilegiado acceso proporcionado por SUID.

6.d. Binarios SUID/SGID y enlaces rígidos

Sólo se considera borrado un fichero cuando no tiene más enlaces apuntándole. Esto podría sonar un poco raro, pero tenga en cuenta que un nombre de fichero como /usr/bin/perl es actualmente un enlace a el inodo donde los datos están almacenados. Cualquier número de enlaces puede apuntar al fichero, y sólo hasta el último de ellos no desaparezca, el fichero continua existiendo.

Si sus usuarios tienen acceso a una partición que no está montada con nosuid o noexec (por ejemplo, si /tmp, /home o /var/tmp no están en particiones separadas) debe tener cuidado asegurándose que sus usuarios no creen enlaces rígidos (hardlinks, en inglés) a binarios SUID o SGID, porque después que Portage los haya actualizado, los usuarios continuarían teniendo acceso a las versiones antiguas.

Aviso: Si ha recibido una advertencia de Portage acerca de que quedan enlaces rígidos, y sus usuarios pueden escribir en una partición que permita la ejecución de ficheros SUID/SGID, deberá leer esta sección cuidadosamente. Uno de sus usuarios podría intentar burlar una actualización manteniendo una versión antigua de un programa. Si sus usuarios no crean sus propios ficheros SUID, o sólo pueden ejecutar programas mediante el cargador dinámico (particiones montadas como noexec), no tiene por qué preocuparse.

Nota: Los usuarios no necesitan acceso de lectura a un fichero para enlazarlo, sólo necesitan permiso de lectura al directorio que lo contiene.

Para comprobar cuantos enlaces a ficheros tiene, puede usar el comando stat.

Listado de Código 4.1: Comando stat

$ stat /bin/su
  File: `/bin/su'
  Size: 29350           Blocks: 64         IO Block: 131072 regular file
Device: 900h/2304d      Inode: 2057419     Links: 1
Access: (4711/-rws--x--x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2005-02-07 01:59:35.000000000 +0000
Modify: 2004-11-04 01:46:17.000000000 +0000
Change: 2004-11-04 01:46:17.000000000 +0000

Para encontrar los ficheros SUID y SGID con múltiples enlaces, puede usar find.

Listado de Código 4.2: Buscar binarios suid/sgid multi-enlazados

$ find / -type f \( -perm -004000 -o -perm -002000 \) -links +1 -ls

[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


Imprimir

Ver completo

Página actualizada 2 de abril, 2010

Sumario: Asegurando los ficheros.

Kim Nielsen
Autor

John P. Davis
Editor

Eric R. Stockbridge
Editor

Carl Anderson
Editor

Jorge Paulo
Editor

Sven Vermeulen
Editor

Benny Chuang
Editor

Sune Jeppesen
Editor

Tiemo Kieft
Editor

Zack Gilburd
Editor

Dan Margolis
Editor

Joshua Saddler
Editor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

Postel
Traductor

Carles Ferrer Peris
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.