UtgÄvan av verktyget för att organisera arbete i isolerade miljöer Bubblewrap 0.5.0 Àr nu tillgÀnglig, som vanligtvis anvÀnds för att begrÀnsa individuella applikationer av icke-privilegierade anvÀndare. I praktiken anvÀnds Bubblewrap av projektet Flatpak som ett lager för isolering av applikationer som körs frÄn paket. Projektets kod Àr skriven i C och distribueras under LGPLv2+-licensen.
För isolering anvÀnds traditionella Linux-teknologier för containervirtualisering, baserade pÄ anvÀndning av cgroups, namnrymder (namespaces), Seccomp och SELinux. För att utföra privilegierade operationer för att konfigurera containern körs Bubblewrap med root-rÀttigheter (exekverbara filer med suid-flagga) och ÄterstÀller privilegierna efter att containern har initierats.
Aktivering av anvĂ€ndarnamnrymd (user namespaces) i systemet, vilket möjliggör anvĂ€ndning av en separat uppsĂ€ttning identiteter inom containrar, krĂ€vs inte för drift, eftersom den inte Ă€r aktiverad som standard i mĂ„nga distributioner (Bubblewrap positioneras som en begrĂ€nsad suid-implementation av ett urval av funktionerna i anvĂ€ndarnamnrymder â för att utesluta alla anvĂ€ndar- och processidentiteter frĂ„n miljön, förutom den aktuella, anvĂ€nds lĂ€gena CLONE_NEWUSER och CLONE_NEWPID). För extra skydd körs program som körs under Bubblewrap i lĂ€get PR_SET_NO_NEW_PRIVS, som förhindrar förvĂ€rv av nya privilegier, till exempel nĂ€r det finns en setuid-flagga.
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.
Den avgörande skillnaden frÄn det liknande projektet Firejail, som ocksÄ anvÀnder en setuid-baserad körmodell, Àr att Bubblewrap:s lager för att skapa containrar endast inkluderar nödvÀndiga minimimöjligheter. Alla utökade funktioner som krÀvs för att köra grafiska applikationer, interagera med skrivbordet och filtrera anrop till Pulseaudio hanteras av Flatpak och utförs efter att privilegier har avlÀgsnats. Firejail Ä sin sida samlar alla tillhörande funktioner i en enda körbar fil, vilket försvÄrar granskningen och att bibehÄlla sÀkerhetsnivÄn.
Den nya versionen erbjuder alternativ som: ââchmodâ för att Ă€ndra Ă„tkomstrĂ€ttigheter, ââclearenvâ för att rensa miljövariabler (utom PWD) och ââpermsâ för att definiera Ă„tkomstrĂ€ttigheter som tillĂ€mpas vid utförande av operationerna ââbind-dataâ, ââdirâ, ââfileâ, ââro-bind-dataâ och ââtmpfsâ. Diagnostik av problem som uppstĂ„r vid bind-monteringsfel har förbĂ€ttrats. Stöd för autokomplettering av kommandon med tab-tangenten har lagts till för zsh.
KĂ€lla: opennet.ru
