Нашри Bubblewrap 0.6, қабат барои эҷоди муҳити ҷудошуда

Нашри асбобҳо барои ташкили кори муҳитҳои ҷудогона Bubblewrap 0.6 дастрас аст, ки одатан барои маҳдуд кардани барномаҳои инфиродии корбарони беимтиёз истифода мешавад. Дар амал, Bubblewrap аз ҷониби лоиҳаи Flatpak ҳамчун қабат барои ҷудо кардани замимаҳои аз бастаҳо оғозшуда истифода мешавад. Рамзи лоиҳа дар C навишта шудааст ва таҳти иҷозатномаи LGPLv2+ паҳн карда мешавад.

Барои ҷудокунӣ, технологияҳои анъанавии виртуализатсияи контейнерии Linux истифода мешаванд, ки дар асоси истифодаи гурӯҳҳо, фазоҳои номҳо, Seccomp ва SELinux истифода мешаванд. Барои иҷрои амалиёти имтиёзнок барои танзими контейнер, Bubblewrap бо ҳуқуқи реша (файли иҷрошаванда бо парчами suid) оғоз карда мешавад ва пас аз оғоз кардани контейнер имтиёзҳоро аз нав барқарор мекунад.

Фаъолсозии фазоҳои корбар дар системаи фазои номҳо, ки ба шумо имкон медиҳад маҷмӯи алоҳидаи идентификаторҳои худро дар контейнерҳо истифода баред, барои кор талаб карда намешавад, зеро он дар бисёр дистрибюторҳо ба таври нобаёнӣ кор намекунад (Bubblewrap ҳамчун амалисозии маҳдуди суиди зермаҷмӯи қобилиятҳои фазоҳои номи корбар - барои хориҷ кардани ҳама идентификаторҳои корбар ва раванд аз муҳит, ба истиснои ҳолати ҷорӣ, режимҳои 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 маҳдуданд.

Тафовути калидӣ аз лоиҳаи шабеҳи Firejail, ки модели оғозёбии setuid-ро низ истифода мебарад, дар он аст, ки дар 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

Илова Эзоҳ