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

Byla vydána nová verze nástroje pro organizaci práce v izolovaných prostředích Bubblewrap 0.12, používaného k omezení jednotlivých aplikací neoprávněnými uživateli. V praxi se Bubblewrap využívá projektem Flatpak jako vrstva pro izolaci spouštěných aplikací z balíčků. K izolaci se používají tradiční technologie kontejnerové virtualizace pro Linux, založené na využití cgroups, namespaců, Seccomp a SELinux. Kód projektu je napsán v jazyce C a distribuuje se pod licencí LGPLv2.1+.

Izolace na úrovni souborového systému se provádí vytvořením nového namespaces pro body připojení (mount namespace), v němž se pomocí tmpfs vytváří prázdný kořenový oddíl. Do tohoto oddílu se v případě potřeby připojují oddíly externího 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í). Síťové možnosti jsou omezeny přístupem k loopback rozhraní s izolací síťového stacku pomocí příznaků CLONE_NEWNET a CLONE_NEWUTS.

Pro vyloučení všech zbytečných identifikátorů uživatelů a procesů z vytvářeného izolovaného prostředí lze použít režimy CLONE_NEWUSER (uživatelský namespace) a CLONE_NEWPID (PID namespace), a pro zakázání získání nových oprávnění se používá režim PR_SET_NO_NEW_PRIVS. Pro získání potřebných oprávnění se využívá „uživatelský namespace“.

V novém vydání:

  • Licence na kód byla změněna z LGPL 2.0+ na LGPL 2.1+.
  • Byla ukončena podpora sestavení ve formě spustitelného souboru, který získává další oprávnění pomocí příznaku suid root. Přítomnost podpory „uživatelského namespace“ v systému je nyní nezbytná. Jako důvod se uvádí náročnost údržby varianty s příznakem suid na pozadí zjevné podpory „uživatelského namespace“ v distribucích.
  • Byla přidána možnost „—not-a-security-boundary“, která zajistí, že některé chyby při konfiguraci izolovaného sandboxového prostředí, jako je opětovné připojení pododdílu, nevedou k havarijnímu ukončení.
  • Byla přidána možnost sestavení „assume_kernel“, která vypíná zajištění zpětné kompatibility s jádry Linuxu staršími než uvedená verze. Například uvedení verzí 5.6.0+ vyloučí alternativní implementaci funkce „openat2(RESOLVE_IN_ROOT)“.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster