Vydání Bubblewrap 0.8, 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.8, 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 možnost „--disable-userns“, která zakáže vytváření vlastního vnořeného uživatelského jmenného prostoru v prostředí karantény.
  • Přidána možnost „--assert-userns-disabled“ pro kontrolu, že použití možnosti „--disable-userns“ využívá existující prostor ID uživatele.
  • Informační obsah chybových zpráv souvisejících s deaktivací nastavení CONFIG_SECCOMP a CONFIG_SECCOMP_FILTER v jádře byl zvýšen.

Zdroj: opennet.ru

Přidat komentář