Брандмауэры и специальное программное обеспечение 8 Часть 4

Вид материалаРеферат

Содержание


Контроль над SUID/SGID файлами
Настройка атрибутов
Таблица 4.1. Права доступа в восьмеричном виде Разрешения Восьмеричный Дополнительные Восьмеричный Комментарии
Подобный материал:
1   ...   16   17   18   19   20   21   22   23   ...   101

Контроль над SUID/SGID файлами


Как вы уже, наверное, поняли, состояние файлов SUID/SGID вашей системы необходимо постоянно и тщательно контролировать. Безусловно, появление в системе новых файлов с этими атрибутами не должно оставаться незамеченным вами. То же самое можно сказать и про замену существующих файлов. Частота осуществления этих проверок зависит от степени риска, допустимой для вашей системы.


ПРИМЕЧАНИЕ

Помните, что нет ничего плохо в том, если пользователь даст атрибуты SUID/SGID своим файлам или каталогам. Беспокоиться нужно лишь тогда, когда в домашнем каталоге пользователя обнаружится SUID-файл, владельцем которого является root.

Однако это всего лишь две из трех необходимых мер безопасности, связанных с SUID/SGID. He менее важно следить за обнаружением в используемых вами программах ошибок и уязвимых мест. Если вы узнаете, что в одной из используемых вами программ обнаружена ошибка или уязвимое место, вы должны как можно быстрее заменить эту программу новой, исправленной версией или принять меры, позволяющие тем или иным образом обезопасить вашу систему от вторжения. Как правило, исправленные версии программ становятся доступными для использования уже через несколько часов после того, как становится известно о существовании ошибки или уязвимого места. Однако до появления исправленной версии бинарного файла компания-поставщик вашей операционной системы или такие агентства, как CERT (Computer Emergency Response Team), публикуют рекомендации о том, как обезопасить систему в отсутствие исправленного бинарного файла.


СОВЕТ

Компания Caldera, как и всякий другой поставщик комплекта Linux, поддерживает список рассылки, сообщающий об уязвимых местах и ошибках, обнаруженных в ее продуктах. Подписаться на него можно по адресу rasystems.com.

Настройка атрибутов


Процедура установки атрибутов SUID/SGID и атрибута «sticky bit» (липкий бит) ничем не отличается от процедуры установки обычных атрибутов (о настройке обычных атрибутов рассказывалось в главе 3). Для этой цели используется все та же команда chmod. Соответствие между восьмеричными числами и атрибутами файла в данном случае следующее: число 4 соответствует атрибуту SUID, число 2 соответствует атрибуту SGID, наконец, число 1 соответствует атрибуту «sticky bit». При вызове chmod восьмеричное число, задающее желаемую комбинацию этих атрибутов, добавляется в качестве четвертого, самого старшего разряда восьмеричного числа, обозначающего набор разрешений на доступ к файлу (как рассказывалось в предыдущей главе, три других разряда обозначают комбинацию базовых разрешений на доступ к файлу со стороны владельца, группы и других пользователей).

Например, для того чтобы назначить файлу стандартную комбинацию разрешений на доступ, следует выполнить команду chmod 755 имя_файла. На самом деле эта команда является аналогом команды chmod 0755 имя_файла. Ноль в самом старшем восьмеричном разряде означает, что ни один из атрибутов SUID, SGID или «sticky bit» для файла не установлен. Любое число от 1 до 7 на месте этого нуля задает некую комбинацию только что перечисленных атрибутов. Так, для установки атрибута «sticky bit» для каталога /tmp, дабы изменять и удалять файлы в нем могли только их владельцы, необходимо выполнить:

chmod 1777 /tmp

Если вы хотите дать каталогу атрибут SGID (означающий, что в качестве владельца всех файлов, создаваемых в этом каталоге, будет назначаться группа, владеющая этим каталогом), необходимо выполнить команду chmod 2775 имя_ каталога. Аналогичным образом команда chmod 4755 имя_файла назначает файлу атрибут SUID. Чтобы назначить файлу оба атрибута, SUID и SGID (как сделано для программы си, относящейся к пакету UUCP), достаточно выполнить:

chmod 6755 cu

Здесь значение для SUID, равное 4, складывается со значением для SGID, равным 2, в результате получается значение 6, которое подставляется на четвертое знакоместо.

Проверить внесенные изменения можно с помощью команды ls -l Обратите внимание на комбинацию разрешений на доступ. Как мы уже знаем, набор базовых разрешений на доступ (чтение, запись, выполнение) обозначается латинскими буквами «rwx». Однако если для файла установлен атрибут SUID или SGID, вместо буквы «х» в этой тройке будет указана буква «s». При назначении атрибута SUID буква «s» займет место символа «х» в тройке прав владельца файла, а для атрибута SGID — в тройке прав группы файла. Атрибут «sticky bit» отображается несколько иначе: ему соответствует буква «t» на месте буквы «х» в тройке прав доступа для остальных пользователей.

Зная, как обозначаются эти атрибуты, несложно догадаться, как устанавливать их с использованием символьной маски в качестве аргумента команды chmod. Итак, чтобы назначить файлу атрибут SUID, оставив остальные атрибуты без изменений, нужно выполнить команду chmod u+s имя_файла. Для назначения атрибута SGID маску следует заменить на u+g. В обоих случаях минус вместо плюса сбрасывает указанный атрибут. Сброс или установка атрибута «sticky bit» (липкий бит) достигается посредством маски a-t или a+t, соответственно. Таблица 4.1 представляет собой расширенную версию таблицы 3.2 и содержит описание битов для дополнительных атрибутов файла.


Таблица 4.1. Права доступа в восьмеричном виде

Разрешения Восьмеричный Дополнительные Восьмеричный Комментарии
на доступ эквивалент разрешения эквивалент

-------- 000 - --Х- -Х- -Х 0111 Число «О» в самом

старшем разряде

указывать необязательно,

обязательными являются

лишь три последующих

восьмеричных числа

--Х--Х-Х 111 --- --- --t 1001 «t» означает «sticky bit»

(липкий бит)

-w--w--w- 222 --- --s --- 2010 «s» означает атрибуты

SUID/SGID

-wx-wx-wx 333 --- --s --t 3011 Столбец «Дополнительные

разрешения» показывает минимальный допустимый набор разрешений на доступ. Единицы в других разрядах стоят потому, что для назначения дополнительного атрибута необходимо, чтобы значение соответствующего разряда было ненулевым.

r--r--r-- 444 --s --- --- 4100

r-xr-x-r-x 555 --s --- --t 5101

rw-rw-rw 666 --s --s --s 6110

rwxrwxrwx 777 --s --s --t 7111