LINUX.ORG.RU
решено ФорумAdmin

Какие недостатки chroot в сравнении с VM?

 ,


0

1

У меня есть приложение на локалхосте, которое хочу запускать безопасно и в отдельной среде. Цель - чтобы не было доступа к моим основным данным и на отдельном ядре. Поставил одную предельно лёгкую сборочку с ядром grsec, доступна через chroot, всё запускается, видит только свою папку, утилита работает. Так-то есть несколько виртуалок, но там всё тяжелее и ждать загрузки в десятки раз (просто несоизмеримо) дольше.

Так вот, у меня вопрос, какие минусы и угрозы безопасности в таком способе? Ну, от Докера сразу отказался, ибо он использует ядро хоста и это мне не подходит. Какие ещё легковыесные варианты под безопасный запуск всего оной утилиты в контейнере?

★★★★★

Последнее исправление: fehhner (всего исправлений: 1)

Из чрута можно сбежать и он тоже «использует ядро хоста». Это просто подмена файловых путей.

anonymous
()
Ответ на: комментарий от anonymous

Понял. А какой вариант на базе контейнеров/виртуализации, можно назвать самым быстродействующим и в сравнении безопасным? Если подразумевается и запуск графических приложений (например, скайп тот же проприетарный, в здравом уме на хост систему ставить не захочешь) и обычных. В чруте например я поставил минимальную сборку, дбас и использовал x-сервер хоста.

fehhner ★★★★★
() автор топика

Тебе нужен firejail.

upd:

Хотя стоп…

Ну, от Докера сразу отказался, ибо он использует ядро хоста и это мне не подходит

Но ведь чрут тоже использует ядро хоста. Отдельное ядро только в виртуалке, но там ты будешь долго ждать загрузки. Одновременно и отдельное ядро и не ждать загрузки и безопасно — не бывает.

Уточни, какая именно стоит задача? «На отдельном ядре» — это не задача, а выбранный (возможно зря) вариант решения. Если просто оградить приложение так, чтобы он не имел доступа к данным, определённым протоколом, сети, и всё это гибко настраиваемо — тогда подойдёт firejail. Если что-то другое, и действительно нужно отдельное ядро, то смотри в сторону xen.

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 5)
Ответ на: комментарий от Psych218

подойдёт firejail

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

Bruce_Lee ★★
()
Ответ на: комментарий от Psych218

Тебе нужен firejail

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

fehhner ★★★★★
() автор топика
Ответ на: комментарий от fehhner

Ну тут смотри, нужно аж три уязвимости: в браузере — выполнение произвольного кода, в ОС — повышение привилегий, в самом firejail — побег за пределы сэндбокса. Вероятность существования всех трёх одновременно, конечно, не нулевая, но всё же. 100% гарантии не может дать, пожалуй, вообще ничто.

Psych218 ★★★★★
()
Ответ на: комментарий от Psych218

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

fehhner ★★★★★
() автор топика
Ответ на: комментарий от Psych218

но там ты будешь долго ждать загрузки.

Qemu с ядром defconfig и debian внутри стартует за 5-7 секунд до момента, пока не станет доступен ssh. Это не так и долго.

Deleted
()
Ответ на: комментарий от Psych218

А скайп у меня и из докера отлично впринципе запускается, чтобы лишнее не читал из системы. Просто, хотелось подумать, какие могут быть ещё варианты, пробую разные. Firefox в чрут Alpine linux для сравнения поставил, запускается так быстро, что мала разницы с запуском с просто хоста по скорости.

fehhner ★★★★★
() автор топика
Ответ на: комментарий от fehhner

с правами рута нет разницы - в сендбоксе она или нет

Возможно, это не так, но unprivileged LXC не об этом? Когда root в контейнере - это лишь какой-нибудь UID 100000 на хосте.

fludardes ★★
()

selinux тебе в помощь

отдельный пользователь для приложения и не морочте себе и людям мозг

futurama ★★★★★
()
Ответ на: комментарий от fehhner

Если малварь в них умеет, то с правами рута нет разницы - в сендбоксе она или нет.

Внутри сэндбокса системные каталоги все read-only даже для рута. Хомяк у тебя вообще пустой огороженный, специально для огораживаемой программы (--private=~/sandbox например). Как малварь, даже обладая правами рута, но внутри сэндбокса, произведёт какие-то деструктивные действия?

Psych218 ★★★★★
()
Ответ на: комментарий от Deleted

5-7 секунд до момента, пока не станет доступен ssh. Это не так и долго.

Ну это всё относительно. У меня столько (6–7 секунд) и на реальном железе от grub до загруженного WM в иксах и с уже запущенными jabber- и tox-клиентами… Правда от кнопки включения до grub — почти столько же…

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 1)

Почитал ветку, но так и не понял, что тебе надо. Надо, что бы каждое приложение было как-нибудь жестко изолировано от всего остального?

В принципе, тут уже советовали selinux, можно еще вспомнить qubesOS от пани Рутковски, там всё, что тебе нужно, идет из коробки.

CaveRat ★★
()
Ответ на: комментарий от Psych218

Внутри сэндбокса системные каталоги все read-only даже для рута.

Впринципе, нашёл подходящий вариант для себя. А можно почитать подробнее, как это реализовано - что у рута внутри сендбокса нет прав, я думал, рут - он рут и есть?

fehhner ★★★★★
() автор топика
Ответ на: комментарий от fehhner

А можно почитать подробнее, как это реализовано - что у рута внутри сендбокса нет прав, я думал, рут - он рут и есть?

Не то чтобы нет прав. Это уже не права, это read-only. А почитать, через что это всё реализовано… Гугли namespaces linux. Конкретно про mount namespaces: http://man7.org/linux/man-pages/man7/mount_namespaces.7.html

Psych218 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.