Chroot

chroot в Unix-операционных системах — это операция изменения корневого каталога. Она затрагивает только текущий процесс и его потомков. chroot сам по себе может ссылаться на chroot(2) системный вызов или на программу-обёртку chroot(8).

Программа, корень которой был перенесён в другой каталог не может обращаться к файлам вне этого каталога. Это обеспечивает удобный способ помещения в «sandbox» («песочницу») тестовой, ненадёжной или другой опасной программы. Это также простой способ механизма «jail» («тюрьмы»).

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

Программам разрешается открывать файловые дескрипторы (для файлов, конвейеров и сетевых соединений) в chroot-е, который может упростить изготовление jail делая необязательным хранение рабочих файлов внутри каталога chroot. Это также может использоваться как простейшая capability-система, в которой программе явно даётся доступ к ресурсам вне chroot основываясь на дескрипторах, которые содержатся внутри.

Использование

Разделение привилегий 
chroot может использоваться как упреждающий способ защиты от бреши в безопасности предотвращая возможного атакующего от нанесения любых повреждений или зондирования системы с помощью скомпрометированной программы. Например, сетевой файловый сервер может делать chroot в тот каталог, из которого он раздаёт файлы сразу после соединения с клиентом. Подобный подход используется MTA Postfix, который разделяет свою работу на конвейер меньших, индивидуально заточённых в chroot программ.
Изготовление honeypot-ов 
chroot-каталог может быть наполнен таким образом, чтобы симулировать реальную систему с запущенными сетевыми сервисами. Механизм chroot в результате может предотвратить обнаружение атакующими систему с целью компрометации от того, что это является искусственным окружением, или от взлома реальной системы.
Тестирование 
Изоляция, которая обеспечивается механизмом chroot также полезна для целей тестирования. Отдельная копия операционной системы может быть установленая в chroot-каталог как тестовое окружение для ПО, которое в противном случае было бы слишком рискованно разворачивать на работающей системе.

Недостатки

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

Сам по себе механизм chroot не полностью безопасен. Если программа, запущенная в chroot имеет супер-пользовательские привилегии, она может выполнить second chroot для того, чтобы вылезти наружу. Это работает потому, что некоторые ядра Unix не позволяют правильного вложения контекстов chroot.

Большинство систем Unix не полностью ориентированы на файловую систему и оставляют потенциально разрушительную функциональность, такую как сетевую и контроль процессов доступной через интерфейс системных вызовов к программе в chroot.

Механизм chroot сам по себе не умеет осуществляет лимитирования на ресурсы, такие как пропускная способность ввода/вывода, дисковое пространство или время ЦПУ.

Ссылки


UNIXTM-команды, запускаемые в режиме командной строки (другие)  п·о·р 
Операции над файлами и файловыми системами: cat | chdir/cd | chmod | chown | chgrp | cp | du | df | file | fsck | ln | ls | lsof | mkdir | more | mount | mv | pwd | rcp | rm | rmdir | split | touch | tree
Управление процессами: anacron | at | chroot | cron/crontab | kill | nice/renice | ps | sleep | screen | time | timex | top | wait
Управление пользователями/Средой окружения: env | finger | id | locale | mesg | passwd | su | sudo | uname | uptime | w | wall | who | write
Обработка текстов: awk | cut | diff | ex | head | iconv | join | less | more | nkf | paste | sed | sort | tail | tr | uniq | wc | xargs
Программирование командной строки: echo | expr | unset Печать: lp
Сетевое взаимодействие:
inetd | netstat | ping | ssh | traceroute
Поиск:
find | grep | strings
Разное:
banner | bc | cal | man | yes
 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home