Utgåvan av Bubblewrap 0.8, ett lager för att skapa isolerade miljöer

Version 0.8 av verktyget för att organisera arbete i isolerade miljöer Bubblewrap finns tillgänglig, vanligtvis använt för att begränsa enskilda applikationer av ickebehöriga användare. I praktiken används Bubblewrap av projektet Flatpak som ett lager för att isolera 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.

I den nya utgåvan:

  • En option "—disable-userns" har lagts till, som inaktiverar skapandet av en egen inre användaridentifieringsrymd (user namespace) i sandbox-miljön.
  • En option "—assert-userns-disabled" har lagts till för att kontrollera att när alternativet "—disable-userns" används, finns det ett existerande användaridentifieringsrymd.
  • Informationsinnehållet i felmeddelandena relaterade till avstängning av inställningarna CONFIG_SECCOMP och CONFIG_SECCOMP_FILTER i kärnan har ökats.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster