Vydanie Bubblewrap 0.6, vrstvy na vytváranie izolovaných prostredí

K dispozícii je vydanie nástrojov na organizáciu práce v izolovaných prostrediach Bubblewrap 0.6, ktoré sa zvyčajne používajú na obmedzenie jednotlivých aplikácií neprivilegovaných používateľov. V praxi Bubblewrap používa projekt Flatpak ako vrstvu na izoláciu aplikácií spúšťaných z balíkov. Kód projektu je napísaný v jazyku C a je distribuovaný pod licenciou LGPLv2+.

Na izoláciu sa používajú tradičné technológie virtualizácie kontajnerov Linuxu, založené na použití cgroups, namespaces, Seccomp a SELinux. Ak chcete vykonať privilegované operácie na konfiguráciu kontajnera, spustí sa Bubblewrap s právami root (spustiteľný súbor s príznakom suid) a po inicializácii kontajnera obnoví privilégiá.

Aktivácia užívateľských menných priestorov v systéme menných priestorov, ktorá vám umožňuje používať vlastnú samostatnú sadu identifikátorov v kontajneroch, nie je potrebná na prevádzku, pretože v mnohých distribúciách štandardne nefunguje (Bubblewrap je umiestnený ako obmedzená suid implementácia podmnožina možností užívateľských menných priestorov - na vylúčenie všetkých identifikátorov užívateľov a procesov z prostredia, okrem aktuálneho, sa používajú režimy CLONE_NEWUSER a CLONE_NEWPID). Pre dodatočnú ochranu sa programy spúšťané pod Bubblewrap spúšťajú v režime PR_SET_NO_NEW_PRIVS, ktorý zakazuje získavanie nových privilégií, napríklad ak je prítomný príznak setuid.

Izolácia na úrovni súborového systému sa dosiahne štandardne vytvorením nového priestoru názvov pripojenia, v ktorom sa pomocou tmpfs vytvorí prázdny koreňový oddiel. V prípade potreby sú externé oddiely FS pripojené k tomuto oddielu v režime „mount —bind“ (napríklad pri spustení s voľbou „bwrap —ro-bind /usr /usr“ sa oddiel /usr prepošle z hlavného systému v režime iba na čítanie). Možnosti siete sú obmedzené na prístup k rozhraniu spätnej slučky s izoláciou sieťového zásobníka prostredníctvom príznakov CLONE_NEWNET a CLONE_NEWUTS.

Kľúčový rozdiel od podobného projektu Firejail, ktorý tiež používa model spúšťania setuid, je v tom, že v Bubblewrap vrstva na vytváranie kontajnerov obsahuje iba nevyhnutné minimálne možnosti a všetky pokročilé funkcie potrebné na spúšťanie grafických aplikácií, interakciu s pracovnou plochou a filtrovanie požiadaviek. na Pulseaudio, prenesené na stranu Flatpak a spustené po resetovaní privilégií. Firejail, na druhej strane, kombinuje všetky súvisiace funkcie do jedného spustiteľného súboru, čo sťažuje audit a udržiavanie zabezpečenia na správnej úrovni.

V novom vydaní:

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

Zdroj: opennet.ru

Pridať komentár