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

Elérhető az elszigetelt környezetek munkájának megszervezésére szolgáló eszközök kiadása, a Bubblewrap 0.8, amelyet általában a nem jogosult felhasználók egyedi alkalmazásainak korlátozására használnak. 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 nyelven íródott, és az LGPLv2+ licenc alatt kerül terjesztésre.

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 használható megvalósításaként van elhelyezve. 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). A további védelem érdekében a Bubblewrap alatt végrehajtott 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.

A legfontosabb különbség a hasonló, szintén setuid indítási modellt használó Firejail projekthez képest az, hogy a Bubblewrap-ban a konténerkészítő 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 szűrési kérésekhez szükséges összes speciális funkciót. a Pulseaudio-ra, átkerül a Flatpak oldalra, és a jogosultságok visszaállítása után végrehajtódik. A Firejail ezzel szemben az összes kapcsolódó funkciót egyetlen végrehajtható fájlban egyesíti, ami megnehezíti a biztonság megfelelő szintű ellenőrzését és fenntartását.

Az új kiadásban:

  • A „--disable-userns” opció hozzáadásával letiltja a saját beágyazott felhasználói névtér létrehozását a sandbox környezetben.
  • Az "--assert-userns-disabled" opció hozzáadva annak ellenőrzésére, hogy a "--disable-userns" opció használatakor egy meglévő felhasználói azonosító terület kerül felhasználásra.
  • A rendszermag CONFIG_SECCOMP és CONFIG_SECCOMP_FILTER beállításainak letiltásával kapcsolatos hibaüzenetek információtartalma megnövekedett.

Forrás: opennet.ru

Hozzászólás