Bubblewrap 0.4.0-release, laag voor het creëren van geïsoleerde omgevingen

Beschikbaar nieuwe release van het hulpmiddel Bubblewrap 0.4.0, bedoeld voor het beheren van geĆÆsoleerde omgevingen in Linux en functioneert op het niveau van toepassingen van niet-geprivilegieerde gebruikers. In de praktijk wordt Bubblewrap gebruikt door het Flatpak-project als een laag voor de isolatie van applicaties die uit pakketten worden uitgevoerd. De code van het project is geschreven in C en wordt verspreid gepublish onder de LGPLv2+ licentie.

Voor isolatie worden traditionele Linux-technologieƫn voor containervirtualisatie gebruikt, gebaseerd op cgroups, namespaces, Seccomp en SELinux. Om geprivilegieerde operaties voor het instellen van de container uit te voeren, wordt Bubblewrap met root-rechten uitgevoerd (uitvoerbare bestanden met de suid-vlag) en worden de privileges na de initialisatie van de container weer teruggezet.

Activatie van gebruiker namespaces in het systeem, die het gebruik van een eigen set identificators in containers mogelijk maakt, is niet vereist voor gebruik, omdat het standaard niet functioneert in veel distributies (Bubblewrap wordt gepositioneerd als een beperkte suid-implementatie van een subset van de mogelijkheden van gebruiker namespaces — om alle identificators van gebruikers en processen uit de omgeving, behalve de huidige, uit te sluiten, worden de modi CLONE_NEWUSER en CLONE_NEWPID gebruikt). Voor aanvullende bescherming worden programma's die onder leiding van
Bubblewrap worden uitgevoerd, in de PR_SET_NO_NEW_PRIVS-modus uitgevoerd, die het verkrijgen van nieuwe privileges verbiedt, bijvoorbeeld bij het hebben van de setuid-vlag.

Isolatie op het niveau van het bestandssysteem wordt gerealiseerd door standaard het creƫren van een nieuwe namespace voor mountpunten, waarin een lege root-partitie wordt aangemaakt met behulp van tmpfs. In deze partitie worden indien nodig externe bestandssysteem-partities gekoppeld in de modus 'mount --bind' (bijvoorbeeld bij uitvoering met de optie 'bwrap --ro-bind /usr /usr' wordt de partitie /usr vanuit het hoofd systeem in alleen-lezen modus doorgegeven). Netwerkfunctionaliteiten worden beperkt tot toegang tot de loopback-interface met isolatie van de netwerkstack via de vlaggen CLONE_NEWNET en CLONE_NEWUTS.

Een belangrijk verschil met een vergelijkbaar project Firejail, dat ook het setuid-model voor uitvoering gebruikt, is dat in Bubblewrap de laag voor het creƫren van containers alleen het noodzakelijke minimum aan mogelijkheden omvat, terwijl alle uitgebreide functies die nodig zijn voor het uitvoeren van grafische applicaties, interactie met de werkplek en filtering van verzoeken aan Pulseaudio, aan de kant van Flatpak zijn geplaatst en pas na het terugzetten van de privileges worden uitgevoerd. Firejail daarentegen verenigt in ƩƩn uitvoerbaar bestand alle bijbehorende functies, waardoor het moeilijker wordt om het te auditen en de beveiliging op het juiste niveau te houden.

De nieuwe release is opmerkelijk door de implementatie van ondersteuning voor het aansluiten van bestaande gebruikersnamenruimten (user namespaces) en procesruimten (pid namespaces). Voor het beheer van deze verbindingen zijn de vlaggen ā€˜ā€”userns’, ā€˜ā€”userns2’ en ā€˜ā€”pidns’ toegevoegd.
Deze functionaliteit werkt niet in de setuid-modus en vereist een aparte modus die zonder root-rechten kan functioneren, maar die activatie vereist.
user namespaces in het systeem (standaard uitgeschakeld in Debian en RHEL/CentOS), en sluit niet de mogelijkheid uit uitbuiting potentieel blijvende kwetsbaarheden voor de rand van de beperkingen van ā€˜user namespaces’. Van de nieuwe mogelijkheden in Bubblewrap 0.4 valt ook de mogelijkheid op om te bouwen met de C-bibliotheek musl in plaats van glibc, en ondersteuning voor het opslaan van informatie over namespaces in een gegevensbestand in JSON-formaat.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster