Release of Bubblewrap 0.6, lagen foar it meitsjen fan sandboxed omjouwings

De frijlitting fan ark foar it organisearjen fan it wurk fan isolearre omjouwings Bubblewrap 0.6 is beskikber, meastentiids brûkt om yndividuele applikaasjes fan unprivileged brûkers te beheinen. Yn 'e praktyk wurdt Bubblewrap brûkt troch it Flatpak-projekt as in laach om applikaasjes te isolearjen lansearre út pakketten. De projektkoade is skreaun yn C en wurdt ferspraat ûnder de LGPLv2+ lisinsje.

Foar isolaasje wurde tradisjonele Linux-container-virtualisaasjetechnologyen brûkt, basearre op it gebrûk fan cgroups, namespaces, Seccomp en SELinux. Om privileezje operaasjes út te fieren om in kontener te konfigurearjen, wurdt Bubblewrap lansearre mei rootrjochten (in útfierber bestân mei in suid-flagge) en set dan privileezjes werom nei't de kontener inisjalisearre is.

Aktivearring fan brûkersnammeromten yn it nammeromtesysteem, wêrtroch jo jo eigen aparte set identifiers yn konteners kinne brûke, is net fereaske foar operaasje, om't it net standert wurket yn in protte distribúsjes (Bubblewrap is gepositioneerd as in beheinde suid-ymplemintaasje fan in subset fan mooglikheden foar brûkersnammeromten - om alle brûkers- en prosesidentifiers út 'e omjouwing út te sluten, útsein de aktuele, wurde de CLONE_NEWUSER- en CLONE_NEWPID-modi brûkt). Foar ekstra beskerming wurde programma's útfierd ûnder Bubblewrap lansearre yn 'e PR_SET_NO_NEW_PRIVS-modus, dy't de oankeap fan nije privileezjes ferbiedt, bygelyks as de setuid-flagge oanwêzich is.

Isolaasje op it nivo fan bestânsysteem wurdt berikt troch standert in nije berch-nammeromte te meitsjen, wêryn in lege root-partysje wurdt makke mei tmpfs. As it nedich is, wurde eksterne FS-partysjes oan dizze partysje hechte yn 'e "mount —bind" modus (bygelyks, as lansearre mei de "bwrap -ro-bind /usr /usr" opsje, wurdt de /usr partition trochstjoerd fan it haadsysteem yn allinich-lêsmodus). Netwurkmooglikheden binne beheind ta tagong ta de loopback-ynterface mei netwurkstack-isolaasje fia de flaggen CLONE_NEWNET en CLONE_NEWUTS.

It wichtichste ferskil fan it ferlykbere Firejail-projekt, dat ek it setuid-lansearringsmodel brûkt, is dat yn Bubblewrap de kontenerskeppingslaach allinich de nedige minimale mooglikheden omfettet, en alle avansearre funksjes dy't nedich binne foar it útfieren fan grafyske applikaasjes, ynteraksje mei it buroblêd en filteroanfragen nei Pulseaudio, oerdroegen oan 'e Flatpak-kant en útfierd nei't de privileezjes weromset binne. Firejail, oan 'e oare kant, kombinearret alle relatearre funksjes yn ien útfierber bestân, wat it dreech makket om feiligens op it juste nivo te kontrolearjen en te behâlden.

Yn de nije release:

  • Добавлена поддержка сборочной системы Meson. Поддержка сборки при помощи Autotools пока сохранена, но будет удалена в одном из следующих выпусков.
  • Реализована опция «—add-seccomp» для добавления более чем одной программы seccomp. Добавлено предупреждение о том, что при повторном указании опции «—seccomp» будет применён только последний параметр.
  • Ветка master в git-репозитории переименована в main.
  • Добавлена частичная поддержка спецификации REUSE, унифицирующей процесс указания сведений о лицензиях и авторских правах. Во многие файлы с кодом добавлены заголовки SPDX-License-Identifier. Следование рекомендациям REUSE позволяет упростить автоматическое определение какая лицензия применяется к каким из частей кода приложения.
  • Добавлена проверка значения счётчика аргументов командной строки (argc) и реализован экстренный выход в случае если счётчик равен нулю. Изменение позволяет блокировать проблемы с безопасностью, вызванные некорректной обработкой передаваемых аргументов командной строки, такие как CVE-2021-4034 в Polkit.

Boarne: opennet.ru

Add a comment