Книга: Linux глазами хакера

4.4. Типичные ошибки распределения прав

4.4. Типичные ошибки распределения прав

Строгое распределение прав может значительно обезопасить систему. При правильной регламентации доступа большинство взломов могут оказаться неэффективными. Например, однажды в Интернете появилось сообщение, что один из сервисов ОС Linux содержит ошибку. Благодаря хорошему распределению прав мой сервер оказался защищенным от проникновения через эту дыру. Злоумышленник мог пробраться на сервер, но ничего изменить или удалить нельзя, потому что внешним пользователям этого сервиса все файлы открыты только для чтения.

Итак, если у вас хорошо настроены права доступа, то это может оказаться непреодолимой преградой для злоумышленника.

Давайте рассмотрим классический пример с файлами и каталогами. Допустим, что у вас на каталог поставлены максимальные права drwxrwxrwx (или 777), а на все файлы в нем — -rw-------. По идее, только владелец файла может его модифицировать, но это не совсем так. Да, злоумышленник не сможет изменить сам файл, но список документов в директории ему доступен (разрешены чтение и корректировка). Благодаря этому взломщик просто удалит нужный файл и создаст другой с новыми правами без каких-либо преград.

Чтобы этого не произошло, вы должны ограничивать доступ не только к файлам, но и каталогам.

Бывают случаи, когда директория должна иметь все права. Это открытые папки, через которые пользователи могут обмениваться файлами. Но при этом нужно защититься таким образом, чтобы только администратор или владелец файла могли его удалять. Все остальные пользователи не должны иметь прав на уничтожение уже существующих чужих файлов. Как же решить эту проблему, когда директорию необходимо сделать доступной всем, а ее содержимым должны управлять только хозяева?

Допустим, что у вас есть каталог shared. Для того чтобы в нем могли удалять файлы только владельцы, нужно установить для него sticky-бит. Это делается командой chmod с параметром +t:

chmod +t shared

Попробуйте выполнить команду ls -al и посмотреть права доступа к каталогу. Вы должны увидеть drwxrwxrwt. Обратите внимание, что на месте символа x для всех пользователей стоит "t". Как раз он и указывает на установленный sticky-бит. Теперь попробуйте удалить из этой директории файл, принадлежащий другому пользователю. Вы увидите сообщение "rm: cannot unlink 'имя файла': Operation not permitted".

Используйте этот бит на всех открытых папках. Некоторые хакеры, добравшись до диска и не обретя доступа к закрытой информации, начинают уничтожать все, что видят. С помощью sticky-бита взломщик сможет удалить только то, что создал сам, и ничего лишнего.

В Linux есть каталог /tmp, для которого как раз установлены права drwxrwxrwx, и в нем сохраняются временные данные всех пользователей. В современных дистрибутивах на этот каталог уже выставлен sticky-бит.

Проверьте, если в вашей системе это не так, то установите его самостоятельно, чтобы никто не смог удалить чужие временные файлы.

Оглавление книги


Генерация: 1.525. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз