Недавно наличие новая версия песочницы пузырчатая пленка 0.6, в котором были внесены некоторые важные изменения, такие как включение поддержки компиляции с помощью Meson, частичная поддержка спецификации REUSE и несколько других изменений.
Для тех, кто не знает о Bubblewrap, вы должны знать, что это утилита, обычно используемая для ограничения отдельных приложений непривилегированными пользователями. На практике проект Flatpak использует Bubblewrap в качестве слоя для изоляции приложений, запускаемых из пакетов.
Для изоляции 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 и запускаются после сброса привилегий.
Основные новинки Bubblewrap 0.6
В представленной новой версии Bubblewrap 0.6 подчеркивается, что добавлена поддержка система сборки мезон, благодаря чему поддерживается компиляция с Автоинструменты были сохранены для сейчас, но предполагается, что это он будет удален в пользу использования Meson в будущем выпуске.
Еще одна новинка в этой новой версии Bubblewrap 0.6 — реализация опции «–add-seccomp», чтобы добавить более одной программы seccomp, также добавлено предупреждение о том, что при повторном указании параметра «–seccomp» будет применен только последний параметр.
Также отмечается, что частичная поддержка спецификации REUSE, который объединяет процесс указания информации о лицензии и авторских правах.
Кроме того, были добавлены заголовки SPDX-License-Identifier для многих файлов кода. Следование рекомендациям по ПОВТОРНОМУ ИСПОЛЬЗОВАНИЮ упрощает автоматическое определение того, какая лицензия применяется к какой части кода вашего приложения.
С другой стороны, добавил проверка значения счетчика аргументов из командной строки (argc) и реализован аварийный выход, если счетчик равен нулю. Изменение рПозволяет блокировать проблемы с безопасностью вызвано неправильной обработкой переданных аргументов командной строки, например CVE-2021-4034 в Polkit.
Из других изменений которые выделяются из этой новой версии:
- Ветка master в репозитории git была переименована в main
- Удалить старую интеграцию CI
- Использование bash через PATH для лучшей совместимости с операционными системами, отличными от FHS.
наконец, если вы интересно узнать немного больше об этом об этой новой версии вы можете проверить подробности По следующей ссылке.