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 менен курууну колдоо азырынча сакталып калды, бирок келечектеги чыгарылышта өчүрүлөт.
  • Бирден ашык seccomp программасын кошуу үчүн "--add-seccomp" опциясы ишке ашырылды. Эгер "--seccomp" параметрин кайра көрсөтсөңүз, акыркы параметр гана колдонулат деген эскертүү кошулду.
  • Гит репозиторийиндеги башкы бутак негизги деп өзгөртүлдү.
  • Лицензия жана автордук укук маалыматын көрсөтүү процессин бириктирген REUSE спецификациясына жарым-жартылай колдоо кошулду. Көптөгөн код файлдарына SPDX-Лицензия-Идентификатор баштары кошулган. КАЙРА КОЛДОНУУ көрсөтмөлөрүнө ылайык, кайсы лицензия колдонмо кодунун кайсы бөлүктөрүнө тиешелүү экенин автоматтык түрдө аныктоону жеңилдетет.
  • Буйрук сабынын аргумент эсептегичинин (argc) маанисин текшерүү кошулду жана эсептегич нөл болсо, авариялык абалдан чыгууну ишке ашырды. Өзгөртүү Polkit'теги CVE-2021-4034 сыяктуу өткөн буйрук сабынын аргументтерин туура эмес иштетүүдөн келип чыккан коопсуздук маселелерин бөгөттөөгө жардам берет.

Source: opennet.ru

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