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

De release van de Bubblewrap-toolkit 0.8 is beschikbaar, die doorgaans wordt gebruikt om afzonderlijke applicaties van niet-geprivilegieerde gebruikers te beperken. In de praktijk wordt Bubblewrap gebruikt door het Flatpak-project als een laag voor isolatie van applicaties die uit pakketten worden uitgevoerd. De projectcode is geschreven in de programmeertaal C en wordt verspreid 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 in het systeem van gebruikers-id ruimte (user namespaces), waarmee in containers een eigen, afzonderlijke set id's kan worden gebruikt, is niet vereist voor het functioneren, omdat het standaard niet werkt in veel distributies (Bubblewrap wordt gepositioneerd als een beperkte suid-implementatie van een subset van de mogelijkheden van user namespaces - om alle id's van gebruikers en processen uit de omgeving, behalve de huidige, uit te sluiten, 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 verkrijgen van nieuwe privileges verbiedt, bijvoorbeeld bij aanwezigheid 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 een op setuid gebaseerde startmodel gebruikt, is dat de laag voor het creëren van containers in Bubblewrap alleen de absoluut noodzakelijke permissies omvat, terwijl alle geavanceerde functies die nodig zijn voor het uitvoeren van grafische applicaties, interactie met de desktop en filtering van verzoeken naar Pulseaudio, naar de kant van Flatpak zijn verplaatst en pas na het intrekken van de privileges worden uitgevoerd. Firejail daarentegen combineert alle bijbehorende functies in één uitvoerbaar bestand, wat het auditproces en het handhaven van veiligheid op een goed niveau bemoeilijkt.

In de nieuwe release:

  • Er is een optie toegevoegd, «—disable-userns», die het creëren van een eigen genestelde gebruikersnamespace in de sandbox-omgeving uitschakelt.
  • Er is een optie toegevoegd, «—assert-userns-disabled», waarmee gecontroleerd kan worden of een bestaand gebruikersnamespace wordt gebruikt wanneer de optie «—disable-userns» is ingeschakeld.
  • De informatiedichtheid van foutmeldingen met betrekking tot het uitschakelen van de kerninstellingen CONFIG_SECCOMP en CONFIG_SECCOMP_FILTER is verhoogd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster