Re: Как безопасно запустить недовереное приложение?
On Tue, 22 Dec 2015 12:21:38 +0200
Oleksandr Gavenko <gavenkoa@gmail.com> wrote:
> Мелькали слова AppArmor, Grsecurity, libvirt, KVM - оно все кажется
> сложным и непонятным.
Подкину еще слов: chroot, schroot, firejail
firejail - самое простое в настройке, но есть только в testing и
unstable. Хотя вот пару месяцев назад я бинарный пакет ставил в stable
и он поставился.
> Как безопасно запустить недовереное приложение?
Лично я для запуска skype сейчас пользуюсь schroot. Причем думаю что
s там на самом деле лишний. Просто schroot настолько сильно упрощает
настройку chroot-окружения, что сначала сделал через него, и
переделывать уже лень.
chroot имеет то преимущество что UID внутри и UID снаружи могут
совпадать, а файловая система, которую видит приложение, является
частью файловой системы хоста, поэтому мне снаружи удобно подкладывать
приложению файлики, которые оно должно обработать и забирать оттуда
результаты.
KVM (qemu-system) на мой взгляд, проще virtualbox. А умеет примерно то
же самое. В общем, это самый последий вариант, с наиболее глубокой
изоляцией.
Между chroot (который ограничивает доступ к файловой системе, но не
ограничивает - к сети и CPU-памяти) и виртуальной машиной есть еще
контейнеры (lxc, docker). Которые позволяют, конечно, не так гибко
настраивать лимиты как appparmor, но в большинстве случаев этого
хватает.
> Я понимаю идею запуситить от ограниченого пользователя. Можно ли
> расчитывать что программа не сможет поднять привелений? Как я узнаю
> что программа не пытается перебрать пароли для su/sudo? Как
> настраивать что бы не сделать глупость?
Вот от этого chroot замечательно спасает. Внутри chroot у программы
просто не будет sudo, а то и su, чтобы подбирать парали, да и наличие
у нее рута еще не факт что позволит вылезти наружу.
Reply to: