Bola publikovaná nová verzia Bubblewrapu 0.12, nástroja na organizáciu izolovaných prostredí. Používa sa na obmedzenie jednotlivých aplikácií pre neprivilegovaných používateľov. V praxi sa Bubblewrap používa v projekte Flatpak ako vrstva na izoláciu aplikácií spúšťaných z balíkov. Na tento účel sa používajú tradičné metódy izolácie. Linux technológie virtualizácie kontajnerov založené na použití cgroups, menných priestorov, Seccomp a SELinuxKód projektu je napísaný v jazyku C a distribuovaný pod licenciou LGPLv2.1+.
Izolácia na úrovni súborového systému sa dosiahne štandardne vytvorením nového priestoru názvov pripojenia, v ktorom sa pomocou tmpfs vytvorí prázdny koreňový oddiel. V prípade potreby sú externé oddiely FS pripojené k tomuto oddielu v režime „mount —bind“ (napríklad pri spustení s voľbou „bwrap —ro-bind /usr /usr“ sa oddiel /usr prepošle z hlavného systému v režime iba na čítanie). Možnosti siete sú obmedzené na prístup k rozhraniu spätnej slučky s izoláciou sieťového zásobníka prostredníctvom príznakov CLONE_NEWNET a CLONE_NEWUTS.
Na vylúčenie všetkých nepotrebných ID používateľov a procesov z vytvoreného izolovaného prostredia je možné použiť režimy CLONE_NEWUSER (priestor názvov používateľov) a CLONE_NEWPID (priestor názvov PID) a režim PR_SET_NO_NEW_PRIVS sa používa na zabránenie získania nových privilégií. „Priestor názvov používateľov“ sa používa na získanie potrebných privilégií.
V novom vydaní:
- Licencia kódu bola zmenená z LGPL 2.0+ na LGPL 2.1+.
- Podpora pre zostavovanie ako spustiteľného súboru, ktorý získava ďalšie privilégiá pomocou koreňového príznaku suid, bola ukončená. Podpora pre „priestor názvov používateľov“ je teraz povinná. Uvedeným dôvodom je zložitosť údržby príznaku suid vzhľadom na širokú podporu pre „priestor názvov používateľov“ v distribúciách.
- Pridaná bola možnosť „--not-a-security-boundary“, ktorá po nastavení zabraňuje určitým zlyhaniam pri nastavovaní izolovaného prostredia sandbox, ako je napríklad opätovné pripojenie podkľúča, aby spôsobili zlyhanie.
- Pridaná možnosť zostavenia „assume_kernel“ na vypnutie spätnej kompatibility s jadrami Linux, staršia ako zadaná verzia. Napríklad zadanie verzií 5.6.0+ vylúči alternatívnu implementáciu funkcie „openat2(RESOLVE_IN_ROOT)“.
Zdroj: opennet.ru
