Release of Bubblewrap 0.6, lagen foar it meitsjen fan sandboxed omjouwings

De frijlitting fan ark foar it organisearjen fan it wurk fan isolearre omjouwings Bubblewrap 0.6 is beskikber, meastentiids brûkt om yndividuele applikaasjes fan unprivileged brûkers te beheinen. Yn 'e praktyk wurdt Bubblewrap brûkt troch it Flatpak-projekt as in laach om applikaasjes te isolearjen lansearre út pakketten. De projektkoade is skreaun yn C en wurdt ferspraat ûnder de LGPLv2+ lisinsje.

Foar isolaasje wurde tradisjonele Linux-container-virtualisaasjetechnologyen brûkt, basearre op it gebrûk fan cgroups, namespaces, Seccomp en SELinux. Om privileezje operaasjes út te fieren om in kontener te konfigurearjen, wurdt Bubblewrap lansearre mei rootrjochten (in útfierber bestân mei in suid-flagge) en set dan privileezjes werom nei't de kontener inisjalisearre is.

Aktivearring fan brûkersnammeromten yn it nammeromtesysteem, wêrtroch jo jo eigen aparte set identifiers yn konteners kinne brûke, is net fereaske foar operaasje, om't it net standert wurket yn in protte distribúsjes (Bubblewrap is gepositioneerd as in beheinde suid-ymplemintaasje fan in subset fan mooglikheden foar brûkersnammeromten - om alle brûkers- en prosesidentifiers út 'e omjouwing út te sluten, útsein de aktuele, wurde de CLONE_NEWUSER- en CLONE_NEWPID-modi brûkt). Foar ekstra beskerming wurde programma's útfierd ûnder Bubblewrap lansearre yn 'e PR_SET_NO_NEW_PRIVS-modus, dy't de oankeap fan nije privileezjes ferbiedt, bygelyks as de setuid-flagge oanwêzich is.

Isolaasje op it nivo fan bestânsysteem wurdt berikt troch standert in nije berch-nammeromte te meitsjen, wêryn in lege root-partysje wurdt makke mei tmpfs. As it nedich is, wurde eksterne FS-partysjes oan dizze partysje hechte yn 'e "mount —bind" modus (bygelyks, as lansearre mei de "bwrap -ro-bind /usr /usr" opsje, wurdt de /usr partition trochstjoerd fan it haadsysteem yn allinich-lêsmodus). Netwurkmooglikheden binne beheind ta tagong ta de loopback-ynterface mei netwurkstack-isolaasje fia de flaggen CLONE_NEWNET en CLONE_NEWUTS.

It wichtichste ferskil fan it ferlykbere Firejail-projekt, dat ek it setuid-lansearringsmodel brûkt, is dat yn Bubblewrap de kontenerskeppingslaach allinich de nedige minimale mooglikheden omfettet, en alle avansearre funksjes dy't nedich binne foar it útfieren fan grafyske applikaasjes, ynteraksje mei it buroblêd en filteroanfragen nei Pulseaudio, oerdroegen oan 'e Flatpak-kant en útfierd nei't de privileezjes weromset binne. Firejail, oan 'e oare kant, kombinearret alle relatearre funksjes yn ien útfierber bestân, wat it dreech makket om feiligens op it juste nivo te kontrolearjen en te behâlden.

Yn de nije release:

  • Stipe tafoege foar it Meson-assemblagesysteem. Stipe foar bouwen mei Autotools is foar no bewarre bleaun, mar sil yn in takomstige release fuortsmiten wurde.
  • Implementearre "--add-seccomp" opsje om mear as ien seccomp-programma ta te foegjen. In warskôging tafoege dat as jo de opsje "--seccomp" nochris oantsjutte, allinich de lêste parameter tapast wurdt.
  • De mastertûke yn it git-repository is omneamd ta main.
  • Diellike stipe tafoege foar de REUSE-spesifikaasje, dy't it proses fan it opjaan fan lisinsje- en copyrightynformaasje ferieniget. In protte koadebestannen hawwe SPDX-License-Identifier-headers tafoege. It folgjen fan de REUSE-rjochtlinen makket it makliker om automatysk te bepalen hokker lisinsje jildt foar hokker dielen fan 'e applikaasjekoade.
  • Tafoege kontrolearjen fan de wearde fan de kommandorigel argumint teller (argc) en ymplemintearre in needútgong as de teller is nul. De wiziging helpt befeiligingsproblemen te blokkearjen feroarsake troch ferkearde ôfhanneling fan trochjûne kommandorigelarguminten, lykas CVE-2021-4034 yn Polkit.

Boarne: opennet.ru

Add a comment