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

En udgivelse af værktøjer til at organisere arbejdet i isolerede miljøer Bubblewrap 0.8 er tilgængelig, som normalt bruges til at begrænse individuelle applikationer fra uprivilegerede brugere. I praksis bruges Bubblewrap af Flatpak-projektet som et lag til at isolere applikationer lanceret fra pakker. Projektkoden er skrevet i C og distribueres 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 navnerumssystemet, som giver dig mulighed for at bruge dit eget separate sæt af identifikatorer i containere, er ikke påkrævet for drift, da det ikke fungerer som standard i mange distributioner (Bubblewrap er placeret som en begrænset suid-implementering af en undersæt af brugernavne-funktioner - for at udelukke alle bruger- og procesidentifikatorer fra miljøet, undtagen den nuværende, bruges tilstandene CLONE_NEWUSER og CLONE_NEWPID). For yderligere beskyttelse lanceres programmer, der udføres under Bubblewrap, i PR_SET_NO_NEW_PRIVS-tilstanden, som forbyder erhvervelse af nye privilegier, 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.

Den vigtigste forskel fra det lignende Firejail-projekt, som også bruger setuid-lanceringsmodellen, er, at i Bubblewrap indeholder containeroprettelseslaget kun de nødvendige minimumsfunktioner og alle de avancerede funktioner, der er nødvendige for at køre grafiske applikationer, interagere med skrivebordet og filtreringsanmodninger til Pulseaudio, overført til Flatpak-siden og udført efter at privilegierne er blevet nulstillet. Firejail på den anden side kombinerer alle de relaterede funktioner i én eksekverbar fil, hvilket gør det vanskeligt at revidere og vedligeholde sikkerheden på det rigtige niveau.

I den nye udgivelse:

  • Tilføjet muligheden "--disable-userns" for at deaktivere oprettelsen af ​​sit eget indlejrede brugernavneområde i sandkassemiljøet.
  • Tilføjet "--assert-userns-disabled" mulighed for at kontrollere, at et eksisterende bruger-id-rum bruges, når du bruger "--disable-userns".
  • Informationsindholdet i fejlmeddelelser relateret til deaktivering af CONFIG_SECCOMP- og CONFIG_SECCOMP_FILTER-indstillingerne i kernen er blevet øget.

Kilde: opennet.ru

Tilføj en kommentar