LINUX.ORG.RU
ФорумAdmin

самая нересурсоемкая песочница


0

2

Задача: на боевом сервере необходимо выполнять левые не проходящие никакой проверки пользовательские программы (которые могут быть и вредоносными). Единственное, что им необходимо обеспечить - стандартный ввод/вывод. Запись в файл/операции с сетью нужно отрубить, возможность испортить чужую память - тоже.
Как это сделать? Работающее (но, как оказалось, неприемлимое по производительности) решение было плодить толпы openvz гостей - по штуке на каждую пользовательскую программу. Альтернативы? Apparmor какой-нибудь с этим справится?
да, пользовательские программы могут быть написанны на всяких низкоуровневых сях

Ответ на: комментарий от post-factum

оно умеет именно «песочницу», а не виртуальные машины? в openvz получалась сильная накладка на создании гостей, потому что их много нужно и быстро

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

Если делать такие предположения, то лучше сразу запускать код в qemu.

geekless ★★
()

nbdarvin> Единственное, что им необходимо обеспечить - стандартный ввод/вывод. Запись в файл/операции с сетью нужно отрубить, возможность испортить чужую память - тоже.

selinux

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

Получить рута можно либо через баг в SUID программе, либо через баг ядра. Поскольку требуется только лишь делать тривиальный ввод-вывод во внешний мир, внутри песочницы SUID программы не нужны, и их там не будет. Значит, получить рута можно только через баг ядра. А раз мы не полагаемся на надёжность ядра в целом, то полагаться на надёжность отдельной его подсистемы (которая контейнеры обслуживает) тоже нет смысла. Поэтому, как мне кажется, вопрос о руте не имеет смысла в таком контексте.

Либо мы считаем ядро надёжным, и значит программа не получит никакого рута — ни LXC-шного, ни внешнего. Либо не считаем надежным, и тогда его надо тоже выносить в песочницу, т.е. использовать что-то типа qemu.

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

забавно. только что запустил из-под пользователя virsh console в lxc виртуалке с файловой системой хоста, создал файл в каталоге /usr. где я неправ?

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

хм, а как там с управлением ресурсами? память, диск, процессор?

nbdarvin
() автор топика

Для этого неплохо бы подошел Jail, но это уже FreeBSD.

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