| Замена setuid-бита на capabilities для системных программ в Linux | [исправить] | 
| С целью избавления системы от программ с suid-битом, можно использовать следующую инструкцию.
Для привязки capabilities к исполняемому файлу используется утилита setcap из пакета libcap2-bin:
   sudo apt-get install libcap2-bin
Для формирования списка setuid-root и setgid-root программ можно использовать следующие команды:
   find /bin /sbin /lib /usr/bin /usr/sbin /usr/lib -perm /4000 -user root
   find /bin /sbin /lib /usr/bin /usr/sbin /usr/lib -perm /2000 -group root
Команды для замены setuid/setgid для базовых пакетов:
coreutils
   chmod u-s /bin/su
   setсap cap_setgid,cap_setuid+ep /bin/su
dcron
   chmod u-s /usr/bin/crontab
   setcap cap_dac_override,cap_setgid+ep /usr/bin/crontab
inetutils
   chmod u-s /usr/bin/rsh
   setcap cap_net_bind_service+ep /usr/bin/rsh
   chmod u-s /usr/bin/rcp
   setcap cap_net_bind_service+ep /usr/bin/rcp
   chmod u-s /usr/bin/rlogin
   setcap cap_net_bind_service+ep /usr/bin/rlogin
iputils
   chmod u-s /bin/ping
   setcap cap_net_raw+ep /bin/ping
   chmod u-s /bin/ping6
   setcap cap_net_raw+ep /bin/ping6
   chmod u-s /bin/traceroute
   setcap cap_net_raw+ep /bin/traceroute
   chmod u-s /bin/traceroute6
   setcap cap_net_raw+ep /bin/traceroute6
pam
   chmod u-s /sbin/unix_chkpwd
   setcap cap_dac_read_search+ep /sbin/unix_chkpwd
shadow
   chmod u-s /usr/bin/chage
   setcap cap_dac_read_search+ep /usr/bin/chage
   chmod u-s /usr/bin/chfn
   setcap cap_chown,cap_setuid+ep /usr/bin/chfn
   chmod u-s /usr/bin/chsh
   setcap cap_chown,cap_setuid+ep /usr/bin/chsh
   chmod u-s /usr/bin/expiry
   setcap cap_dac_override,cap_setgid+ep /usr/bin/expiry
   chmod u-s /usr/bin/gpasswd
   setcap cap_chown,cap_dac_override,cap_setuid+ep /usr/bin/gpasswd
   chmod u-s /usr/bin/newgrp
   setcap cap_dac_override,cap_setgid+ep /usr/bin/newgrp
   chmod u-s /usr/bin/passwd
   setcap cap_chown,cap_dac_override,cap_fowner+ep /usr/bin/passwd
xorg-xserver
   chmod u-s /usr/bin/Xorg
   setcap cap_chown,cap_dac_override,cap_sys_rawio,cap_sys_admin+ep /usr/bin/Xorg
screen - обязательно требует setuid для выполнения определенных проверок
util-linux-ng - не рекомендуется использовать данный пакет с capabilities, так
как в реализации команд mount и umount присутствуют определенные проверки,
которые действуют только с setuid и пропускаются с  capabilities, что дает
возможность пользователям монтировать файловые системы к которым они не имеют доступа.
Подробнее об опасностях, которые сулит перевод программы с setuid на
capabilities без проведения аудита кода, можно прочитать здесь.
 | 
|  | 
| 
 | 
 | | Раздел:    Корень / Безопасность / Шифрование, PGP | 
| | 1, segoon (ok), 23:11, 04/11/2010  [ответить] | +/– |  |  setcap cap_chown,cap_dac_override,cap_sys_rawio,cap_sys_admin+ep /usr/bin/Xorg Это, конечно, сильно уменьшает права Х-сервера. Эксплойту будет очень сложно получить права админа.
 
 |  |  | 
 
 | 2, konst (??), 19:25, 07/11/2010  [ответить] | +/– |  |  а зачем это надо, если остаются хоть какие-то setuid-битные файлы? 
 |  |  | 
 
 | 3, User294 (ok), 22:19, 08/11/2010  [ответить] | –1 +/– |  |  >  дает возможность пользователям монтировать > файловые системы к которым они не имеют доступа
 О как. Т.е. возможен еще и даунгрейд секурити таким макаром :)
 |  |  | 
 
 | 4, eoranged (ok), 02:41, 20/01/2014  [ответить] | +/– |  |  По-хорошему, выполнение большинства из этих задач от имени пользователя root является более безопасным, поскольку в данном случае происходит дополнительная изоляция процесса, обладающего повышенными привелегиями, и лишение пользователя контроля над этим процессом. 
 |  |  | 
 
 
 |