Release av Bubblewrap 0.4.0, ett lager för att skapa isolerade miljöer

Tillgängliga ny utgåva av verktygslådan Bubbelplast 0.4.0, utformad för att organisera arbetet i isolerade miljöer i Linux och fungerar på applikationsnivå för oprivilegierade användare. I praktiken används Bubblewrap av Flatpak-projektet som ett lager för att isolera applikationer som startas från paket. Projektkoden är skriven i C och levererad av under LGPLv2+-licensen.

För isolering används traditionell Linux-containervirtualiseringsteknik, baserad på användningen av cgroups, namespaces, Seccomp och SELinux. För att utföra privilegierade operationer för att konfigurera en behållare, startas Bubblewrap med roträttigheter (en körbar fil med en suid-flagga) och återställer sedan privilegier efter att behållaren har initierats.

Aktivering av användarnamnrymder i systemet, vilket gör att containrar kan använda sina egna separata identifierare, krävs inte för drift, eftersom det inte fungerar som standard i många distributioner (Bubblewrap är positionerat som en begränsad suid-implementering av en delmängd av användarnamnrymdernas funktioner - för att exkludera alla användar- och processidentifierare från miljön förutom den aktuella, används lägena CLONE_NEWUSER och CLONE_NEWPID). För ytterligare skydd används körbara filer som kontrolleras av
Bubblewrap-program körs i PR_SET_NO_NEW_PRIVS-läge, vilket förhindrar att nya behörigheter erhålls, till exempel om setuid-flaggan finns.

Isolering på filsystemnivå åstadkoms genom att skapa ett nytt monteringsnamnområde som standard, där en tom rotpartition skapas med tmpfs. Vid behov kopplas externa FS-partitioner till denna partition i "mount —bind"-läget (till exempel när den startas med alternativet "bwrap —ro-bind /usr /usr", vidarebefordras /usr-partitionen från huvudsystemet i skrivskyddat läge). Nätverkskapaciteten är begränsad till åtkomst till loopback-gränssnittet med nätverksstackisolering via flaggorna CLONE_NEWNET och CLONE_NEWUTS.

Huvudskillnad från ett liknande projekt Brandfängelse, som också använder en setuid-lanseringsmodell, är att i Bubblewrap inkluderar containerskapandelagret endast de nödvändiga minimifunktionerna, och alla avancerade funktioner som krävs för att starta grafiska applikationer, interagera med skrivbordet och filtrera Pulseaudio-förfrågningar flyttas till Flatpak-sidan och körs efter att behörigheterna har återställts. Firejail, å andra sidan, kombinerar alla relaterade funktioner i en enda körbar fil, vilket komplicerar dess granskning och upprätthållande av säkerhet på på rätt nivå.

Den nya utgåvan är känd för implementeringen av stöd för att koppla befintliga användarnamnrymder och pid-namnrymder. Flaggorna "--userns", "--userns2" och "--pidns" har lagts till för att kontrollera kopplingen av namnrymder.
Den här funktionen fungerar inte i setuid-läge och kräver ett separat läge som kan fungera utan att erhålla root-rättigheter, men kräver aktivering.
användarnamnrymder i systemet (inaktiverat som standard i Debian och RHEL/CentOS) och utesluter inte möjligheten utnyttjande potentiellt återstående sårbarheter för att kringgå begränsningarna för "användarnamnrymder". Nya funktioner i Bubblewrap 0.4 inkluderar även möjligheten att bygga med musl C-biblioteket istället för glibc och stöd för att spara namnrymdsinformation till en JSON-statistikfil.

Källa: opennet.ru

Köp pålitlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster