új kiadás az eszközkészletről , amely a Linux izolált környezeteinek működését hivatott megszervezni, és normál felhasználói szinten működik. A Bubblewrap a Flatpak projekt által alkalmazott réteg az alkalmazáscsomagokból futtatott programok izolálására. A projekt kódja C nyelven íródott és LGPLv2+ licenc alatt áll.
Az elszigeteléshez a Linuxban megszokott konténeres virtualizációs technológiákat használják, amelyek cgroups, névterek (namespaces), Seccomp és SELinux alkalmazásán alapulnak. A konténer beállításához szükséges privilegizált műveletek végrehajtásához a Bubblewrap root jogokkal (suid flag-gel rendelkező futtatható fájl) indul, majd a konténer inicializálása után a privilégiumokat visszaállítja.
A felhasználói azonosítók (user namespaces) aktiválása a rendszeren nem szükséges a konténerekben saját, különálló azonosító készlet használatához, mivel alapértelmezetten sok disztribúcióban nem működik (a Bubblewrap a felhasználói azonosítók korlátozott suid-implementációjaként pozicionálódik — a felhasználói és folyamatazonosítók környezetből való kizárásához a CLONE_NEWUSER és CLONE_NEWPID módokat használják). További védelmet nyújt, hogy a Bubblewrap alatt futó programok a PR_SET_NO_NEW_PRIVS módba kerülnek, amely megtiltja új privilegiumok megszerzését, például amikor setuid flag van érvényben.
A hasonló projekttől
A fájlrendszer szintű elszigetelés alapértelmezés szerint új névtér létrehozásával történik a mount namespace révén, ahol a tmpfs segítségével üres gyökér partíció jön létre. Ehhez a partícióhoz szükség esetén a külső fájlrendszerek partícióit a 'mount —bind' módban csatlakoztatják (például a 'bwrap —ro-bind /usr /usr' opcióval a /usr partíció a fő rendszerből csak olvasható módban kapcsolódik át). A hálózati lehetőségeket a loopback interfész elérésének korlátozásával és a hálózati verem elszigetelésével korlátozzák, a CLONE_NEWNET és CLONE_NEWUTS flag-ek alkalmazásával.
Firejail a megfelelő szinten .
Ez a lehetőség nem működik setuid módban, és külön üzemmód használatát igényli, amely root jogosultságok megszerzése nélkül képes működni, de a rendszerben a felhasználói névtereket aktiválni kell (alapértelmezetten inaktív a Debian és a RHEL/CentOS rendszerekben), és nem zárja ki a
megmaradó lehetőségeket.
A felhasználói namespacek a rendszerben (alapértelmezés szerint le vannak tiltva a Debian és RHEL/CentOS rendszerekben) és nem zárja ki a lehetőséget a felhasználói névtereik határainak. A Bubblewrap 0.4 új lehetőségei között szerepel, hogy lehetséges a musl C könyvtárral való összeszerelés a glibc helyett, valamint a névkörökről szóló információk fájlba történő mentésének támogatása JSON formátumban.
Forrás: opennet.ru
