Yalıtılmış ortamlar oluşturmaya yönelik bir katman olan Bubblewrap 0.4.0'in sürümü

Mevcut новый выпуск инструментария Balonlu ambalaj 0.4.0, предназначенного для организации работы изолированных окружений в Linux и функционирующий на уровне приложений непривилегированных пользователей. На практике Bubblewrap используется проектом Flatpak в качестве прослойки для изоляции запускаемых из пакетов приложений. Код проекта написан на языке Си и tarafından dağıtıldı под лицензией LGPLv2+.

Yalıtım için, gruplar, ad alanları, Secomp ve SELinux kullanımına dayalı geleneksel Linux konteyner sanallaştırma teknolojileri kullanılır. Bir kapsayıcıyı yapılandırmak amacıyla ayrıcalıklı işlemler gerçekleştirmek için Bubblewrap, kök haklarıyla (suid bayrağına sahip yürütülebilir bir dosya) başlatılır ve kapsayıcı başlatıldıktan sonra ayrıcalıkları sıfırlar.

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

Dosya sistemi düzeyinde izolasyon, varsayılan olarak yeni bir bağlama ad alanı oluşturularak gerçekleştirilir; burada tmpfs kullanılarak boş bir kök bölüm oluşturulur. Gerekirse, harici FS bölümleri bu bölüme "mount —bind" modunda eklenir (örneğin, "bwrap —ro-bind /usr /usr" seçeneğiyle başlatıldığında, /usr bölümü ana sistemden iletilir) salt okunur modda). Ağ yetenekleri, CLONE_NEWNET ve CLONE_NEWUTS bayrakları aracılığıyla ağ yığını izolasyonu ile geridöngü arayüzüne erişimle sınırlıdır.

Benzer bir projeden temel fark Yangın hapsi, который также использует модель запуска с применением setuid, является то, что в Bubblewrap прослойка для создания контейнеров включает только необходимый минимум возможностей, а все расширенные функции, необходимые для запуска графических приложений, взаимодействия с рабочим столом и фильтрации обращений к Pulseaudio, вынесены на сторону Flatpak и выполняются уже после сброса привилегий. Firejail же объединяет в одном исполняемом файле все сопутствующие функции, что усложняет его аудит и поддержание безопасности на uygun seviye.

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

Kaynak: opennet.ru

Yorum ekle