Den nya versionen av verktyget för att organisera arbete i isolerade miljöer, Bubblewrap 0.12, har publicerats. Detta verktyg anvÀnds för att begrÀnsa enskilda applikationer för icke-privilegierade anvÀndare. I praktiken anvÀnds Bubblewrap av Flatpak-projektet som ett lager för isolering av applikationer som startas frÄn paket. Isoleringen baseras pÄ traditionella Linux-teknologier för containervirtualisering, dÀr cgroups, namnrymder (namespaces), Seccomp och SELinux anvÀnds. Projekts kÀllkod Àr skriven i C och distribueras under LGPLv2.1+-licensen.
Isoleringen pĂ„ filsystemsnivĂ„ sker genom att skapa ett nytt namnrymd för montering (mount namespace) som standard, dĂ€r ett tomt rotpartition skapas med tmpfs. I detta partition monteras externa filsystem vid behov i lĂ€get "mount âbind" (till exempel, vid körning med alternativet "bwrap âro-bind /usr /usr" kopplas /usr frĂ„n huvudsystemet i skrivskyddat lĂ€ge). NĂ€tverksmöjligheterna begrĂ€nsas till Ă„tkomst till loopback-grĂ€nssnittet med isolering av nĂ€tverksstacken via flaggorna CLONE_NEWNET och CLONE_NEWUTS.
För att utesluta alla överflödiga anvÀndar- och processidentifierare frÄn den skapade isolerade miljön kan lÀgena CLONE_NEWUSER (anvÀndarnamnrymd) och CLONE_NEWPID (PID-namnrymd) anvÀndas, och för att förbjuda intrÀde av nya privilegier anvÀnds lÀget PR_SET_NO_NEW_PRIVS. För att erhÄlla nödvÀndiga privilegier anvÀnds 'anvÀndarnamnrymd'.
I den nya utgÄvan:
- Licensen för koden har Àndrats frÄn LGPL 2.0+ till LGPL 2.1+.
- Stödet för att bygga en körbar fil som fÄr extra privilegier med suid root-flaggor har upphört. Stöd för 'anvÀndarnamnrymd' Àr nu obligatoriskt i systemet. Anledningen anges som den arbetsinsats som krÀvs för att underhÄlla versionen med suid-flaggan, med tanke pÄ det allmÀnna stödet för 'anvÀndarnamnrymd' i distributionerna.
- Alternativet '--not-a-security-boundary' har lagts till, vilket innebÀr att vissa fel vid konfigurationen av den isolerade sandbox-miljön, sÄsom Ätermontering av en del, inte leder till en krasch.
- En byggalternativet 'assume_kernel' har lagts till, vilket inaktiverar sÀkerstÀllandet av bakÄtkompatibilitet med Linux-kÀrnor som Àr Àldre Àn den angivna versionen. Till exempel kommer angivelse av versioner 5.6.0+ att utesluta alternativ implementering av funktionaliteten 'openat2(RESOLVE_IN_ROOT)'.
KĂ€lla: opennet.ru
