Bubblewrap 0.8 kiadása, izolált környezetek létrehozásához szükséges rétegek

Elérhető az izolált környezetek működtetésére szolgáló Bubblewrap 0.8 eszközkészlet kiadása, amelyet általában a nem privilegizált felhasználók egyes alkalmazásainak korlátozására használnak. A gyakorlatban a Bubblewrap-ot a Flatpak projekt használja az alkalmazáscsomagok indításának elszigetelésére. A projekt kódja C nyelven van megírva és LGPLv2+ licenc alatt érhető el.

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) névtereinek aktiválása a rendszeren nem szükséges a működéshez, mivel sok disztribúcióban alapértelmezettként nem működik (a Bubblewrap mint a user namespaces képességeinek korlátozott suid megvalósítása van pozicionálva, amely kizárja az összes felhasználói és folyamat-azonosítót a környezetből, kivéve a jelenlegit, a CLONE_NEWUSER és CLONE_NEWPID módok alkalmazásával). További védelem érdekében a Bubblewrap segítségével indított programok PR_SET_NO_NEW_PRIVS módban futnak, amely megakadályozza az új privilégiumok megszerzését, például setuid flag megléte estén.

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.

A fő különbség a hasonló Firejail projekttől, amely szintén setuid alkalmazásindítási modellt használ, hogy a Bubblewrap konténerek létrehozásának rétege csak a szükséges minimális funkciókat tartalmazza, míg a grafikus alkalmazások indításához, a munkaasztallal való interakcióhoz és a Pulseaudio hívások szűréséhez szükséges összes kibővített funkciót a Flatpak oldalára helyezik, és már a privilégiumok visszaállítása után hajtják végre. A Firejail viszont egyetlen végrehajtható fájlban egyesíti az összes kapcsolódó funkciót, ami megnehezíti az auditálását és a biztonság szinten tartását.

Az új kiadásban:

  • Hozzáadva a "--disable-userns" opció, amely letiltja a felhasználói azonosítók (user namespace) saját belső térfogatának létrehozását a sandbox-környezetben.
  • Hozzáadva a "--assert-userns-disabled" opció, amely ellenőrzi, hogy a "--disable-userns" opció használatakor a meglévő felhasználói azonosítótér aktiválva van.
  • Növeltük a CONFIG_SECCOMP és CONFIG_SECCOMP_FILTER kernelbeállítások letiltásával kapcsolatos hibajelzések informativitását.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster