Даниэль Беррандж (Daniel Berrange), работающий в компании Red Hat над развитием средств виртуализации, представил (http://berrange.com/posts/2012/01/17/building-application-sa.../) первый публичный выпуск пакета libvirt-sandbox (ftp://libvirt.org/libvirt/sandbox/), позволяющего организовать выполнение произвольных пользовательских приложений в изолированном окружении, построенном с использованием libvirt. В рамках libvirt-sandbox подготовлен API, расширяющий возможности libvirt в плане изолированного запуска отдельных приложений, и специальная сервисная утилита virt-sandbox.
Несколько лет назад компания Red Hat подготовила утилиту sandbox (http://www.opennet.me/opennews/art.shtml?num=23481), которая позволяет организовать безопасное выполнение не вызывающих доверия программ с обеспечением изоляции при помощи SELinux, что накладывало определённые ограничения на функциональность sandbox. Утилита virt-sandbox существенно отличается от своего предшественни...URL: http://berrange.com/posts/2012/01/17/building-application-sa.../
Новость: http://www.opennet.me/opennews/art.shtml?num=32847
Класс!>Подготовка специально API для изолированного запуска отдельных приложений сулит интересные возможности для разработчиков сторонних систем.
Например впихать туда веб-браузер и/или все сетевые приложения которые выходят в глобальные сети.
См. https://igurublog.wordpress.com/downloads/script-sandfox/
> Например впихать туда веб-браузер и/или все сетевые приложения которые выходят в глобальные сети.Это делается через использование network namespaces. Хоть каждому приложению по собственному сетевому стеку.
Зачем вам браузер который не может сохранять никакую инфу на диск? Да и зачем такие изолированные приложения нужны?
Для каждой программы должен создаваться каталог в специальном месте, куда будут перенаправляться все попытки программы писать. Если в этот каталог можно легко зайти с хост системы, то удобство не теряется.
> Зачем вам браузер который не может сохранять никакую инфу на диск? Да
> и зачем такие изолированные приложения нужны?
> Для каждой программы должен создаваться каталог в специальном месте, куда будут перенаправляться
> все попытки программы писать. Если в этот каталог можно легко зайти
> с хост системы, то удобство не теряется.Уважаемый Аноним, некоторые мысли озвученные Вами, очень интересны для меня.
Например:
> Для каждой программы должен создаваться каталог в специальном месте, куда будут перенаправляться
> все попытки программы писать. Если в этот каталог можно легко зайти
> с хост системы, то удобство не теряется.Но тут Вы (как мне кажется) перемешали понятия "каталог" и "хост системы".
Пиво в моей голове вскипело, и я решил отписать :(
А вообще, спасибо, за интересные мысли, которые возникли в моей голове после прочтения Вашего комента (жаль, что что Вы "Аноним", но это ничего, как мне кажется, Вы все же реально существуете!).
Кипение пива отнимает энергию, плюс быстее испаряются фракции "spiritus vini", так что на сегодня достаочно переписки.
И да, обидно от Вас слышать: "> и зачем такие изолированные приложения нужны?"
Если бы Вы добавыли пару слов к этой мысли (на мой взгляд) мне бы было легче, а так пиво кипит ;)Спасибо.
Джоанне Рутковской посвещается :))
> Джоанне Рутковской посвещается :))Представленная технология является некой пародией на Qubes OS. Потому что технологии изоляции сабжа на порядок легче взламываются, чем ее творение.
> монтирует корневую ФС текущей базовой системы в режиме только для чтенияТ. е. при запуске "подозрительного" ПО оно вполне сможет украсть данные пользователя: сохранённые в приложениях пароли, куки, и т.д. И прекрасно передать это "наружу".
>> монтирует корневую ФС текущей базовой системы в режиме только для чтения
> Т. е. при запуске "подозрительного" ПО оно вполне сможет украсть данные пользователя:
> сохранённые в приложениях пароли, куки, и т.д. И прекрасно передать это
> "наружу".Тогда ваш случай - это отдельный пользователь с отдельным хомяком, от которого запускать недоверенные приложения, а совсем не эта штука (польза которой, впрочем, лично для меня сомнительна). Только это натуральная паранойя.
> Тогда ваш случай - это отдельный пользователь с отдельным хомяком,Есть риск что недоверяемое приложение прогрейдится до рута и пошарится где-то еще, например. В этом плане ничего лучше виртуалок не придумано.
"Виртуалки" лучше запускать рекурсивно, т.к. есть шанс что приложение доберётся до первой хост-системы и увидит другие виртуалки - а тут облом, других нет, виртуалка запущена в виртуалке.Если рекурсивность будет больше 300, и на каждой будут стоять разные ОС и программы виртуализации - тогда троян можно будет тупо вычислять по размеру.
Хмм... Тоже вариант защиты, и куда получше вашего.
> "Виртуалки" лучше запускать рекурсивно, т.к. есть шанс что приложение доберётся до первой
> хост-системы и увидит другие виртуалки - а тут облом, других нет,
> виртуалка запущена в виртуалке.
> Если рекурсивность будет больше 300, и на каждой будут стоять разные ОС
> и программы виртуализации - тогда троян можно будет тупо вычислять по
> размеру.
> Хмм... Тоже вариант защиты, и куда получше вашего.И главное - гораздо более экономичен в плане потребления ресурсов, чем большинство современных антивирусов.
Возможно вы не в курсе, но антивирусы настраиваются. Для повышения эффективности можно приобрести "железный" антивирус с максимальными настройками, не отнимающий выч.ресурсов.
> Возможно вы не в курсе, но антивирусы настраиваются.От варианта "фиговая защита - большое потребление ресурсов" до варианта "никакая защита - не очень большое потребление". (Уровни защиты оцениваются в сравнении со схемой вложенных виртуалок.)
> Для повышения эффективности можно приобрести "железный" антивирус с максимальными настройками, не отнимающий выч.ресурсов.
Лучше на эти деньги прокачать основное железо, и поставить туда менее ресурсоемкое решение, типа вложенных виртуалок. Огромный выигрыш по ресурсам при тех же расходах.
> Возможно вы не в курсе, но антивирусы настраиваются. Для повышения эффективности можно
> приобрести "железный" антивирус с максимальными настройками, не отнимающий выч.ресурсов.То-то сами антивирусники для изучения вирусов используют ... виртуалки :)
> Т. е. при запуске "подозрительного" ПО оно вполне сможет украсть данные пользователя: сохранённые в приложениях пароли, куки, и т.д. И прекрасно передать это "наружу".Технология filesystem namespaces, на которой основан сабж, позволяет сделать полностью недоступными (для подозреваемого приложения и его потомков) любые выбранные каталоги, например, /home и /etc. Достаточно нескольких строк кода.
> И прекрасно передать это "наружу".Кстати, возможность полностью отрезать подозрительному приложению сеть (оставив только lo) тоже делается в пару строчек кода. Но знают об этом лишь несколько человек: Торвальдс, Поттеринг, и разработчики LXC.
> Но знают об этом лишь несколько человек: Торвальдс, Поттеринг…Поттеринг может об этом и знает, но обязательно напишет свой велосипед. Фатальный недостаток же.
> Поттеринг может об этом и знает, но обязательно напишет свой велосипед. Фатальный недостаток же."Велосипеды" Поттеринга как раз и дают юзерам возможность воспользоваться фичами ядра.
Без него - фича в ядре есть, но воспользоваться ей нельзя, потому что юзерспейс о ней не знает.
> Без него - фича в ядре есть, но воспользоваться ей нельзя, потому что юзерспейс о ней не знает.А все потому, что это юзерспейс написан тридцать лет назад, и на этом прогресс для него остановился.
Впрочем, некоторые ортодоксы считают, что новый софт не нyжен. Пусть в ядре будет 100500 новых фич - убедим себя, что они нам не требуются. Правда, нафига тогда вообще тащить себе весь этот динамичный и развивающийся (фу, мерзость!) GNU/Linux? Есть же прекрасная System V, в которой все это нормально работает.
> юзерспейс написан тридцать лет назадА чем же разработчики тестируют эти новые фичи?
>> юзерспейс написан тридцать лет назад
> А чем же разработчики тестируют эти новые фичи?Примитивными сишными прогами из одного syscallа.
это какими же?
cgroups, namespaces, например.
>> Поттеринг может об этом и знает, но обязательно напишет свой велосипед. Фатальный недостаток же.
> "Велосипеды" Поттеринга как раз и дают юзерам возможность воспользоваться фичами ядра.Кстати, к вопросу о Поттеринге и фичах ядра
http://www.0pointer.de/blog/projects/security> These features take advantage of a couple of Linux-specific technologies that have been available in the kernel for a long time, but never have been exposed in a widely usable fashion. These systemd features have been designed to be as easy to use as possible, in order to make them attractive to administrators and upstream developers
По сути дела, Поттеринг дает возможность пользователям вопспользоваться киллер-фичами ядра Linux. Если не юзать такие проекты, как systemd, lxc, libcgroups - какой вообще смысл выбирать Linux, а не FreeBSD какую-нибудь?
Ну таки да. Есть такой боян про то как юзер под вайном запустил трояна на посмотреть. А троян упер пароль его аськи, которую он в этом-же вайне в квипе юзал.
/home кладётся в отдельный партишн, не?
> /home кладётся в отдельный партишн, не?не похоже чтоб помогло.
Другое дело будет ли там сеть сразу
> /home кладётся в отдельный партишн, не?Необязательно. Это же Linux. Возможность блокировки выбранных каталогов для заданных процессов не зависит от разбивки на разделы.
Хвост крутит собакой.//Возможность блокировки выбранных каталогов ...
Доступность выбранных каталогов ...
Похоже что вы не осилили суть *nix.
> Хвост крутит собакой."У нас этого нет, поэтому это не нyжно"?
А вы не осилили метафору.
> А вы не осилили метафору.Не вижу чем виртуализация пространства имен, сети и прочего так уж клещится с unix-овской идеологией. Как максимум расширяет ее и дополняет, не более. Если ваша древность так не умеет - так мы в этом не виноваты.
> Доступность выбранных каталогов ...Каталоги по умолчанию доступны (если не считать ортогональных технологий, таких, как права доступа, ACL и MAC). Для того, чтобы сделать их read-only или вообще недоступными, нужно совершить дополнительные телодвижения.
> Похоже что вы не осилили суть *nix.
Похоже, что вы не поняли, о чем вообще речь.
я джва года ждал такую фичу!а если серьёзно — здорово, молодцы. не поттерингом единым.