Когда целесообразно удалить привилегии setuid/setgid из приложения?
Я просматривал предложения АНБ по усилению Mac OS X и Linux и заметил небольшой кусочек информации:
Программы setuid запускаются с правами владельца файла (который часто является пользователем root) независимо от того, какой пользователь их выполняет. Ошибки в этих программах могут допускать атаки на повышение привилегий. Чтобы найти программы setuid и setgid, используйте команды:
найти / -perm -04000 -ls найти / -perm -02000 -ls
После определения двоичных файлов setuid и setgid отключите биты setuid и setgid (используя имя программы chmod ug-s) для тех, которые не нужны для операций системы или миссии.
Мой вопрос: как определить, в каких приложениях их биты setuid / setgid отключены? Например, я предполагаю, что некоторые приложения, такие как su, sudo и login должны иметь setuid. С другой стороны, что-то вроде write, вероятно, не требует setuid. Есть ли хороший способ узнать, действительно ли это нужно приложению?
1 ответ
Это хороший вопрос.
Обычно приложения, которым требуется setuid и setgid, являются приложениями, которые должны выполнять задачи администрирования пользователями без полномочий root.
Взять, к примеру, программу passwd. Используется для смены пароля. Пароли хранятся в файле / etc / shadow, который доступен для чтения только пользователю root, поэтому используется бит setuid.
Как правило, в популярных дистрибутивах Linux эти приложения безопасны в использовании, поскольку все они протестированы и не содержат ошибок.
Я не знаю, как вы можете узнать, нужны ли приложению эти биты или нет, но вы можете установить приложение, такое как snort или AIDE, которое проверяет целостность файлов и может предупредить вас, когда какой-то файл был изменен - особенно те, которые с биты setuid и setgid включены.