Discussion:Admin-admin plus-secur
Modifs rubrique 5. Vérifier les permissions
Je voudrais préciser que le bit SUID root n'est pas toujours un énorme trou de sécurité, contrairement à ce qui est indiqué.
Pour vous en convaincre, faites un find:$ find /bin /usr -perm -4000 -exec ls -l --color=auto "{}" \;
-rwsr-xr-x 1 root root 27000 2007-02-27 08:53 /bin/su
-rwsr-xr-x 1 root root 30736 2007-01-31 00:10 /bin/ping
-rwsr-xr-x 1 root root 76896 2007-02-21 18:48 /bin/mount
-rwsr-xr-x 1 root root 26564 2007-01-31 00:10 /bin/ping6
-rwsr-xr-x 1 root root 56984 2007-02-21 18:48 /bin/umount
-rwsr-sr-x 1 root root 7672 2007-04-03 14:08 /usr/bin/X
-rwsr-sr-x 1 daemon daemon 37800 2006-01-03 08:15 /usr/bin/at
-rwsr-xr-x 1 root root 837304 2007-03-07 23:16 /usr/bin/gpg
-rwsr-xr-x 1 root root 44924 2006-05-14 18:50 /usr/bin/mtr
-rwsr-xr-- 1 root audio 7660 2007-02-21 00:18 /usr/bin/beep
-rwsr-xr-x 1 root root 32064 2007-02-27 08:53 /usr/bin/chfn
-rwsr-xr-x 1 root root 23616 2007-02-27 08:53 /usr/bin/chsh
-rwsr-xr-x 2 root root 91700 2006-04-15 09:39 /usr/bin/sudo
-rwsr-xr-- 1 root plugdev 22316 2006-09-11 13:48 /usr/bin/pumount
-rwsr-xr-x 1 root root 11003 2006-10-01 19:33 /usr/bin/fileshareset
-rwsr-xr-x 1 root root 5824 2007-03-30 16:42 /usr/bin/kgrantpty
-rwsr-xr-x 1 root root 20056 2007-02-27 08:53 /usr/bin/newgrp
-rwsr-xr-x 1 root root 28480 2007-02-27 08:53 /usr/bin/passwd
-rwsr-xr-x 1 root root 37248 2007-02-27 08:53 /usr/bin/gpasswd
-rwsr-xr-- 1 root plugdev 29280 2006-09-11 13:48 /usr/bin/pmount
-rwsr-xr-x 1 root root 5316 2007-03-30 16:42 /usr/bin/start_kdeinit
-rwsr-x--- 1 root fuse 18368 2007-03-11 14:22 /usr/bin/fusermount
-rwsr-xr-x 1 root root 18060 2006-11-23 21:58 /usr/bin/traceroute.lbl
-rwsr-sr-x 1 root mail 72544 2006-04-30 21:34 /usr/bin/procmail
-rwsr-xr-x 2 root root 91700 2006-04-15 09:39 /usr/bin/sudoedit
-rwsr-xr-x 1 root root 6372 2007-03-30 16:42 /usr/bin/kpac_dhcp_helper
-rwSr--r-- 1 root root 2656 2006-07-23 01:08 /usr/lib/libfakeroot-tcp.so
-rwSr--r-- 1 root root 2656 2006-07-23 01:08 /usr/lib/libfakeroot-sysv.so
-rwsr-xr-x 1 root root 10244 2007-03-27 15:21 /usr/lib/apache2/suexec
-rwsr-xr-x 1 root root 142156 2007-03-05 17:38 /usr/lib/openssh/ssh-keysign
-rwsr-xr-x 1 root root 9580 2007-02-21 16:13 /usr/lib/pt_chown
-rwsr-xr-x 1 root root 688128 2007-01-20 10:46 /usr/sbin/exim4
On voit bien que SUID root est largement utilisé dans la conf par défaut de la distrib (ici une debian etch). Tout simplement parce qu'un processus qui n'est pas root ne peut pas obtenir de droits root autrement qu'en lançant un processus SUID root.
Ce n'est que comme ça qu'il est possible de changer d'utilisateur en utilisant su. su est SUID root, il peut donc lire /etc/shadow, il demande à l'utilisateur son mot de passe puis si il est correct il lance un shell avec les privilèges de l'utilisateur demandé.
Pour plus d'information, voir le manuel des fonctions execve et setuid.
Bien sûr, si j'étais parano je pourrais enlever le bit SUID root de certains programmes qui n'en ont pas nécessairement besoin, mais il ne faut pas toucher à su, sudo, mount, ping... à moins de savoir ce que l'on fait.