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, eksekverbar under kontrol
Bubblewrap-programmer lanceres i PR_SET_NO_NEW_PRIVS-tilstand, som forbyder at opnå 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.
Hovedforskel fra et lignende projekt
Den nye udgivelse er bemærkelsesværdig for implementeringen af understøttelse af sammenføjning af eksisterende brugernavne- og proces-pid-navneområder. For at styre forbindelsen af navnerum er flagene "--userns", "--userns2" og "-pidns" blevet tilføjet.
Denne funktion virker ikke i setuid-tilstand og kræver brug af en separat tilstand, der kan fungere uden at opnå root-rettigheder, men kræver aktivering
brugernavneområder på systemet (deaktiveret som standard på Debian og RHEL/CentOS) og udelukker ikke muligheden
Kilde: opennet.ru