Megjelent a Bubblewrap 0.12 új verziója, amely az elkülönített környezetek munkájának megszervezésére szolgál, és a nem privilegizált felhasználók egyes alkalmazásainak korlátozására használják. A Bubblewrap a Flatpak projekt által alkalmazott réteg, amely a csomagolt alkalmazások indításának elkülönítésére szolgál. Az elkülönítés hagyományos Linux technológiákat használ, beleértve a cgroups, a namespace-k, a Seccomp és a SELinux alkalmazását. A projekt kódja C nyelven íródott, és LGPLv2.1+ licenc alatt terjesztik.
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.
Az elkülönített környezet létrehozásából minden fölösleges felhasználói és folyamatazonosító kizárására a CLONE_NEWUSER (user namespace) és a CLONE_NEWPID (PID namespace) módok használhatók, míg az új privilegiumok megszerzésének megtiltására a PR_SET_NO_NEW_PRIVS mód alkalmazható. A szükséges privilegiumok megszerzéséhez a „user namespace” használatos.
Az új kiadásban:
- A kód licencét LGPL 2.0+-ról LGPL 2.1+-ra módosították.
- A SUID root flag használatával rendelkező futtatható fájl létrehozásának támogatását leállították. A rendszernek mostantól kötelező támogatnia a „user namespace”-t. Az indoklás szerint a SUID flag verzió fenntartásának nehézségei állnak a háttérben, figyelembe véve a „user namespace” széleskörű támogatását a disztribúciókban.
- Hozzáadták a „—not-a-security-boundary” opciót, amely esetén bizonyos konfigurálási hibák, mint például a melléklet újramontálása, nem okoznak vészhelyzeti leállást az elkülönített sandbox-környezet beállításakor.
- Hozzáadtak egy build opciót, az „assume_kernel”-t, amely letiltja a visszafelé kompatibilitás biztosítását a Linux kernel régebbi verzióival, mint a megadott verzió. Például, ha a 5.6.0+ verziókat adjuk meg, akkor kizárásra kerül az „openat2(RESOLVE_IN_ROOT)” funkció alternatív megvalósítása.
Forrás: opennet.ru
