5.2.1. Снижение полномочий процессов
Службы, работающие с привилегиями root, пересмотрены и исправлены так, чтобы они работали с меньшими возможностями процесса. Это уменьшает соблазн использовать эти службы для повышения привилегий. Кроме того, права доступа к файлу shadow изменены на 000
, а некоторые каталоги в $PATH
установлены в 555
, чтобы не дать службам без DAC_OVERRIDE
возможность получить доступ к файлу shadow или записывать в каталоги из $PATH
.
Когда кто-нибудь атакует систему, он обычно не многое может сделать, если не сможет поднять привилегии. Эта новая особенность снижает число целей, которые могут быть использованы для увеличения привилегий. Если у root-процессов не будет всех возможностей, их будет труднее использовать для разрушения системы.
Процессы с root uid все же могут нанести вред системе, потому что они могут писать практически в любой файл и, конечно, читать файл /etc/shadow
. Однако, если безопасность системы усилена таким образом, что для root требуется привилегия DAC_OVERRIDE
, тогда лишь ограниченное число процессов может повредить систему. Это не повлияет на возможности администраторов, потому что они всегда получают все привилегии, включая DAC_OVERRIDE
. Таким образом, даже если кто-нибудь успешно атакует root-процесс, теперь им будет труднее воспользоваться результатами этой атаки.
В системе с усиленной безопасностью права доступа должны быть примерно такими: 555
/bin
, 555
/lib
, 000
/etc/shadow
и так далее. Текущая задача - охватить каталоги в переменной $PATH
, библиотечные каталоги, /boot
и /root
. Эта схема никак не мешает SELinux, а дополняет его, поскольку привилегии являются средствами дискреционного управления доступом и они первыми участвуют в разрешении доступа.
Песочница SELinux дает возможность запустить команду в крайне ограниченном режиме. К сожалению, природа приложений с графическим интерфейсом такова, что эту возможность очень трудно применить к этим приложениям, для которых это требуется больше всего.
Новая команда sandbox -X
дает возможность сильно ограничить многие приложения с графическим интерфейсом. Используя это в некоторых web-приложениях, пользователь может задать, например, что Open Office должен работать нормально, если запущен пользователем, но должен быть ограничен, если запущен из Интернета.
Будучи запущенным в песочнице SELinux, приложение с графическим интерфейсом может получать доступ лишь к ограниченной структуре каталогов, которая уничтожается при выходе, этому приложению запрещен доступ в сеть и оно работает на изолированном X-сервере, что предотвращает доступ этого приложения к другим приложениям, работающим в X.