A Bubblewrap 0.4.0 kiadása, egy elszigetelt környezetek létrehozására szolgáló réteg

Elérhető az eszköztár új kiadása Buborékcsomagolás 0.4.0, amelyet az elszigetelt környezetek munkájának megszervezésére terveztek Linux alatt, és a kiváltságtalan felhasználók alkalmazási szintjén működik. A gyakorlatban a Bubblewrap-ot a Flatpak projekt rétegként használja a csomagokból indított alkalmazások elkülönítésére. A projekt kódja C és betűkkel van írva forgalmazza LGPLv2+ licenccel.

Az elkülönítéshez hagyományos Linux konténervirtualizációs technológiákat használnak, amelyek a cgroupok, névterek, Seccomp és SELinux használatán alapulnak. A tároló konfigurálásához szükséges privilegizált műveletek végrehajtásához a Bubblewrap root jogokkal indul (egy futtatható fájl suid jelzővel), majd a tároló inicializálása után visszaállítja a jogosultságokat.

A működéshez nem szükséges a felhasználói névterek aktiválása a névtérrendszerben, amely lehetővé teszi a saját, különálló azonosítókészletek használatát a tárolókban, mivel sok disztribúcióban alapértelmezés szerint nem működik (a Bubblewrap egy korlátozottan alkalmas megvalósítása egy felhasználói névterek képességeinek részhalmaza - az összes felhasználói és folyamatazonosító kizárásához a környezetből, kivéve az aktuálisat, a CLONE_NEWUSER és CLONE_NEWPID módok használatosak). További védelem érdekében, ellenőrzés alatt végrehajtható
A Bubblewrap programok PR_SET_NO_NEW_PRIVS módban indulnak el, ami tiltja az új jogosultságok megszerzését, például ha a setuid jelző jelen van.

A fájlrendszer szintű elkülönítés alapértelmezés szerint egy új beillesztési névtér létrehozásával valósul meg, amelyben egy üres gyökérpartíció jön létre a tmpfs használatával. Ha szükséges, külső FS-partíciókat csatolunk ehhez a partícióhoz „mount —bind” módban (például ha a „bwrap –ro-bind /usr /usr” opcióval indítjuk, a /usr partíció a fő rendszerről továbbítódik csak olvasható módban). A hálózati képességek a CLONE_NEWNET és a CLONE_NEWUTS jelzőkön keresztül történő hálózati veremszigeteléssel ellátott loopback interfész elérésére korlátozódnak.

Lényeges különbség egy hasonló projekthez képest Tűzbörtön, amely szintén setuid indítási modellt használ, az az, hogy a Bubblewrap-ban a konténer létrehozási réteg csak a szükséges minimális képességeket tartalmazza, és a grafikus alkalmazások futtatásához, az asztallal való interakcióhoz és a Pulseaudio hívások szűréséhez szükséges összes speciális funkciót kihelyezik a Flatpak és végrehajtják. a jogosultságok visszaállítása után. A Firejail ezzel szemben az összes kapcsolódó funkciót egyetlen végrehajtható fájlban egyesíti, ami megnehezíti a biztonság ellenőrzését és fenntartását. megfelelő szinten.

Az új kiadás a meglévő felhasználói névterek és a process pid névterek összekapcsolásának támogatásáról ismert. A névterek kapcsolatának szabályozására a „--userns”, „--userns2” és „-pidns” jelzők kerültek hozzáadásra.
Ez a funkció nem működik setuid módban, és külön módot igényel, amely root jogok megszerzése nélkül is működik, de aktiválást igényel
felhasználói névterek a rendszeren (alapértelmezés szerint le van tiltva a Debian és RHEL/CentOS rendszeren), és nem zárja ki a lehetőséget kizsákmányolás potenciálisan többi sebezhetőségek a "felhasználói névterek" korlátozási peremhez. A Bubblewrap 0.4 új szolgáltatásai közé tartozik a glibc helyett a musl C könyvtárral való építkezés lehetősége, valamint a névtérinformációk JSON formátumú statisztikákkal ellátott fájlba mentésének támogatása.

Forrás: opennet.ru

Hozzászólás