Verëffentlechung vu Bubblewrap 0.4.0, eng Schicht fir isoléiert Ëmfeld ze kreéieren

Verfügbar новый выпуск инструментария Bubble wrap 0.4.0, предназначенного для организации работы изолированных окружений в Linux и функционирующий на уровне приложений непривилегированных пользователей. На практике Bubblewrap используется проектом Flatpak в качестве прослойки для изоляции запускаемых из пакетов приложений. Код проекта написан на языке Си и verdeelt duerch под лицензией LGPLv2+.

Fir Isolatioun ginn traditionell Linux Container Virtualiséierungstechnologien benotzt, baséiert op der Benotzung vu cgroups, namespaces, Seccomp an SELinux. Fir privilegiéiert Operatiounen auszeféieren fir e Container ze konfiguréieren, gëtt Bubblewrap mat Root-Rechter gestart (eng ausführbar Datei mat engem suid-Fändel) an setzt dann d'Privilegien zréck nodeems de Container initialiséiert ass.

Активация в системе пространств имён идентификаторов пользователя (user namespaces), позволяющих использовать в контейнерах собственный отдельный набор идентификаторов, для работы не требуется, так как по умолчанию не работает во многих дистрибутивах (Bubblewrap позиционируется как ограниченная suid-реализация подмножества возможностей user namespaces — для исключения всех идентификаторов пользователей и процессов из окружения, кроме текущего, используются режимы CLONE_NEWUSER и CLONE_NEWPID). Для дополнительной защиты исполняемые под управлением
Bubblewrap программы запускаются в режиме PR_SET_NO_NEW_PRIVS, запрещающем получение новых привилегий, например, при наличии флага setuid.

Isolatioun um Dateisystemniveau gëtt erreecht andeems en neie Mount Nummraum als Standard erstallt gëtt, an deem eng eidel Root Partition mat tmpfs erstallt gëtt. Wann néideg, ginn extern FS-Partitionen un dës Partition am "mount —bind" Modus befestegt (zum Beispill, wann se mat der "bwrap -ro-bind /usr /usr" Optioun lancéiert ginn, gëtt d'/usr Partition vum Haaptsystem weidergeleet. am Liesmodus). Netzwierkfäegkeeten si limitéiert fir Zougang zu der Loopback Interface mat Netzwierkstackisolatioun iwwer d'CLONE_NEWNET an CLONE_NEWUTS Fändelen.

Schlëssel Ënnerscheed vun engem ähnleche Projet Feierstaang, который также использует модель запуска с применением setuid, является то, что в Bubblewrap прослойка для создания контейнеров включает только необходимый минимум возможностей, а все расширенные функции, необходимые для запуска графических приложений, взаимодействия с рабочим столом и фильтрации обращений к Pulseaudio, вынесены на сторону Flatpak и выполняются уже после сброса привилегий. Firejail же объединяет в одном исполняемом файле все сопутствующие функции, что усложняет его аудит и поддержание безопасности на должном уровне.

Новый выпуск примечателен реализацией поддержки присоединения существующих пространств имён идентификаторов пользователей (user namespaces) и процессов (pid namespaces). Для управления подключением пространств имён добавлены флаги «—userns», «—userns2» и «—pidns».
Данная возможность не работает в режиме setuid и требует применения отдельного режима, который может работать без получения прав root, но требует активации
user namespaces в системе (по умолчанию отключены в Debian и RHEL/CentOS) и не исключает возможность Ausbeutung потенциально остающихся Schwachstelle для обода ограничений «user namespaces». Из новых возможностей Bubblewrap 0.4 также отмечается возможность сборки с Си-библиотекой musl вместо glibc и поддержка сохранения информации о пространствах имён в файл со статистикой в формате JSON.

Source: opennet.ru

Setzt e Commentaire