Bubblewrap, ett verktyg för att skapa applikationer i isolerade miljöer

Bubblewrap är ett verktyg vad fungerar att organisera sandlåda på Linux och spring på applikationsnivå för icke-privilegierade användare. I praktiken används Bubblewrap av Flatpak-projektet som ett mellanlager för att isolera applikationer som startas från mjukvarupaket.

För isolering använder Linux virtualiseringstekniker av traditionella behållare baserat på användningen av cgroups, namespaces, Seccomp och SELinux. För att utföra privilegierade åtgärder för att konfigurera en container startas Bubblewrap med root-behörigheter (en körbar fil med en suid-flagga), följt av en återställning av behörighet efter att behållaren har initierats.

Det finns inget behov av att aktivera användarnamnsytor i systemet, så att du kan använda din egen uppsättning id: er i behållare, eftersom det som standard inte fungerar på många distributioner.

Om Bubblewrap

Bubblewrap är positionerat som en begränsad suida-implementering från delmängden av användarnamnsfunktionerna för att utesluta alla användar- och process-ID från miljön utom den nuvarande, använd lägena CLONE_NEWUSER och CLONE_NEWPID.

För ytterligare skydd, program som körs i Bubblewrap startar i läget PR_SET_NO_NEW_PRIVS, som förbjuder nya privilegier, till exempel med setuid-flaggan.

Isolering på filsystemnivå görs genom att som standard skapa ett nytt monteringsnamnutrymme där en tom rotpartition skapas med tmpfs.

Vid behov bifogas de externa FS-sektionerna till detta avsnitt i «montera –bind»(Till exempel med början med alternativet«bwrap –ro-bind / usr / usr', Avsnittet / usr vidarebefordras från värden i skrivskyddat läge).

Nätverksfunktioner är begränsade till åtkomst till loopback-gränssnittet inverterad med nätverksstackisolering via indikatorer CLONE_NEWNET och CLONE_NEWUTS.

Huvudskillnaden med det liknande Firejail-projektet, som också använder setuid launcher, är det i Bubblewrap, behållarskiktet innehåller endast de minsta nödvändiga funktionerna och alla avancerade funktioner som krävs för att starta grafiska applikationer, interagera med skrivbordet och filtrera samtal till Pulseaudio, kommer till sidan av Flatpak och körs efter att behörigheter har återställts.

Firejail, å andra sidan, kombinerar alla relaterade funktioner i en körbar fil, komplicera din revision och hålla säkerheten på rätt nivå.

Bubblewrap fungerar i princip med hjälp av skapa ett tomt monteringsnamnområde i ett tillfälligt filsystem som förstörs när bearbetningen av sandlådan är klar.

Genom att använda omkopplare kan användaren bygga önskad filsystemmiljö i monteringsnamnområdet genom att montera på länken till önskade kataloger från värdsystemet.

Bubbelplast 0.4.0

Bubblewrap finns för närvarande i sin version 0.4.0 som nyligen släpptes. Projektkoden är skriven i C och distribueras under LGPLv2 + -licensen.

Den nya versionen är anmärkningsvärt för implementeringen av stöd för att gå med i namnytorna och processerna befintliga användare (pid-namnområden).

Flaggorna "–userns", "–userns2" och "–pidns" har lagts till för att styra anslutningen av namnområden.

Den här funktionen fungerar inte i setuid-läge och kräver ett separat läge som kan fungera utan root-behörigheter, men kräver att användarnamnsområden är aktiverade på systemet (inaktiverat som standard på Debian och RHEL / CentOS) och utesluter inte möjligheten att utnyttja potentiellt kvarvarande sårbarheter till gränsen för "användarnamnsrymden" begränsningar.

Av de nya funktionerna i Bubblewrap 0.4, möjligheten att bygga med musl C-biblioteket istället för glibc observeras också, och stöd för att spara namnrymdinformation till en statistikfil i JSON-format.

Bubblewrap-koden, liksom dokumentationen om den, kan konsulteras på Github, länken är den här.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.