Vrystelling van Bubblewrap 0.6, lae vir die skep van sandbox-omgewings

'n Vrystelling van gereedskap vir die organisering van die werk van geïsoleerde omgewings Bubblewrap 0.6 is beskikbaar, gewoonlik gebruik om individuele toepassings van onbevoorregte gebruikers te beperk. In die praktyk word Bubblewrap deur die Flatpak-projek gebruik as 'n laag om toepassings wat vanaf pakkette van stapel gestuur is, te isoleer. Die projekkode is in C geskryf en word onder die LGPLv2+-lisensie versprei.

Vir isolasie word tradisionele Linux-houervirtualiseringstegnologieë gebruik, gebaseer op die gebruik van cgroups, naamruimtes, Seccomp en SELinux. Om bevoorregte bewerkings uit te voer om 'n houer te konfigureer, word Bubblewrap geloods met wortelregte ('n uitvoerbare lêer met 'n suid vlag) en stel dan voorregte terug nadat die houer geïnisialiseer is.

Aktivering van gebruikernaamruimtes in die naamruimtestelsel, wat jou toelaat om jou eie afsonderlike stel identifiseerders in houers te gebruik, is nie nodig vir werking nie, aangesien dit nie by verstek in baie verspreidings werk nie (Bubblewrap is geposisioneer as 'n beperkte suid-implementering van 'n subset van gebruikernaamruimte-vermoëns - om alle gebruiker- en prosesidentifiseerders uit die omgewing uit te sluit, behalwe die huidige een, word die CLONE_NEWUSER- en CLONE_NEWPID-modusse gebruik). Vir bykomende beskerming word programme wat onder Bubblewrap uitgevoer word, in die PR_SET_NO_NEW_PRIVS-modus geloods, wat die verkryging van nuwe voorregte verbied, byvoorbeeld as die setuid-vlag teenwoordig is.

Isolasie op die lêerstelselvlak word bewerkstellig deur die skep van 'n nuwe bergnaamruimte by verstek, waarin 'n leë wortelpartisie geskep word met tmpfs. Indien nodig, word eksterne FS-partisies aan hierdie partisie gekoppel in die "mount —bind"-modus (byvoorbeeld, wanneer dit met die "bwrap —ro-bind /usr /usr"-opsie geloods word, word die /usr-partisie van die hoofstelsel aangestuur in leesalleenmodus). Netwerkvermoëns is beperk tot toegang tot die teruglus-koppelvlak met netwerkstapel-isolasie via die CLONE_NEWNET- en CLONE_NEWUTS-vlae.

Die belangrikste verskil van die soortgelyke Firejail-projek, wat ook die setuid-bekendstellingsmodel gebruik, is dat in Bubblewrap die houerskeppingslaag slegs die nodige minimum vermoëns bevat, en al die gevorderde funksies wat nodig is vir die uitvoer van grafiese toepassings, interaksie met die lessenaar en filterversoeke na Pulseaudio, na die Flatpak-kant oorgeplaas en uitgevoer nadat die voorregte teruggestel is. Firejail, aan die ander kant, kombineer al die verwante funksies in een uitvoerbare lêer, wat dit moeilik maak om sekuriteit op die regte vlak te oudit en te handhaaf.

In die nuwe vrystelling:

  • Bygevoeg ondersteuning vir die Meson-samestellingstelsel. Ondersteuning vir bou met Autotools is vir nou behou, maar sal in 'n toekomstige vrystelling verwyder word.
  • Implementeer "--add-seccomp" opsie om meer as een seccomp program by te voeg. Het 'n waarskuwing bygevoeg dat as jy die "--seccomp" opsie weer spesifiseer, net die laaste parameter toegepas sal word.
  • Die hooftak in die git-bewaarplek is hernoem na hoof.
  • Gedeeltelike ondersteuning bygevoeg vir die REUSE-spesifikasie, wat die proses om lisensie- en kopiereginligting te spesifiseer, verenig. Baie kodelêers het SPDX-License-Identifier-opskrifte bygevoeg. Om die HERGEBRUIK-riglyne te volg, maak dit makliker om outomaties te bepaal watter lisensie van toepassing is op watter dele van die aansoekkode.
  • Bygevoeg om die waarde van die opdragreëlargumentteller (argc) na te gaan en 'n nooduitgang geïmplementeer as die teller nul is. Die verandering help om sekuriteitskwessies te blokkeer wat veroorsaak word deur die verkeerde hantering van geslaagde opdragreëlargumente, soos CVE-2021-4034 in Polkit.

Bron: opennet.ru

Voeg 'n opmerking