Bubblewrap, инструмент для создания приложений в изолированных средах

Bubblewrap - это инструмент что работает организовать работу песочницы в Linux и беги на уровне приложений непривилегированных пользователей. На практике Bubblewrap используется проектом Flatpak в качестве промежуточного уровня для изоляции приложений, запускаемых из пакетов программного обеспечения.

Для изоляции Linux использует технологии виртуализации традиционных контейнеров, основанных на использовании контрольных групп, пространств имен, Seccomp и SELinux. Для выполнения привилегированных операций по настройке контейнера Bubblewrap запускается с привилегиями root (исполняемый файл с флагом suid), за которым следует сброс привилегий после инициализации контейнера.

Нет необходимости включать пространства имен пользователей в системе, что позволяет использовать собственный набор идентификаторов в контейнерах, поскольку по умолчанию он не работает во многих дистрибутивах.

О пузырчатой ​​пленке

Bubblewrap позиционируется как ограниченная реализация suida из подмножества функций пространства имен пользователя, чтобы исключить из среды все идентификаторы пользователей и процессов, кроме текущего, используйте режимы CLONE_NEWUSER и CLONE_NEWPID.

Для дополнительной защиты программы, работающие в Bubblewrap, запускаются в режиме PR_SET_NO_NEW_PRIVS, что запрещает новые привилегии, например, с флагом setuid.

Изоляция на уровне файловой системы выполняется путем создания по умолчанию нового пространства имен монтирования, в котором с помощью tmpfs создается пустой корневой раздел.

При необходимости к данному разделу в разделе «смонтировать – связать»(Например, начиная с опции«bwrap –ro-bind / usr / usr', Раздел / usr перенаправляется с хоста в режиме только для чтения).

Сетевые возможности ограничены доступом к интерфейсу обратной связи инвертированный с изоляцией сетевого стека с помощью индикаторов CLONE_NEWNET и CLONE_NEWUTS.

Ключевое отличие от аналогичного проекта Firejail, который также использует средство запуска setuid, это то, что в Bubblewrap, слой контейнера включает только минимально необходимые функции а все расширенные функции, необходимые для запуска графических приложений, взаимодействия с рабочим столом и фильтрации вызовов Pulseaudio, переносятся на сторону Flatpak и запускаются после сброса привилегий.

Firejail, с другой стороны, объединяет все связанные функции в один исполняемый файл., усложняя ваш аудит и сохраняя безопасность на должном уровне.

Bubblewrap в основном работает по создание пустого пространства имен монтирования во временной файловой системе который будет уничтожен после завершения обработки песочницы.

Используя переключатели, пользователь может создать желаемую среду файловой системы в пространстве имен монтирования, монтируя нужные каталоги по ссылке из хост-системы.

Пузырьковая пленка 0.4.0

Bubblewrap в настоящее время находится в версии 0.4.0, который был недавно выпущен. Код проекта написан на C и распространяется по лицензии LGPLv2 +.

Новая версия примечателен реализацией поддержки объединения пространств имен и процессов существующие пользователи (пространства имен pid).

Флаги «–userns», «–userns2» и «–pidns» были добавлены для управления соединением пространств имен.

Эта функция не работает в режиме setuid и требует отдельного режима, который может работать без привилегий root, но требует, чтобы в системе были включены пространства имен пользователей (отключены по умолчанию в Debian и RHEL / CentOS), и не исключает возможность использования потенциально уязвимых мест. оставшиеся уязвимости на грани ограничений «пользовательских пространств имен».

Из новых возможностей Bubblewrap 0.4, также наблюдается возможность сборки с использованием библиотеки musl C вместо glibc, и поддержка сохранения информации о пространстве имен в файл статистики в формате JSON.

Код Bubblewrap, а также документацию по нему можно найти на Github, ссылка это.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.