Информационная безопасность

Базовые принципы


Итак, приступим к детальному разбору того, как этот метод работает. Сразу необходимо отметить, что делать системный вызов chroot() может только root. Это обусловлено рядом факторов - в частности, злоумышленник мог бы, имея только пользовательские привилегии, обмануть setuid программу, поместив ее в специально подготовленный CE с подтасованным passwd файлом, что позволило бы ему поднять привилегии.

Основные проблемы при создании chrooted среды создает именно тот факт, что приложение "не видит" никаких файлов за рамками своего корневого каталога. В общем - сильная сторона оказывается одновременно и слабой, как это часто бывает в этой жизни. Из этого обстоятельства вытекает тот факт, что если для нормальной работы программы нужны какие-то библиотеки и дополнительные файлы - их придется скопировать внутрь CE. Если с библиотеками вопрос в ряде случаев можно решить, статически слинковав искомое приложение и получить его в виде одного большого бинарного файла, то с остальными файлами этот трюк не пройдет. Для того, чтобы создать оптимальную изолированную "камеру" для сервиса, мы должны достаточно хорошо знать его внутреннее устройство, чтобы скопировать все нужное, не прихватив при этом в CE лишнего, т.к. жесткие диски у вас наверняка не бесконечного объема. Частично эту проблему помогают решить инструменты, входящие практически в любой современный дистрибутив Linux.



Содержание раздела