Udgivelse af Bubblewrap 0.4.0, et lag til at skabe isolerede miljøer

Ledig ny udgivelse af værktøjssættet Bobleplast 0.4.0, designet til at organisere arbejdet i isolerede miljøer i Linux og fungerer på applikationsniveau for ikke-privilegerede brugere. I praksis bruges Bubblewrap af Flatpak-projektet som et lag til at isolere applikationer, der startes fra pakker. Projektkoden er skrevet i C og distribueret af under LGPLv2+-licensen.

Til isolering anvendes traditionelle Linux-containervirtualiseringsteknologier baseret på brugen af ​​cgroups, namespaces, Seccomp og SELinux. For at udføre privilegerede handlinger for at konfigurere en container, startes Bubblewrap med root-rettigheder (en eksekverbar fil med et suid-flag) og nulstiller derefter privilegier, efter at containeren er initialiseret.

Aktivering af brugernavneområder i systemet, som tillader containere at bruge deres eget separate sæt af identifikatorer, er ikke påkrævet for drift, da det ikke fungerer som standard i mange distributioner (Bubblewrap er positioneret som en begrænset suid-implementering af en delmængde af brugernavneområders funktioner - for at ekskludere alle bruger- og procesidentifikatorer fra miljøet undtagen det aktuelle, bruges tilstandene CLONE_NEWUSER og CLONE_NEWPID). For yderligere beskyttelse kan eksekverbare filer under kontrol af
Bubblewrap-programmer kører i PR_SET_NO_NEW_PRIVS-tilstand, som forbyder at få nye rettigheder, for eksempel hvis setuid-flaget er til stede.

Isolering på filsystemniveau opnås ved at oprette et nyt mount-navneområde som standard, hvor en tom rodpartition oprettes ved hjælp af tmpfs. Hvis det er nødvendigt, er eksterne FS-partitioner knyttet til denne partition i "mount —bind"-tilstand (for eksempel, når den startes med "bwrap —ro-bind /usr /usr", videresendes /usr-partitionen fra hovedsystemet i skrivebeskyttet tilstand). Netværkskapaciteter er begrænset til adgang til loopback-grænsefladen med netværksstackisolering via flagene CLONE_NEWNET og CLONE_NEWUTS.

Hovedforskel fra et lignende projekt Ildfængsel, som også bruger en setuid-lanceringsmodel, er, at i Bubblewrap indeholder containeroprettelseslaget kun de nødvendige minimumsfunktioner, og alle de avancerede funktioner, der kræves for at starte grafiske applikationer, interagere med skrivebordet og filtrere Pulseaudio-anmodninger, flyttes til Flatpak-siden og udføres, efter at privilegierne er nulstillet. Firejail kombinerer derimod alle de relaterede funktioner i en enkelt eksekverbar fil, hvilket komplicerer dens revision og vedligeholdelse af sikkerheden. på det rette niveau.

Den nye udgivelse er bemærkelsesværdig for implementeringen af ​​understøttelse af tilknytning af eksisterende brugernavnerum og pid-navnerum. Flagene "--userns", "--userns2" og "--pidns" er blevet tilføjet for at kontrollere tilknytningen af ​​navnerum.
Denne funktion fungerer ikke i setuid-tilstand og kræver brug af en separat tilstand, der kan fungere uden at få root-rettigheder, men kræver aktivering.
brugernavnerum i systemet (deaktiveret som standard i Debian og RHEL/CentOS) og udelukker ikke muligheden operation potentielt resterende sårbarheder for at omgå begrænsningerne for "brugernavnerum". Nye funktioner i Bubblewrap 0.4 inkluderer også muligheden for at bygge med musl C-biblioteket i stedet for glibc og understøttelse af at gemme navnerumsinformation i en JSON-statistikfil.

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster