chroot

корневые означают « ч быть корнем » и является функцией под Unix - системы к корневой директории для изменения. Это влияет только на текущий процесс и его дочерние процессы. Сам термин «Chroot» может относиться как к системному вызову chroot (2), так и к утилите chroot (8) .

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

chroot не был разработан как функция безопасности, но в основном использовался для настройки виртуальных сред. Первое крупное известное приложение было в Network Software Engineering (NSE) в SunOS в 1986 году. Выход из среды был fchroot(1)возможен и задокументирован там.

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

Функция безопасности или нет?

Является ли среда chroot функцией безопасности для изоляции отдельных компьютерных программ от компьютера в целом, во многом зависит от мнения создателей соответствующей операционной системы :

Unix
  • Системы BSD пытаются не выпускать процессы в chroot(2)окружающей среде, то есть , чтобы зафиксировать их. Первое появление широкого термина «тюрьма» (тюрьма) в этом смысле было задокументировано с 1991 года со ссылкой на дистрибутив Unix 4.3BSD . Например, повышение привилегий из- chroot(8)под NetBSD очень сложно.
  • Исторически, с 2000 года, системы BSD предлагали виртуализацию на уровне операционной системы, в которой ядро используется несколькими изолированными, полностью закрытыми модулями ( экземплярами «пользовательского пространства» , средами). Первопроходцем, который был FreeBSD - Distribution , который с их версией 4.0 (2000) команда Unix была jail(8) готова для обработки сред, безопасно отделенных друг от друга. Это привело к появлению термина « побег из тюрьмы » до 2004 года .
  • В Solaris до Solaris 10 chroot не упоминался как функция безопасности, и поэтому в нем не было замечено никаких проблем, если программа могла «вырваться» из этой среды. Вспыхивают даже явно документированы. Чтобы изолировать процессы друг от друга, с 2005 года существует концепция Solaris 10 для контейнеров Solaris (также: зоны ), которая chroot(2)основывается на «chroot на стероидах» и называется «chroot на стероидах». Однако в Solaris 10 и более поздних версиях было добавлено гораздо больше свойств, а файловые системы (например, файловая система proc ) были явно защищены от chroot.
Linux
  • В Linux chroot также не считается функцией безопасности. Как пользователь root может покинуть среду chroot, описано на chroot(2)странице руководства.
  • Начиная с 2008 года, LinuX Container LXC может использоваться для создания виртуальных сред «пользовательского пространства» со своими собственными процессами , использующими общее ядро ​​Linux. GNU / Linux программное обеспечение Docker (2013) основан на LXC и использования виртуализация операционной системы , чтобы изолировать приложения в контейнерах .

миссия

Разделение прав
Chroot может использоваться в качестве меры предосторожности против нарушения безопасности , предотвращая нанесение потенциальным злоумышленником ущерба с помощью скомпрометированной программы или зондирования системы. Например, файловый сервер в сети может заблокировать каталог, из которого он обслуживает клиента, сразу после установления соединения. Агент пересылки почты Postfix следует аналогичному подходу, который разделяет его задачу на несколько небольших программ, соединенных одна за другой, каждая из которых работает в своем собственном chroot. Chroot также хорошо подходит для FTP-серверов, так что пользователи FTP не могут переключаться из своего «домашнего» каталога в другой каталог.
Горшок меда
Каталог chroot может быть заполнен таким образом, что имитируется реальная система с сетевыми службами. Затем механизм chroot может помешать злоумышленникам понять, что они находятся в искусственной среде ( «тюрьме» ) или проникнуть в реальную систему.
Тестирование
Изоляция, достигаемая механизмом chroot, также полезна для целей тестирования. Ваша собственная копия операционной системы может быть установлена ​​в такой каталог и служить тестовой средой для программного обеспечения, которое было бы слишком рискованно для использования в производительной системе.
ремонт
Чтобы восстановить систему Linux / Unix с помощью загрузочного компакт-диска, можно использовать chroot для работы в смонтированной системе. Например, можно восстановить забытый пароль root.
Установка операционной системы
Некоторые дистрибутивы Linux можно установить только через командную строку. Поэтому после распаковки дистрибутивного архива в новый раздел необходимо войти в новое системное окружение с помощью chroot.

недостаток

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

«Schroot» позволяет пользователям chroot, «openroot» предоставляет множество расширенных функций, таких как перенаправление X11 для программ с графическим интерфейсом.

Сам механизм chroot не совсем безопасен. Если программа имеет привилегии root в chrooted окружении, она может (в Linux или Solaris ) использовать вложенную chrooted окружение для выхода из первой.

Поскольку большинство систем Unix не полностью ориентированы на файловую систему, потенциально опасные функции, такие как контроль над сетью и процессами с помощью системных вызовов, остаются доступными для chrooted-программы.

Сам механизм chroot не накладывает никаких ограничений на ресурсы, такие как пропускная способность ввода-вывода, дисковое пространство или время процессора.

Смотри тоже

  • OpenVZ - решение для виртуализации, которое работает аналогично chroot, но лучше закрывает

веб ссылки

Linux
Unix

Индивидуальные доказательства

  1. a b : Вечер с Берфердом: в котором взломщика заманивают, терпят и изучают . В: Материалы летней конференции USENIX, том 1 . В: USENIX . Ассоциация, стр.163.
  2. Как выйти из среды chroot - Из NetBSD Wiki ( Memento 10 декабря 2008 г. в Интернет-архиве )
  3. Число в скобках после названия команд Unix, которым следует подразделение на так называемой странице руководства - Разделы («Области»), это: (1) Общая команда, (2) системные вызовы (3) подпрограммы (4) Специальные файлы (5) форматы файлов, (6) игры, (7) макросы и соглашения, (8) команды обслуживания, (9) интерфейс ядра, (n) новые команды.
  4. Маттео Риондато: Руководство FreeBSD, глава 15, Тюрьмы . В: freebsd.org . Проект FreeBSD. Проверено 19 августа 2014 года.
  5. Сайрус Пейкар: Воин Безопасности . O'Reilly Media, 12 января 2004 г., ISBN 9780596552398 , стр. 304 (последнее посещение - 30 августа 2014 г.).
  6. Клаус Шмидт: Высокая доступность и аварийное восстановление: концепции, дизайн, реализация . Springer Science & Business Media, 2 сентября 2006 г., ISBN 9783540345824 , стр. 186 (по состоянию на 21 августа 2014 г.).
  7. видеть. chroot(1m), chroot(2), fchroot(2)И gchroot(1); Проверено 10 апреля 2014 г.
  8. Файлы загрузки SourceForge LXC . В: sourceforge.net . Проверено 21 августа 2014 года.
  9. Рами Розен: Контейнеры Linux и будущее облако . 26 марта, 2014. Проверено 21 августа, 2014.
  10. О нас | Докер. (Больше не доступны в Интернете.) Docker Inc., архивируются с оригинала июля 18, 2014 ; Доступ к 6 сентября 2014 года .
  11. ^ Что такое Docker и когда его использовать. (Больше не доступны в Интернете.) CenturyLink Innovations Lab, архивируются с оригинала на 10 сентября 2014 года ; Проверено 9 сентября 2014 года .
  12. Установка базовой системы Gentoo ( Memento от 22 декабря 2014 г. в Интернет-архиве )
  13. Вычислительная техника Саймона - Как вырваться из тюрьмы chroot () ( воспоминание от 27 января 2016 г. в Интернет-архиве )
  14. Xen против OpenVZ ( Memento от 17 апреля 2009 года в интернет - архив )