Vydání Bubblewrap 0.6, vrstvy pro vytváření izolovaných prostředí

K dispozici je verze nástrojů pro organizaci práce v izolovaných prostředích Bubblewrap 0.6, která se obvykle používá k omezení jednotlivých aplikací neprivilegovaných uživatelů. V praxi Bubblewrap používá projekt Flatpak jako vrstvu k izolaci aplikací spouštěných z balíčků. Kód projektu je napsán v jazyce C a je distribuován pod licencí LGPLv2+.

Pro izolaci se používají tradiční technologie virtualizace kontejnerů Linuxu, založené na použití cgroups, jmenných prostorů, Seccomp a SELinux. Chcete-li provést privilegované operace pro konfiguraci kontejneru, spustí se Bubblewrap s právy root (spustitelný soubor s příznakem suid) a poté, co je kontejner inicializován, obnoví oprávnění.

Aktivace uživatelských jmenných prostorů v systému jmenných prostorů, která vám umožňuje používat vlastní samostatnou sadu identifikátorů v kontejnerech, není pro provoz nutná, protože v mnoha distribucích nefunguje standardně (Bubblewrap je umístěn jako omezená suid implementace podmnožina schopností uživatelských jmenných prostorů - pro vyloučení všech uživatelských a procesních identifikátorů z prostředí, kromě aktuálního, se používají režimy CLONE_NEWUSER a CLONE_NEWPID). Pro další ochranu jsou programy spouštěné pod Bubblewrap spouštěny v režimu PR_SET_NO_NEW_PRIVS, který zakazuje získávání nových oprávnění, například pokud je přítomen příznak setuid.

Izolace na úrovni souborového systému se provádí vytvořením nového jmenného prostoru připojení ve výchozím nastavení, ve kterém se pomocí tmpfs vytvoří prázdný kořenový oddíl. V případě potřeby jsou k tomuto oddílu připojeny externí oddíly FS v režimu „mount —bind“ (například při spuštění s volbou „bwrap —ro-bind /usr /usr“ je oddíl /usr předán z hlavního systému v režimu pouze pro čtení). Možnosti sítě jsou omezeny na přístup k rozhraní zpětné smyčky s izolací síťového zásobníku prostřednictvím příznaků CLONE_NEWNET a CLONE_NEWUTS.

Klíčový rozdíl od podobného projektu Firejail, který také používá model spouštění setuid, je v tom, že v Bubblewrap vrstva pro vytváření kontejnerů obsahuje pouze nezbytné minimální schopnosti a všechny pokročilé funkce nezbytné pro spouštění grafických aplikací, interakci s desktopem a filtrování požadavků. na Pulseaudio, převedena na stranu Flatpak a spuštěna po resetování oprávnění. Firejail na druhé straně kombinuje všechny související funkce do jednoho spustitelného souboru, což ztěžuje audit a udržování zabezpečení na správné úrovni.

V novém vydání:

  • Přidána podpora pro montážní systém Meson. Podpora pro vytváření pomocí Autotools byla prozatím zachována, ale v budoucí verzi bude odstraněna.
  • Implementována možnost "--add-seccomp" pro přidání více než jednoho programu seccomp. Přidáno varování, že pokud znovu zadáte možnost "--seccomp", použije se pouze poslední parametr.
  • Hlavní větev v úložišti git byla přejmenována na main.
  • Přidána částečná podpora specifikace REUSE, která sjednocuje proces specifikace informací o licenci a autorských právech. Mnoho souborů kódu má přidané záhlaví SPDX-License-Identifier. Dodržování pokynů REUSE usnadňuje automatické určení, která licence se vztahuje na které části kódu aplikace.
  • Přidána kontrola hodnoty čítače argumentů příkazového řádku (argc) a implementován nouzový východ, pokud je čítač nulový. Tato změna pomáhá blokovat bezpečnostní problémy způsobené nesprávným zpracováním předávaných argumentů příkazového řádku, jako je CVE-2021-4034 v Polkitu.

Zdroj: opennet.ru

Přidat komentář