Bubblewrap, et værktøj til oprettelse af applikationer i isolerede miljøer

Bubblewrap er et værktøj hvad der fungerer at organisere sandkassearbejde på Linux og løb på applikationsniveau for ikke-privilegerede brugere. I praksis bruges Bubblewrap af Flatpak-projektet som et mellemlag til at isolere applikationer, der er lanceret fra softwarepakker.

Til isolation bruger Linux virtualiseringsteknologier af traditionelle containere baseret på brugen af ​​cgroups, namespaces, Seccomp og SELinux. For at udføre privilegerede operationer for at konfigurere en container startes Bubblewrap med root-rettigheder (en eksekverbar fil med et suid-flag) efterfulgt af en nulstilling af privilegium, efter at containeren er initialiseret.

Der er ikke behov for at aktivere brugernavneområder på systemet, så du kan bruge dit eget sæt id'er i containere, da det som standard ikke fungerer på mange distributioner.

Om Bubblewrap

Bubblewrap er placeret som en begrænset suida-implementering fra delsættet af brugernavne-funktionerne for at ekskludere alle bruger- og proces-id'er fra miljøet undtagen den aktuelle, skal du bruge tilstande CLONE_NEWUSER og CLONE_NEWPID.

For yderligere beskyttelse, programmer, der kører i Bubblewrap, starter i tilstanden PR_SET_NO_NEW_PRIVS, der forbyder nye privilegier, for eksempel med setuid-flag.

Isolering på filsystemniveau sker ved at oprette et nyt monteringsnavne som standard, hvor en tom rodpartition oprettes ved hjælp af tmpfs.

Om nødvendigt er de eksterne FS-sektioner knyttet til dette afsnit i «monter –binde»(F.eks. Startende med indstillingen«bwrap –ro-bind / usr / usr', Afsnittet / usr videresendes fra værten i skrivebeskyttet tilstand).

Netværksfunktioner er begrænset til adgang til loopback-grænsefladen inverteret med netværksstakisolering via indikatorer CLONE_NEWNET og CLONE_NEWUTS.

Nøgleforskellen med det lignende Firejail-projekt, som også bruger setuid launcher, er det i Bubblewrap, beholderlaget indeholder kun de mindst nødvendige funktioner og alle de avancerede funktioner, der kræves for at starte grafiske applikationer, interagere med skrivebordet og filtrere opkald til Pulseaudio, bringes til siden af ​​Flatpak og køres efter at rettigheder er nulstillet.

Firejail kombinerer på den anden side alle relaterede funktioner i en eksekverbar fil, komplicerer din revision og holder sikkerheden på det rette niveau.

Bubblewrap fungerer grundlæggende ved hjælp af oprettelse af et tomt monteringsnavneområde på et midlertidigt filsystem som ødelægges, når sandkassebehandlingen er afsluttet.

Ved at bruge switche kan brugeren opbygge det ønskede filsystemmiljø inden for mount-navneområdet ved at montere på linket til de ønskede mapper fra værtssystemet.

Bobleplast 0.4.0

Bubblewrap er i øjeblikket i sin version 0.4.0, som for nylig blev frigivet. Projektkoden er skrevet i C og distribueret under LGPLv2 + -licensen.

Den nye version er bemærkelsesværdig for implementeringen af ​​support til sammenføjning af navneområder og processer eksisterende brugere (pid-navneområder).

Flagene "–userns", "–userns2" og "–pidns" er tilføjet for at kontrollere forbindelsen af ​​navneområder.

Denne funktion fungerer ikke i setuid-tilstand og kræver en separat tilstand, der kan arbejde uden root-rettigheder, men kræver, at brugernavneområder er aktiveret på systemet (deaktiveret som standard på Debian og RHEL / CentOS) og udelukker ikke muligheden for at udnytte potentielt resterende sårbarheder til kanten af ​​"brugernavneområder" begrænsninger.

Af de nye funktioner i Bubblewrap 0.4, muligheden for at bygge med musl C-biblioteket i stedet for glibc overholdes også, og support til lagring af navneområdet i en statistikfil i JSON-format.

Bubblewrap-koden samt dokumentationen om den kan findes på Github, linket er dette.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.