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

Булбул 0.8 обочолонгон чөйрөлөрдүн ишин уюштуруу үчүн инструменттердин релизи бар, адатта артыкчылыктары жок колдонуучулардын жеке тиркемелерин чектөө үчүн колдонулат. Иш жүзүндө, 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, экинчи жагынан, бардык тиешелүү функцияларды бир аткарылуучу файлга бириктирет, бул текшерүүнү жана коопсуздукту тийиштүү деңгээлде сактоону кыйындатат.

Жаңы чыгарылышта:

  • Добавлена опция «—disable-userns» отключающая создание в sandbox-окружении своего вложенного пространства идентификаторов пользователей (user namespace).
  • Добавлена опция «—assert-userns-disabled» для проверки, что при использовании опции » —disable-userns» задействовано существующее пространство идентификаторов пользователей.
  • Повышена информативность сообщений об ошибках, связанных с отключением в ядре настроек CONFIG_SECCOMP и CONFIG_SECCOMP_FILTER.

Source: opennet.ru

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