Bubblewrap 0.6 релизи, кумкоргон чөйрөлөрдү түзүү үчүн катмарлар

Булбул 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 желектери аркылуу тармактык стек изоляциясы менен кайра цикл интерфейсине жетүү менен чектелген.

Окшош 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.

Source: opennet.ru

Комментарий кошуу