[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: