Профиль: Аноним (вход | регистрация) не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 обязательно


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

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

    Это судьба.

     
  • 3.20, Ivan_83 (ok), 17:00, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Фряшный джейлы для начинающих и средних одминов, чего там может не работать?)
     
     
  • 4.22, Норм (?), 18:07, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В стародавние времена, когда ещё даже ЫЫ-шек не было, староверы говаривали: "кури сырки сынок!"
    Современная наука не может расшифровать секретную мудрость этой фразы :)
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лёгкий для написания. О лёгкости для использования речи не было.
     
     
  • 5.57, name (??), 13:25, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Использовать тоже легко.
     
  • 2.37, Аноним (37), 04:07, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Оно делает unshare, но сам по себе с голым unshare это очень муторно.
     

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

    Нужно, чтобы ограничения исходили от самого системного 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 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Расскажи, как это сделать? Надеюсь, не требует ковыряния в конфигах и обширного уровня знаний о администрировании линуксов? Пара одноэтажных команд в консоли допустима. Если это не так, то как я говорил - не решение, как и сабж.
     
     
  • 6.36, Ivan_83 (ok), 02:10, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы хотите решение но не хотите ничего делать - не оригинально :)

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

     
     
  • 7.41, Аноним (10), 08:43, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть системы, которые позволяют ничего не делать. И я говорю о том, что на их фоне нынешнее положение вещей в линуксе - набор костылей. Странно, что вы с этим стали спорить.
     
     
  • 8.47, Ivan_83 (ok), 11:22, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Подразумевается что кто то за вас это уже сделал Если вас не устраивает как сей... текст свёрнут, показать
     
     
  • 9.51, Аноним (10), 11:57, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я написал возможные решения на данный момент, а ты сначала сказал, что есть спос... текст свёрнут, показать
     
     
  • 10.52, Ivan_83 (ok), 12:06, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А не могли бы процитировать, я что то не могу найти Способ то есть, но не на ав... текст свёрнут, показать
     
     
  • 11.54, Аноним (10), 12:23, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Задачу я там же определил - не дать утечь данным в онлайн И эти три способа - с... текст свёрнут, показать
     
  • 6.44, Аноним (43), 09:23, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Например, ты создаёшь отдельного пользователя для запуска под ним проприетарных игорей. Да, из основного профиля придётся выходить. Это плата за простоту.
     
     
  • 7.45, Аноним (10), 09:26, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Он всё равно будет иметь доступ к файлам за пределами своего хомяка. Не вариант.
     
     
  • 8.48, Ivan_83 (ok), 11:23, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну что вы как маленькие, есть же chroot Делаете себе chroot с нужными зависимо... текст свёрнут, показать
     
  • 8.55, Аноним (55), 12:39, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Прогнать chmod рекурсивно по хомяку основного юзера и убрать доступ для others ... текст свёрнут, показать
     
     
  • 9.56, Аноним (10), 12:59, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно, наломает кучу дров ... текст свёрнут, показать
     
  • 6.61, Сладкая булочка (?), 02:43, 29/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/containers/bubblewrap/blob/main/demos/bubblewrap-shell.sh
     
  • 2.23, Норм (?), 18:09, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пупырка не средсиво обеспечения безопасности. Как и дыркер например.
     
     
  • 3.33, GNU Overlord (ok), 23:26, 27/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Они и и не обеспечивают.

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

     
  • 2.35, Советский Человек (?), 01:34, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Полностью соглашусь и дополню от себя - микроядерный подход с полным пересмотром 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 будет в топе и проиграет только виртуализации. А все ваши новомодные контейнеры - дырявы.

     
  • 2.49, Аноним (-), 11:24, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Решения в ветке — огонь... 🔥🔥🔥

    Под пользователем запусти, трёхэтажные скрипты накрути-наверти...

    Модель безопасности сломана в край, фундаментально. А они её защищают из привычки, почти по инерции.

    Android смог поверх ядра Linux накостылять приемлемую модель безопасности. Но она не будет работать на настольном hardware.

    Для этого нужно вообще отойти от POSIX, но заложить возможность слоя совместимости в дизайн, как отдельных изолированных областей.

     
     
  • 3.50, Аноним (-), 11:26, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Стоит отметить, что именно из-за этого появились такие проекты как QubesOS и SpectrumOS. По-своему их можно назвать костылями, использующими виртуализацию в отсутствие приемлемых механизмов внутри Linux, и в аппаратном обеспечении (частично).
     
  • 3.53, Аноним (40), 12:11, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Модель безопасности сломана в край, фундаментально.

    Просто многие не доверяют cgroups, LSM и его настройкам (namespaces, SELinux, ...). Не хотят свою безопасность основывать на прослойке LSM.

    Для реализации своей модели безопасности используются прямые хуки в ядре Linux. Без прослойки LSM. Вся безопасность только непосредственно на прямих хуках в ядре.

    В отношении Hardened chroot даная модель
    * защищает память выделенную процессам вне chroot
    * защищает все процессы вне chroot
    * защищает файловую систему вне chroot
    В дополнение, на уровне ядра Linux, реализована защита от всех известных возможностей выхода за пределы chroot. Список большой, выглядит как перечень костылей, зато это полная защита от всех известных методов взлома chroot изоляции.

     
  • 3.60, Мононимус (?), 22:41, 28/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Модель безопасности сломана в край, фундаментально

    Профессионалы годами работают и не жалуются (кроме отдельных фриков но такие везде есть), если жалуются то берут редактор кода в руки и допиливают, а тут нате вам - аноним с опеннета делает срыв покровов, "сломана фундаментально". Если у тебя что то там сломано то это не проблема модели чувак

    >Android смог поверх ядра Linux накостылять приемлемую модель безопасности

    Это ты те черные коробки с зондами то приемлимой моделью назвал? Которые проприетарные драйвера и блобы обфусцированные. Ну держи в курсе

    >Для этого нужно вообще отойти от POSIX

    Для этого нужно просохнуть и отойти от клавиатуры, а там глядишь и починится что-нибудь

     

  • 1.13, Аноним (13), 16:08, 27/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > ...для ограничения отдельных приложений непривилегированных пользователей.
    > ..."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 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    На фре есть моё: 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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Делал похожее на 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 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    До сих пор не может в банальную задачу  «запустить бинарник с списком выданных ему сетевых интерфейсов и dns записей» без цирка с грустными клоунами
     
     
  • 2.63, Пузырь (?), 16:35, 30/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Такие задачи требуют повышенных привилегий. Этот инструмент, напротив, пытается уйти от необходимости эскалации привилегий. Даже SUID-версию дропнули.
    А идея настраивать сетевые интерфейсы непосредственно при запуске приложения - так себе.
     

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

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

     
     
  • 2.62, Пузырь (?), 16:30, 30/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > почему-то не работает

    Hardenened kernel? Известно почему.

     

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



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

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