A Bubblewrap 0.6 kiadása, egy elszigetelt környezetek létrehozására szolgáló réteg

Elérhető az elszigetelt környezetek munkájának megszervezésére szolgáló eszközök kiadása, a Bubblewrap 0.6, amelyet általában a nem jogosult felhasználók egyedi alkalmazásainak korlátozására használnak. A gyakorlatban a Bubblewrap-ot a Flatpak projekt rétegként használja a csomagokból indított alkalmazások elkülönítésére. A projekt kódja C nyelven íródott, és az LGPLv2+ licenc alatt kerül terjesztésre.

Az elkülönítéshez hagyományos Linux konténervirtualizációs technológiákat használnak, amelyek a cgroupok, névterek, Seccomp és SELinux használatán alapulnak. A tároló konfigurálásához szükséges privilegizált műveletek végrehajtásához a Bubblewrap root jogokkal indul (egy futtatható fájl suid jelzővel), majd a tároló inicializálása után visszaállítja a jogosultságokat.

A működéshez nem szükséges a felhasználói névterek aktiválása a névtérrendszerben, amely lehetővé teszi a saját, különálló azonosítókészletek használatát a tárolókban, mivel sok disztribúcióban alapértelmezés szerint nem működik (a Bubblewrap egy korlátozottan használható megvalósításaként van elhelyezve. felhasználói névterek képességeinek részhalmaza – az összes felhasználói és folyamatazonosító kizárásához a környezetből, kivéve az aktuálisat, a CLONE_NEWUSER és CLONE_NEWPID módok használatosak). A további védelem érdekében a Bubblewrap alatt végrehajtott programok PR_SET_NO_NEW_PRIVS módban indulnak el, ami tiltja az új jogosultságok megszerzését, például ha a setuid jelző jelen van.

A fájlrendszer szintű elkülönítés alapértelmezés szerint egy új beillesztési névtér létrehozásával valósul meg, amelyben egy üres gyökérpartíció jön létre a tmpfs használatával. Ha szükséges, külső FS-partíciókat csatolunk ehhez a partícióhoz „mount —bind” módban (például ha a „bwrap –ro-bind /usr /usr” opcióval indítjuk, a /usr partíció a fő rendszerről továbbítódik csak olvasható módban). A hálózati képességek a CLONE_NEWNET és a CLONE_NEWUTS jelzőkön keresztül történő hálózati veremszigeteléssel ellátott loopback interfész elérésére korlátozódnak.

A legfontosabb különbség a hasonló, szintén setuid indítási modellt használó Firejail projekthez képest az, hogy a Bubblewrap-ban a konténerkészítő réteg csak a szükséges minimális képességeket tartalmazza, és a grafikus alkalmazások futtatásához, az asztallal való interakcióhoz és a szűrési kérésekhez szükséges összes speciális funkciót. a Pulseaudio-ra, átkerül a Flatpak oldalra, és a jogosultságok visszaállítása után végrehajtódik. A Firejail ezzel szemben az összes kapcsolódó funkciót egyetlen végrehajtható fájlban egyesíti, ami megnehezíti a biztonság megfelelő szintű ellenőrzését és fenntartását.

Az új kiadásban:

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

Forrás: opennet.ru

Hozzászólás