Bubblewrap 0.4.0 шығарылымы, оқшауланған орталарды жасауға арналған қабат

Қол жетімді новый выпуск инструментария Көпіршікті орау 0.4.0, предназначенного для организации работы изолированных окружений в Linux и функционирующий на уровне приложений непривилегированных пользователей. На практике Bubblewrap используется проектом Flatpak в качестве прослойки для изоляции запускаемых из пакетов приложений. Код проекта написан на языке Си и таралады под лицензией LGPLv2+.

Оқшаулау үшін топтар, аттар кеңістігі, Seccomp және SELinux пайдалануға негізделген дәстүрлі Linux контейнерлік виртуалдандыру технологиялары қолданылады. Контейнерді конфигурациялау үшін артықшылықты әрекеттерді орындау үшін Bubblewrap түбірлік құқықтарымен (suid жалаушасы бар орындалатын файл) іске қосылады, содан кейін контейнер инициализацияланғаннан кейін артықшылықтарды қалпына келтіреді.

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

Файлдық жүйе деңгейіндегі оқшаулау әдепкі бойынша tmpfs көмегімен бос түбірлік бөлім жасалған жаңа орнату аттар кеңістігін жасау арқылы орындалады. Қажет болса, сыртқы FS бөлімдері осы бөлімге «mount —bind» режимінде бекітіледі (мысалы, «bwrap —ro-bind /usr /usr» опциясымен іске қосылғанда, /usr бөлімі негізгі жүйеден қайта жіберіледі. тек оқуға арналған режимде). Желі мүмкіндіктері CLONE_NEWNET және CLONE_NEWUTS жалаушалары арқылы желілік стек оқшаулауы бар кері цикл интерфейсіне қол жеткізумен шектелген.

Ұқсас жобадан негізгі айырмашылығы Өрт -түрме, который также использует модель запуска с применением setuid, является то, что в Bubblewrap прослойка для создания контейнеров включает только необходимый минимум возможностей, а все расширенные функции, необходимые для запуска графических приложений, взаимодействия с рабочим столом и фильтрации обращений к Pulseaudio, вынесены на сторону Flatpak и выполняются уже после сброса привилегий. Firejail же объединяет в одном исполняемом файле все сопутствующие функции, что усложняет его аудит и поддержание безопасности на должном уровне.

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

Ақпарат көзі: opennet.ru

пікір қалдыру