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:

  • Добавлена поддержка сборочной системы Meson. Поддержка сборки при помощи Autotools пока сохранена, но будет удалена в одном из следующих выпусков.
  • Реализована опция «—add-seccomp» для добавления более чем одной программы seccomp. Добавлено предупреждение о том, что при повторном указании опции «—seccomp» будет применён только последний параметр.
  • Ветка master в git-репозитории переименована в main.
  • Добавлена частичная поддержка спецификации REUSE, унифицирующей процесс указания сведений о лицензиях и авторских правах. Во многие файлы с кодом добавлены заголовки SPDX-License-Identifier. Следование рекомендациям REUSE позволяет упростить автоматическое определение какая лицензия применяется к каким из частей кода приложения.
  • Добавлена проверка значения счётчика аргументов командной строки (argc) и реализован экстренный выход в случае если счётчик равен нулю. Изменение позволяет блокировать проблемы с безопасностью, вызванные некорректной обработкой передаваемых аргументов командной строки, такие как CVE-2021-4034 в Polkit.

Bron: opennet.ru

Voeg 'n opmerking