Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

27.08.2026 11:55 (MSK)

Опубликована новая версия инструментария для организации работы изолированных окружений Bubblewrap 0.12, используемого для ограничения отдельных приложений непривилегированных пользователей. На практике Bubblewrap применяется проектом Flatpak в качестве прослойки для изоляции запускаемых из пакетов приложений. Для изоляции используются традиционные для Linux технологии контейнерной виртуализации, основанные на использовании cgroups, пространств имён (namespaces), Seccomp и SELinux. Код проекта написан на языке Си и распространяется под лицензией LGPLv2.1+.

Изоляция на уровне файловой системы производится через создание по умолчанию нового пространства имён точек монтирования (mount namespace), в котором при помощи tmpfs создаётся пустой корневой раздел. В данный раздел при необходимости прикрепляются разделы внешней ФС в режиме "mount --bind" (например, при запуске c опцией "bwrap --ro-bind /usr /usr" раздел /usr пробрасывается из основной системы в режиме только для чтения). Сетевые возможности ограничиваются доступом к loopback-интерфейсу с изоляцией сетевого стека через флаги CLONE_NEWNET и CLONE_NEWUTS.

Для исключения всех лишних идентификаторов пользователей и процессов из создаваемого изолированного окружения могут использоваться режимы CLONE_NEWUSER (user namespace) и CLONE_NEWPID (PID namespace), а для запрета получения новых привилегий применяется режим PR_SET_NO_NEW_PRIVS. Для получения необходимых привилегий используется "user namespace".

В новом выпуске:

  • Лицензия на код изменена с LGPL 2.0+ на LGPL 2.1+.
  • Прекращена поддержка сборки в форме исполняемого файла, получающего дополнительные привилегии при помощи флага suid root. Наличие в системе поддержки "user namespace" теперь обязательно. В качестве причины называется трудоёмкость сопровождения варианта с флагом suid на фоне повсеместной поддержки "user namespace" в дистрибутивах.
  • Добавлена опция "--not-a-security-boundary", при выставлении которой некоторые сбои при настройке изолированного sandbox-окружения, такие как перемонтирование подраздела, не приводят к аварийному завершению.
  • Добавлена сборочная опция "assume_kernel", отключающая обеспечение обратной совместимости с ядрами Linux, более старыми, чем указанная версия. Например, указание версий 5.6.0+ приведёт к исключению альтернативной реализации функциональности "openat2(RESOLVE_IN_ROOT)".

Дополнение 1: В версии Bubblewrap 0.12 устранена уязвимость (CVE не назначен), позволяющая через манипуляцию с символическими ссылками во время настройки контейнера добиться записи в область файловой системы вне изолированного окружения. Проблема может быть эксплуатирована при установке flatpak-пакета, подготовленного атакующим.

