Bubblewrap, een tool voor het maken van applicaties in geïsoleerde omgevingen

Bubblewrap is een hulpmiddel wat werkt om sandbox-werk op Linux te organiseren en loop op applicatieniveau van niet-geprivilegieerde gebruikers. In de praktijk wordt Bubblewrap door het Flatpak-project gebruikt als tussenlaag om vanuit softwarepakketten gestarte applicaties te isoleren.

Voor isolatie gebruikt Linux virtualisatietechnologieën van traditionele containers gebaseerd op het gebruik van cgroups, namespaces, Seccomp en SELinux. Om geprivilegieerde bewerkingen uit te voeren om een ​​container te configureren, wordt Bubblewrap gestart met root-privileges (een uitvoerbaar bestand met een suid-vlag), gevolgd door een privilege-reset nadat de container is geïnitialiseerd.

Het is niet nodig om gebruikersnaamruimten op het systeem in te schakelen, zodat u uw eigen set id's in containers kunt gebruiken, omdat het standaard niet op veel distributies werkt.

Over Bubblewrap

Bubblewrap wordt gepositioneerd als een beperkte suida-implementatie uit de subset van de gebruikersnaamruimtefuncties om alle gebruikers- en proces-ID's van de omgeving uit te sluiten, behalve de huidige, gebruik de modi CLONE_NEWUSER en CLONE_NEWPID.

Voor extra bescherming, programma's die in Bubblewrap draaien, starten in de modus PR_SET_NO_NEW_PRIVS, die nieuwe privileges verbiedt, bijvoorbeeld met de vlag setuid.

Isolatie op bestandssysteemniveau wordt gedaan door standaard een nieuwe mount-naamruimte te maken, waarin een lege rootpartitie wordt gemaakt met behulp van tmpfs.

Indien nodig worden de externe FS-secties aan deze sectie in de «mount - bind»(Begin bijvoorbeeld met de optie«bwrap –ro-bind / usr / usr', De / usr-sectie wordt doorgestuurd vanaf de host in de modus alleen-lezen).

De netwerkmogelijkheden zijn beperkt tot toegang tot de loopback-interface omgekeerd met netwerkstackisolatie via indicatoren CLONE_NEWNET en CLONE_NEWUTS.

Het belangrijkste verschil met het vergelijkbare Firejail-project, die ook de setuid launcher gebruikt, is dat in Bubblewrap, de containerlaag bevat alleen de minimaal noodzakelijke kenmerken en alle geavanceerde functies die nodig zijn om grafische applicaties te starten, interactie met de desktop en filteroproepen naar Pulseaudio, worden naast Flatpak gebracht en uitgevoerd nadat de rechten zijn gereset.

Firejail daarentegen combineert alle gerelateerde functies in één uitvoerbaar bestand, wat uw controle bemoeilijkt en de beveiliging op het juiste niveau houdt.

Bubblewrap werkt in principe door de het creëren van een lege mount-naamruimte op een tijdelijk bestandssysteem die wordt vernietigd nadat de sandbox-verwerking is voltooid.

Door het gebruik van schakelaars kan de gebruiker de gewenste bestandssysteemomgeving bouwen binnen de mount-naamruimte door te mounten op de link van de gewenste mappen van het hostsysteem.

Noppenfolie 0.4.0

Bubblewrap is momenteel in versie 0.4.0 die onlangs werd uitgebracht. De projectcode is geschreven in C en gedistribueerd onder de LGPLv2 + -licentie.

De nieuwe versie is opmerkelijk voor de implementatie van ondersteuning voor het toetreden tot de naamruimten en processen bestaande gebruikers (pid-naamruimten).

De vlaggen "–userns", "–userns2" en "–pidns" zijn toegevoegd om de verbinding van namespaces te regelen.

Deze functie werkt niet in de setuid-modus en vereist een aparte modus die kan werken zonder root-privileges, maar vereist dat de naamruimten van gebruikers zijn ingeschakeld op het systeem (standaard uitgeschakeld op Debian en RHEL / CentOS) en sluit de mogelijkheid niet uit om potentieel te exploiteren resterende kwetsbaarheden aan de rand van "user namespaces" beperkingen.

Van de nieuwe functies van Bubblewrap 0.4, de mogelijkheid om te bouwen met de musl C-bibliotheek in plaats van glibc wordt ook waargenomen, en ondersteuning voor het opslaan van naamruimtegegevens in een statistiekbestand in JSON-indeling.

De Bubblewrap-code, evenals de documentatie erover, kan worden geraadpleegd op Github, de link is dit.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.