[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]El mié, 06-03-2002 a las 18:24, Jesús Cabrera escribió: > Hola, estuve checando la página de UNAM CERT http://www.unam-cert.unam.mx > en el apartado de detección de intrusos y sugieren dar el siguiente comando: > > find / -user root -perm -4000 -print > > Para buscar archivos setuid (especialmente archivos setuid root) en todo el > sistema ya que los intrusos frecuentemente dejan copias setuid de /bin/sh o > /bin/time para así autorizarles el acceso como root a una ocasión posterior. > Mi duda es que encontré los siguientes archivos con setuid y root, ¿a cuales > me recomiendan cambiarles los privilegios?: De los que enumeras, a ninguno. La propiedad `setuid' no solamente se emplea por codigo malicioso; tambien se utiliza para que ciertos programas ejecutados por usuarios puedan accesar en algun momento de su ejecucion partes del sistema que solamente el superusuario tiene acceso. Vamos uno por uno. > /usr/bin/at Permite especificar actividades periodicas por usuario. Requiere `setuid' para que los usuarios puedan colocar sus tareas en el directorio de la cola, que tiene permisos restringidos. El directorio es /var/spool/at/. No es una buena opcion cambiar los permisos de la cola, porque entonces cualquier usuario podria alterar los trabajos de los demas. > /usr/bin/suidperl > /usr/bin/sperl5.6.0 Si observas con cuidado estos programas, son exactamente el mismo binario. `suidperl' es un vinculo duro hacia sperl5.6.0. Aunque si compilan perl a partir del codigo fuente original, suidperl es opcional, en muchas distribuciones viene por su utilidad para crear guiones con no tantos problemas de seguridad como hacer un guion de shell setuid, gracias a las opciones perl -w y/o perl -T > /usr/bin/rcp > /usr/bin/rlogin > /usr/bin/rsh Los tres programas estan relacionados con rsh, que permite la ejecucion (rsh), copia (rcp) y entrada (rlogin) desde/hacia servidores remotos. En este caso, lo sano no es quitar el bit `setuid' a estos programas; lo mejor es erradicar el paquete que los contiene (rsh, rsh-server en RedHat y derivados) y utilizar ssh, que es un reemplazo completo y seguro de estos programas. > /usr/bin/chage > /usr/bin/gpasswd > /usr/bin/passwd > /usr/bin/chfn > /usr/bin/chsh > /usr/bin/newgrp Todos estos programas se relacionan con los archivos /etc/passwd, /etc/shadow, /etc/group y /etc/gshadow. Consecuencias de quitar el bit setuid a estos programas: /usr/bin/chage: el usuario no podra revisar su informacion de expiracion de la contrase~a, porque reside en el archivo /etc/shadow que, por omision, tiene seguridad bastante draconiana. /usr/bin/gpasswd: el usuario no podra modificar la contrase~a asignada a su grupo, porque esta reside en el archivo protegido /etc/gshadow /usr/bin/passwd: el usuario no podra cambiar su propia contrase~a, porque reside en /etc/shadow /usr/bin/chfn: el usuario no podra cambiar su informacion personal (nombre, telefono, oficina, extension), porque esta informacion reside en /etc/passwd /usr/bin/chsh: el usuario no podra cambiar su shell, porque esta informacion reside en /etc/chsh /usr/bin/newgrp: el usuario no podra cambiar de grupo activo, sin tener que salir de su sesion. > /usr/bin/ssh Este es el reemplazo seguro de rsh/rcp/rlogin. Necesita ser `setuid' para asignar los privilegios por cada usuario del sistema despues de validar su entrada. Aqui, al contrario de otros programas, no necesita setuid para adquirir mas privilegios, sino para decrementarlos a partir de root. > /usr/bin/crontab Misma razon que at para setuid, excepto que el directorio de la cola que protege es /var/spool/cron > /usr/bin/sudo En lugar de dar a todo mundo la contrase~a del superusuario, asignas privilegios a cada usuario con sudo a maquinas, programas y usuarios especificos, y sudo permite esta ejecucion. Necesita setuid para ejecutar los programas con los privilegios del usuario requerido > /usr/sbin/traceroute `traceroute' requiere setuid porque necesita crear paquetes IP 'raw' para construir los paquetes ICMP, y este privilegio solamente lo tiene el superusuario. Es muy util no tener que ser el superusuario cada vez que se quiere hacer un diagnostico de la red, y es un buen antidoto contra la `rootitis': abrir sesiones X y ejecutar todo como root, con el pretexto de que `asi todo funciona bien'. > /usr/sbin/sendmail Si usas `sendmail', necesita ser setuid para guardar el correo electronico para cada usuario en /var/spool/mail. Si utilizas otro MTA (como qmail, postfix, exim) /usr/sbin/sendmail no requiere ser setuid, porque controla de otra forma los privilegios de entrega del correo electronico. > /usr/sbin/usernetctl Este lo utiliza RedHat para que los usuarios que no sean root puedan controlar sus conexiones de red, en particular las conexiones SLIP y PPP. > /usr/sbin/userhelper RedHat utiliza este programa para ejecutar programas (en particular los que cuentan con interfaz grafica) que requieren ciertos privilegios del superusuario, como la configuracion de la impresion o de la red. userhelper es el culpable de la ventana que pregunta por la contrase~a de root antes de ejecutar estos programas. > /usr/X11R6/bin/Xwrapper El servidor X requiere acceso directo al hardware, y estas llamadas al sistema (ioctls()) estan restringidas a root. En lugar de que todos los servidores X sean setuid (mala idea), solamente hay un binario setuid (un solo punto de falla, buena idea), que se encarga de ejecutar con los privilegios necesarios a los servidores X correspondientes. > /bin/ping Misma razon que traceroute. > /bin/mount > /bin/umount Montar y desmontar dispositivos requiere de acceso directo a los dispositivos, y todo acceso a hardware es privilegio del superusuario. Se necesita que mount/umount sean setuid para que los usuarios puedan montar sus propios dispositivos (piensen en CDROMS y/o floppys y/o unidades Zip y/o dispositivos portatiles como un Memory Stick). > /bin/su Misma razon de `sudo' para tener setuid, pero sin un control tan granular. > /sbin/pwdb_chkpwd > /sbin/unix_chkpwd Estos programas son parte de PAM, el subsistema de autenticacion que utiliza Linux (y Sun si mal no recuerdo). Son programas sencillos que verifican la validez de una contrase~a que no es legible directamente (contenida en /etc/shadow y/o en la base de datos correspondiente). Con estos programas, evitas que todos los programas que verifican la validez de un usuario (como xlock, segun el ejemplo de la documentacion de PAM) tengan que ser setuid. Moraleja: Si, es buen consejo buscar programas setuid, para mejorar la seguridad del sistema. No, no hagan cambios masivos, es PESIMA idea cambiar/eliminar la caracteristica `setuid' sin haber REVISADO LA DOCUMENTACION, ya que pueden reducir la funcionalidad del sistema o de plano estropearlo. Saludos -- (o- Cristian Othon Martinez Vera <cfuga en itam mx> Pulchrum est paucorum //\ http://eniac.rhon.itam.mx/~cfuga/ hominum. v_/_ _______________________________________________ Ayuda mailing list Ayuda en linux org mx