Дополнение 2: Debian выпустил обновление безопасности для пакета bubblewrap и прекратил установку флага suid root на исполняемом файле. В качестве причин упоминаются риски эксплуатации уязвимостей, таких как CVE-2026-41163, CVE-2020-5291 и CVE-2016-8659, позволяющих получить привилегии root в системе через манипуляции в suid-файлами.

  1. Главная ссылка к новости (https://github.com/containers/...)
  2. OpenNews: Релиз системы самодостаточных пакетов Flatpak 1.18.0
  3. OpenNews: Релиз системы изоляции приложений Firejail 0.9.78
  4. OpenNews: Выпуск Bubblewrap 0.11, прослойки для создания изолированных окружений
  5. OpenNews: Уязвимости в snapd и Rust Сoreutils, позволяющие получить root-привилегии в Ubuntu
  6. OpenNews: Проект Linux Containers представил атомарно обновляемый дистрибутив IncusOS
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66151-bubblewrap
Ключевые слова: bubblewrap, container
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (44) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:03, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как оно в сравнении с syd? Там всё-таки раст.
     
     
  • 2.2, Аноним (2), 12:06, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Работает, в отличие от фряшных джейлов. Только не говорите мне, что я что-то не так настраиваю. У меня опыт поболее имеется.
     
     
  • 3.3, Аноним (1), 12:10, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вопрос был не о неймспейсах, понятно, что они работают. Хотя, можешь рассказать подробности о фряхе, можешь заодно о солярке поговорить. Что именно не работает? Почему у всех работает, а у тебя нет.
     
  • 3.5, Эксперт (?), 12:31, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Skill Issue
     
  • 3.9, aname (ok), 14:11, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > У меня опыт поболее имеется.

    Ясно, большой опыт делания криво, да ещё и без прогресса исцеления.

    Это судьба.

     
  • 3.20, Ivan_83 (ok), 17:00, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Фряшный джейлы для начинающих и средних одминов, чего там может не работать?)
     
     
  • 4.22, Норм (?), 18:07, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    docker compose ошибку выдает 🫠
     
     
  • 5.24, Ivan_83 (ok), 18:11, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А вы с какого мануала копипастили команду?)
     
  • 2.7, Аноним (7), 13:25, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Работает.
     

  • 1.4, Xasd1 (?), 12:18, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    знаем, пользуемся…

    ГОДНОТА!

     
  • 1.6, Аноним (6), 12:41, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А нет ли где ни будь, расписаного по shell командам, что оно делает?
     
     
  • 2.8, Аноним (8), 13:39, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    в каком смысле "делает"
    man bwrap  # не?
     
     
  • 3.11, Аноним (6), 14:44, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле - как при помощи shell скрипта огородить зпускаемое приложение, так же как это делает bwrap.
     
     
  • 4.17, _ (??), 16:49, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В стародавние времена, когда ещё даже ЫЫ-шек не было, староверы говаривали: "кури сырки сынок!"
    Современная наука не может расшифровать секретную мудрость этой фразы :)
     
  • 4.25, Аноним (25), 18:31, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Шел скриптом не огородишь!

    Вопрос доверия к groups, namespaces, LSM с SELinux.

    Использую ядро от grsecurity  с их изоляцией chroot.  Тогда для жёсткой изоляции можно использовать команду:

        setpriv --опции ... chroot --опции ...

    setpriv и chroot надо курить маны. Изоляцию даст не меньше чем самые продвинутые контейнеры! И все стандартными утилитами.

     
     
  • 5.26, Аноним (25), 18:43, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Только ядром OS можно достичь сильную изоляцию процеса. У кого нет доверия к стандартным средствам, могут использовать альтернативу:

    https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configura

     
  • 5.40, Аноним (40), 08:32, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    https://wiki.gentoo.org/wiki/Chrooting_proxy_services
     
  • 2.12, name (??), 15:24, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Есть лёгкий bubblejail.
     
     
  • 3.31, GNU Overlord (ok), 22:36, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На питоне? Легкий?
     
     
  • 4.34, Аноним (1), 00:00, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Всё верно.
     
  • 4.43, Аноним (43), 09:12, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Лёгкий для написания. О лёгкости для использования речи не было.
     
  • 2.37, Аноним (37), 04:07, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Оно делает unshare, но сам по себе с голым unshare это очень муторно.
     

  • 1.10, Аноним (10), 14:35, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Сабж лишь создает ощущение какой-то защиты. По сути это костыль с постоянной необходимостью его докручивать. И первая же ошибка сводит его пользу на нет - утечка данных происходит, дальше можно куковать.

    Нужно, чтобы ограничения исходили от самого системного API. Но это требует пересмотра всей архитектуры POSIX, чего, конечно, не будет.

    Поэтому - либо запускать софт в виртуалке, либо на отдельном ПК, не имеющего связи с интернетом, либо отрубать интернет руками на время работы сомнительного софта.

     
     
  • 2.21, Ivan_83 (ok), 17:03, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не понятно о чём вы вообще толкуете.
    Системный API как раз изначально имел разграничения по UID/GID, к этому сверху ещё неймспейсы накрутили.

    Потом не ясно от чего вам нужна защита.
    Конкретно это должно защищать систему от всяких разрушительных действий приложения.


    > Поэтому - либо запускать софт в виртуалке, либо на отдельном ПК, не имеющего связи с интернетом, либо отрубать интернет руками на время работы сомнительного софта.

    Это уже перебор, вам стоит читать специальную литературу по ИБ чтобы отделить мух от котлет.

     
     
  • 3.29, Аноним (10), 21:09, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, запускаешь проприетарную игру или лаунчер, а она лезет в твой хомяк за документами, шарится в них. Хотя, по идее, должна быть ограничена только собственным каталогом, а выходить из него - только получив разрешение от пользователя. Помнится, Epic Launcher под виндой на этом ловили, а скоро его и на Linux обещали портировать.

    Или ты предлагаешь на каждую проприетарную софтину заводить своего системного юзера со своим хомяком?

     
     
  • 4.30, Ivan_83 (ok), 22:08, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А зачем?
    Изоляции на уровне ФС вполне достаточно от такого.
     
     
  • 5.32, Аноним (10), 22:56, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Расскажи, как это сделать? Надеюсь, не требует ковыряния в конфигах и обширного уровня знаний о администрировании линуксов? Пара одноэтажных команд в консоли допустима. Если это не так, то как я говорил - не решение, как и сабж.
     
     
  • 6.36, Ivan_83 (ok), 02:10, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы хотите решение но не хотите ничего делать - не оригинально :)

    Я для себя на фре решил проблему шелл скриптом+конфигом к нему под каждый нужный апп.

     
     
  • 7.41, Аноним (10), 08:43, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Есть системы, которые позволяют ничего не делать. И я говорю о том, что на их фоне нынешнее положение вещей в линуксе - набор костылей. Странно, что вы с этим стали спорить.
     
  • 6.44, Аноним (43), 09:23, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Например, ты создаёшь отдельного пользователя для запуска под ним проприетарных игорей. Да, из основного профиля придётся выходить. Это плата за простоту.
     
     
  • 7.45, Аноним (10), 09:26, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Он всё равно будет иметь доступ к файлам за пределами своего хомяка. Не вариант.
     
  • 2.23, Норм (?), 18:09, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пупырка не средсиво обеспечения безопасности. Как и дыркер например.
     
     
  • 3.33, GNU Overlord (ok), 23:26, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Они и и не обеспечивают.

    Обеспечивают пространства имен ядра и seccomp. Ну, а то что ядро дырявое, это уже другой вопрос.

     
  • 2.35, Советский Человек (?), 01:34, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Полностью соглашусь и дополню от себя - микроядерный подход с полным пересмотром POSIX и архитектуры и FHS позволил бы создать адекватное разграничение, да и от самого понятия root. Да, без легаси. Зато по-нормальному и даст толчок к развитию. А так пока любая подобная вещь - костыль на костыле.
     
  • 2.42, Аноним (40), 08:50, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Давай тестить Hardened chroot, jail и варианты контейнерной изоляции.

    Пример настройки Hardened chroot и запуска в нем приложения:

    1. Настройка ядра Linux:
    https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configura

    2. Создание chroot окружения:
    https://wiki.gentoo.org/wiki/Chrooting_proxy_services

    3. Запуск приложения:
        setpriv --опции ... chroot --опции ...


    Hardened chroot будет в топе и проиграет только виртуализации. А все ваши новомодные контейнеры - дырявы.

     

  • 1.13, Аноним (13), 16:08, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > ...для ограничения отдельных приложений непривилегированных пользователей.
    > ..."user namespace" теперь обязательно.

    Мда... Нет слов просто.

     
  • 1.14, Syndrome (ok), 16:30, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Необходимость включать «user namespaces» умножает на ноль всю пользу этой программы. Я заморожу себе версию пакета на «0.11.2».
     
  • 1.15, Ivan_83 (ok), 16:41, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    На фре есть моё: https://github.com/rozhuk-im/chroot_env
     
     
  • 2.18, _ (??), 16:52, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Портани на линукс! :)
     
     
  • 3.19, Ivan_83 (ok), 16:58, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем?)
    Кроме того там половина завязана на pkg, а у линуксов куча разных штук на замену.
    Вот часть которая собирает зависимые либы для бинарника - она интересна может быть, но в линухе скорее всего тоже какие то отдельные утилиты и возможно не одна.

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

     
     
  • 4.38, _ (??), 05:25, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А зачем?)

    Ну очевидная "шутка йумора"(С) жи :) Ну ты чего такой серьёзный то?

     
  • 2.39, Аноним (40), 08:31, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Делал похожее на Hardened Gentoo

    Лет 20 назад в Gentoo создание chroot было штатной фичей. Можно было просто выполнить:

        emerge --configure net-dns/bind

    И получить chroot окружение. Потом эту функцию с ebuild-ов выпили.

    Спустя лет 10 попытался ее вернуть назад:

    https://www.opennet.me/openforum/vsluhforumID3/141164.html#25
    https://www.opennet.me/openforum/vsluhforumID3/141164.html#26
    https://wiki.gentoo.org/wiki/Chrooting_proxy_services

     

  • 1.27, 14yoexpert (?), 18:49, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    До сих пор не может в банальную задачу  «запустить бинарник с списком выданных ему сетевых интерфейсов и dns записей» без цирка с грустными клоунами
     
  • 1.28, Zenitur (ok), 19:45, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Прекращена поддержка сборки в форме исполняемого файла, получающего дополнительные привилегии при помощи флага suid root. Наличие в системе поддержки "user namespace" теперь обязательно.

    Фигово. У меня есть user namespace, но почему-то не работает. Поэтому юзаю suid.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру