Izlaista Bubblewrap 0.6 — slānis izolētu vidi izveidošanai

Ir pieejams rīku izlaišana izolētu vidi darba organizēšanai Bubblewrap 0.6, ko parasti izmanto, lai ierobežotu nepievilcīgu lietotāju atsevišķas lietojumprogrammas. Praksē Flatpak projekts Bubblewrap izmanto kā slāni, lai izolētu no pakotnēm palaistās lietojumprogrammas. Projekta kods ir rakstīts C valodā un tiek izplatīts saskaņā ar LGPLv2+ licenci.

Izolācijai tiek izmantotas tradicionālās Linux konteineru virtualizācijas tehnoloģijas, kuru pamatā ir cgroups, namespaces, Seccomp un SELinux. Lai veiktu priviliģētas darbības konteinera konfigurēšanai, Bubblewrap tiek palaista ar saknes tiesībām (izpildāms fails ar suid karogu) un pēc tam atiestata privilēģijas pēc konteinera inicializācijas.

Lietotāju nosaukumvietu aktivizēšana nosaukumvietas sistēmā, kas ļauj konteineros izmantot savu atsevišķu identifikatoru kopu, darbībai nav nepieciešama, jo tā pēc noklusējuma nedarbojas daudzos izplatījumos (Bubblewrap tiek pozicionēts kā ierobežota piemērotība lietotāju nosaukumvietu iespēju apakškopa - lai izslēgtu no vides visus lietotāju un procesu identifikatorus, izņemot pašreizējo, tiek izmantoti režīmi CLONE_NEWUSER un CLONE_NEWPID). Papildu aizsardzībai programmas, kas tiek izpildītas ar Bubblewrap, tiek palaistas režīmā PR_SET_NO_NEW_PRIVS, kas aizliedz iegūt jaunas privilēģijas, piemēram, ja ir iestatīts karogs setuid.

Izolēšana failu sistēmas līmenī tiek veikta, pēc noklusējuma izveidojot jaunu mount nosaukumvietu, kurā tiek izveidots tukšs saknes nodalījums, izmantojot tmpfs. Ja nepieciešams, šim nodalījumam tiek pievienoti ārējie FS nodalījumi režīmā “mount —bind” (piemēram, palaižot ar opciju “bwrap –ro-bind /usr /usr”, /usr nodalījums tiek pārsūtīts no galvenās sistēmas tikai lasīšanas režīmā). Tīkla iespējas ir ierobežotas, lai piekļūtu atpakaļcilpas saskarnei ar tīkla steka izolāciju, izmantojot karogus CLONE_NEWNET un CLONE_NEWUTS.

Galvenā atšķirība no līdzīgā Firejail projekta, kurā tiek izmantots arī setuid palaišanas modelis, ir tāda, ka Bubblewrap konteinera izveides slānis ietver tikai nepieciešamās minimālās iespējas un visas uzlabotās funkcijas, kas nepieciešamas grafisko lietojumprogrammu palaišanai, mijiedarbībai ar darbvirsmu un filtrēšanas pieprasījumiem. uz Pulseaudio, pārsūtīts uz Flatpak pusi un izpildīts pēc privilēģiju atiestatīšanas. No otras puses, Firejail apvieno visas saistītās funkcijas vienā izpildāmā failā, kas apgrūtina auditēšanu un drošības uzturēšanu atbilstošā līmenī.

Jaunajā laidienā:

  • Добавлена поддержка сборочной системы Meson. Поддержка сборки при помощи Autotools пока сохранена, но будет удалена в одном из следующих выпусков.
  • Реализована опция «—add-seccomp» для добавления более чем одной программы seccomp. Добавлено предупреждение о том, что при повторном указании опции «—seccomp» будет применён только последний параметр.
  • Ветка master в git-репозитории переименована в main.
  • Добавлена частичная поддержка спецификации REUSE, унифицирующей процесс указания сведений о лицензиях и авторских правах. Во многие файлы с кодом добавлены заголовки SPDX-License-Identifier. Следование рекомендациям REUSE позволяет упростить автоматическое определение какая лицензия применяется к каким из частей кода приложения.
  • Добавлена проверка значения счётчика аргументов командной строки (argc) и реализован экстренный выход в случае если счётчик равен нулю. Изменение позволяет блокировать проблемы с безопасностью, вызванные некорректной обработкой передаваемых аргументов командной строки, такие как CVE-2021-4034 в Polkit.

Avots: opennet.ru

Pievieno komentāru