Uitgave van Bubblewrap 0.4.0, een laag voor het creëren van geïsoleerde omgevingen

Beschikbaar nieuwe release van de toolkit Noppenfolie 0.4.0, ontworpen om het werk van geïsoleerde omgevingen in Linux te organiseren en te werken op applicatieniveau van niet-bevoorrechte gebruikers. In de praktijk wordt Bubblewrap door het Flatpak-project gebruikt als een laag om applicaties te isoleren die vanuit pakketten worden gestart. De projectcode is geschreven in C en gedistribueerd door gelicentieerd onder LGPLv2+.

Voor isolatie worden traditionele Linux containervirtualisatietechnologieën gebruikt, gebaseerd op het gebruik van cgroups, namespaces, Seccomp en SELinux. Om bevoorrechte bewerkingen uit te voeren om een ​​container te configureren, wordt Bubblewrap gestart met rootrechten (een uitvoerbaar bestand met een suid-vlag) en worden vervolgens de bevoegdheden opnieuw ingesteld nadat de container is geïnitialiseerd.

Activering van gebruikersnaamruimten in het naamruimtesysteem, waardoor u uw eigen afzonderlijke set ID's in containers kunt gebruiken, is niet vereist voor de werking, omdat het in veel distributies niet standaard werkt (Bubblewrap is gepositioneerd als een beperkte suid-implementatie van een subset van mogelijkheden voor gebruikersnaamruimten - om alle gebruikers- en proces-ID's uit de omgeving uit te sluiten, behalve de huidige, worden de modi CLONE_NEWUSER en CLONE_NEWPID gebruikt). Voor extra bescherming, uitvoerbaar onder controle
Bubblewrap-programma's worden gestart in de PR_SET_NO_NEW_PRIVS-modus, waardoor het verkrijgen van nieuwe rechten niet mogelijk is, bijvoorbeeld als de setuid-vlag aanwezig is.

Isolatie op bestandssysteemniveau wordt bereikt door standaard een nieuwe mount-naamruimte te maken, waarin een lege rootpartitie wordt gemaakt met behulp van tmpfs. Indien nodig worden externe FS-partities aan deze partitie gekoppeld in de “mount —bind”-modus (als het bijvoorbeeld wordt gestart met de optie “bwrap —ro-bind /usr /usr”, wordt de /usr-partitie doorgestuurd vanaf het hoofdsysteem in alleen-lezen-modus). De netwerkmogelijkheden zijn beperkt tot toegang tot de loopback-interface met netwerkstackisolatie via de vlaggen CLONE_NEWNET en CLONE_NEWUTS.

Belangrijk verschil met een soortgelijk project Brandgevangenis, dat ook een setuid-lanceringsmodel gebruikt, is dat in Bubblewrap de laag voor het maken van containers alleen de noodzakelijke minimale mogelijkheden bevat, en dat alle geavanceerde functies die nodig zijn voor het uitvoeren van grafische applicaties, interactie met de desktop en het filteren van oproepen naar Pulseaudio, uitbesteed zijn aan Flatpak en worden uitgevoerd nadat de rechten zijn gereset. Firejail daarentegen combineert alle gerelateerde functies in één uitvoerbaar bestand, wat het moeilijk maakt om de beveiliging te controleren en te handhaven. juiste niveau.

De nieuwe release valt op door de implementatie van ondersteuning voor het samenvoegen van bestaande gebruikersnaamruimten en procespid-naamruimten. Om de verbinding van naamruimten te controleren, zijn de vlaggen “--userns”, “--userns2” en “-pidns” toegevoegd.
Deze functie werkt niet in de setuid-modus en vereist het gebruik van een aparte modus die kan werken zonder rootrechten te verkrijgen, maar vereist activering
gebruikersnaamruimten op het systeem (standaard uitgeschakeld op Debian en RHEL/CentOS) en sluit de mogelijkheid niet uit exploitatie mogelijk overig kwetsbaarheden voor de beperkingsrand voor "gebruikersnaamruimten". Nieuwe features van Bubblewrap 0.4 omvatten ook de mogelijkheid om te bouwen met de musl C-bibliotheek in plaats van glibc en ondersteuning voor het opslaan van naamruimte-informatie in een bestand met statistieken in JSON-formaat.

Bron: opennet.ru

Voeg een reactie