Serbestberdana Bubblewrap 0.4.0, qatek ji bo afirandina derdorên veqetandî

Berdeste новый выпуск инструментария Bubble wrap 0.4.0, предназначенного для организации работы изолированных окружений в Linux и функционирующий на уровне приложений непривилегированных пользователей. На практике Bubblewrap используется проектом Flatpak в качестве прослойки для изоляции запускаемых из пакетов приложений. Код проекта написан на языке Си и belav kirin ji hêla под лицензией LGPLv2+.

Ji bo veqetandinê, teknolojiyên virtualîzasyona konteynerê Linux-ê yên kevneşopî têne bikar anîn, li ser bingeha karanîna cgroup, navan, Seccomp û SELinux. Ji bo pêkanîna operasyonên îmtiyazê ji bo mîhengkirina konteynerek, Bubblewrap bi mafên root (pelek îcrakar a bi ala suid) ve tê destpêkirin û dûv re piştî ku konteynir dest pê kir îmtiyazan vedigire.

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

Veqetandin di asta pergala pelan de bi afirandina cîhek navek nû ya çiyê ji hêla xwerû ve, ku tê de dabeşek root ya vala bi tmpfs tê afirandin, pêk tê. Ger hewce be, dabeşên FS yên derveyî di moda "mount -bind" de bi vê dabeşkirinê ve têne girêdan (mînak, dema ku bi vebijarka "bwrap —ro-bind /usr /usr" tê destpêkirin, dabeşkirina /usr ji pergala sereke tê şandin. di moda tenê xwendinê de). Kapasîteyên torê ji bo gihîştina navbeynkariya loopback ya bi veqetandina stoka torê ve bi alayên CLONE_NEWNET û CLONE_NEWUTS ve sînorkirî ne.

Cûdahiya sereke ji projeyek wekhev firejail, который также использует модель запуска с применением setuid, является то, что в Bubblewrap прослойка для создания контейнеров включает только необходимый минимум возможностей, а все расширенные функции, необходимые для запуска графических приложений, взаимодействия с рабочим столом и фильтрации обращений к Pulseaudio, вынесены на сторону Flatpak и выполняются уже после сброса привилегий. Firejail же объединяет в одном исполняемом файле все сопутствующие функции, что усложняет его аудит и поддержание безопасности на должном уровне.

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

Source: opennet.ru

Add a comment