Bubblewrap 0.6-ի թողարկում՝ մեկուսացված միջավայրեր ստեղծելու շերտ

Առկա է մեկուսացված միջավայրերի աշխատանքը կազմակերպելու գործիքների թողարկում Bubblewrap 0.6-ը, որը սովորաբար օգտագործվում է ոչ արտոնյալ օգտատերերի անհատական ​​հավելվածները սահմանափակելու համար: Գործնականում Bubblewrap-ը օգտագործվում է Flatpak նախագծի կողմից որպես շերտ՝ փաթեթներից գործարկված հավելվածները մեկուսացնելու համար: Ծրագրի կոդը գրված է C-ով և տարածվում է LGPLv2+ լիցենզիայի ներքո:

Մեկուսացման համար օգտագործվում են Linux կոնտեյներների վիրտուալացման ավանդական տեխնոլոգիաները՝ հիմնված cgroups-ի, namespace-ների, 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.

Source: opennet.ru

Добавить комментарий