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

Er is een release van tools beschikbaar voor het organiseren van het werk van geïsoleerde omgevingen Bubblewrap 0.8, die meestal wordt gebruikt om individuele applicaties van niet-bevoorrechte gebruikers te beperken. 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 wordt gedistribueerd onder de LGPLv2+ licentie.

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 worden programma's die onder Bubblewrap worden uitgevoerd, gestart in de PR_SET_NO_NEW_PRIVS-modus, die het verwerven van nieuwe privileges verbiedt, 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.

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

In de nieuwe uitgave:

  • De optie “--disable-userns” toegevoegd om het aanmaken van een eigen geneste gebruikersnaamruimte in de sandbox-omgeving uit te schakelen.
  • Optie "--assert-userns-disabled" toegevoegd om te controleren of een bestaande gebruikers-ID-ruimte wordt gebruikt bij gebruik van de optie "--disable-userns".
  • De informatie-inhoud van foutmeldingen gerelateerd aan het uitschakelen van de CONFIG_SECCOMP- en CONFIG_SECCOMP_FILTER-instellingen in de kernel is verhoogd.

Bron: opennet.ru

Voeg een reactie