Bubblewrap, nástroj pro vytváření aplikací v izolovaných prostředích

Bubblewrap je nástroj co funguje organizovat práci na izolovaném prostoru v systému Linux a běž na úrovni aplikace bez privilegovaných uživatelů. V praxi je projekt Bubblewrap používán projektem Flatpak jako mezivrstva k izolaci aplikací spuštěných ze softwarových balíčků.

Pro izolaci používá Linux virtualizační technologie tradičních kontejnerů založených na použití cgroups, jmenných prostorů, Seccomp a SELinux. Chcete-li provádět privilegované operace ke konfiguraci kontejneru, spustí se Bubblewrap s oprávněními uživatele root (spustitelný soubor s příznakem suid), po kterém je po inicializaci kontejneru obnoveno oprávnění.

Není třeba v systému povolovat uživatelské jmenné prostory, což vám umožňuje používat vlastní sadu ID v kontejnerech, protože ve výchozím nastavení to na mnoha distribucích nefunguje.

O společnosti Bubblewrap

Bubblewrap je umístěn jako omezená implementace suida z podmnožiny funkcí jmenného prostoru uživatele k vyloučení všech ID uživatelů a procesů z prostředí kromě aktuálního, použijte režimy CLONE_NEWUSER a CLONE_NEWPID.

Pro další ochranu programy spuštěné v Bubblewrapu začínají v režimu PR_SET_NO_NEW_PRIVS, který zakazuje nová privilegia, například s příznakem setuid.

Izolace na úrovni souborového systému se provádí vytvořením standardně nového jmenného prostoru mount, ve kterém je pomocí tmpfs vytvořen prázdný kořenový oddíl.

V případě potřeby jsou k této sekci připojeny externí sekce FS v «připojit - svázat»(Například počínaje možností«bwrap –ro-bind / usr / usr', The / usr section is forwarded from the host in read-only mode).

Možnosti sítě jsou omezeny na přístup k rozhraní zpětné smyčky invertováno s izolací síťového zásobníku pomocí indikátorů CLONE_NEWNET a CLONE_NEWUTS.

Klíčový rozdíl oproti podobnému projektu Firejail, který také používá spouštěč setuid, je to v Bubblewrap, kontejnerová vrstva obsahuje pouze minimální nutné funkce a všechny pokročilé funkce potřebné ke spouštění grafických aplikací, interakci s desktopem a filtrování hovorů do Pulseaudio jsou uvedeny vedle Flatpaku a běží po resetování oprávnění.

Firejail na druhé straně kombinuje všechny související funkce do jednoho spustitelného souboru, což komplikuje váš audit a udržuje zabezpečení na správné úrovni.

Bubblewrap v podstatě funguje prostřednictvím vytvoření prázdného jmenného prostoru pro připojení v dočasném systému souborů který bude zničen po dokončení zpracování karantény.

Pomocí přepínačů může uživatel vytvořit požadované prostředí souborového systému v oboru názvů připojení připojením na odkaz požadovaných adresářů z hostitelského systému.

Bubblewrap 0.4.0

Bubblewrap je aktuálně ve verzi 0.4.0 který byl nedávno vydán. Kód projektu je napsán v jazyce C a distribuován pod licencí LGPLv2 +.

Nová verze je pozoruhodný implementací podpory pro spojení jmenných prostorů a procesů stávající uživatelé (jmenné prostory pid).

Pro řízení připojení jmenných prostorů byly přidány příznaky „–userns“, „–userns2“ a „–pidns“.

Tato funkce nefunguje v režimu setuid a vyžaduje samostatný režim, který může pracovat bez oprávnění root, ale vyžaduje, aby byly v systému povoleny uživatelské jmenné prostory (ve výchozím nastavení je deaktivováno v Debianu a RHEL / CentOS) a nevylučuje možnost potenciálního zneužití zbývající chyby zabezpečení až na hranici omezení „uživatelských jmenných prostorů“.

Z nových funkcí Bubblewrap 0.4 je také pozorována možnost stavby s musl C knihovnou místo glibc, a podpora pro ukládání informací o jmenném prostoru do statistického souboru ve formátu JSON.

Kód Bubblewrap a související dokumentace je k nahlédnutí na Githubu odkaz je tento.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.