Bubblewrap 0.6 шығарылымы, оқшауланған орталарды жасауға арналған қабат

Оқшауланған орталардың жұмысын ұйымдастыруға арналған құралдардың шығарылымы Bubblewrap 0.6 қол жетімді, әдетте артықшылығы жоқ пайдаланушылардың жеке қолданбаларын шектеу үшін қолданылады. Іс жүзінде Bubblewrap Flatpak жобасымен пакеттерден іске қосылған қолданбаларды оқшаулау үшін қабат ретінде пайдаланылады. Жоба коды C тілінде жазылған және LGPLv2+ лицензиясы бойынша таратылады.

Оқшаулау үшін топтар, аттар кеңістігі, Seccomp және SELinux пайдалануға негізделген дәстүрлі Linux контейнерлік виртуалдандыру технологиялары қолданылады. Контейнерді конфигурациялау үшін артықшылықты әрекеттерді орындау үшін Bubblewrap түбірлік құқықтарымен (suid жалаушасы бар орындалатын файл) іске қосылады, содан кейін контейнер инициализацияланғаннан кейін артықшылықтарды қалпына келтіреді.

Контейнерлердегі жеке идентификаторлар жинағын пайдалануға мүмкіндік беретін аттар кеңістігі жүйесінде пайдаланушы аттар кеңістігін белсендіру жұмыс істеу үшін қажет емес, өйткені ол көптеген дистрибутивтерде әдепкі бойынша жұмыс істемейді (Bubblewrap шектеулі suid іске асыру ретінде орналасқан. пайдаланушы аттар кеңістігі мүмкіндіктерінің ішкі жиыны - ағымдағыдан басқа барлық пайдаланушы және процесс идентификаторларын ортадан шығару үшін CLONE_NEWUSER және CLONE_NEWPID режимдері пайдаланылады). Қосымша қорғау үшін Bubblewrap астында орындалған бағдарламалар PR_SET_NO_NEW_PRIVS режимінде іске қосылады, бұл жаңа артықшылықтарды алуға тыйым салады, мысалы, setuid жалаушасы бар болса.

Файлдық жүйе деңгейіндегі оқшаулау әдепкі бойынша tmpfs көмегімен бос түбірлік бөлім жасалған жаңа орнату аттар кеңістігін жасау арқылы орындалады. Қажет болса, сыртқы FS бөлімдері осы бөлімге «mount —bind» режимінде бекітіледі (мысалы, «bwrap —ro-bind /usr /usr» опциясымен іске қосылғанда, /usr бөлімі негізгі жүйеден қайта жіберіледі. тек оқуға арналған режимде). Желі мүмкіндіктері CLONE_NEWNET және CLONE_NEWUTS жалаушалары арқылы желілік стек оқшаулауы бар кері цикл интерфейсіне қол жеткізумен шектелген.

Сондай-ақ setuid іске қосу үлгісін қолданатын ұқсас Firejail жобасынан басты айырмашылығы, Bubblewrap-та контейнер жасау қабаты тек қажетті минималды мүмкіндіктерді және графикалық қолданбаларды іске қосу, жұмыс үстелімен әрекеттесу және сұрауларды сүзу үшін қажетті барлық кеңейтілген функцияларды қамтиды. Pulseaudio-ға, Flatpak жағына ауыстырылды және артықшылықтар қалпына келтірілгеннен кейін орындалады. Firejail, екінші жағынан, барлық қатысты функцияларды бір орындалатын файлға біріктіреді, бұл аудитті және қауіпсіздікті тиісті деңгейде сақтауды қиындатады.

Жаңа шығарылымда:

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

Ақпарат көзі: opennet.ru

пікір қалдыру