Opublikowano nową wersję narzędzia do organizacji pracy w izolowanych środowiskach Bubblewrap 0.11, które jest używane do ograniczania dostępu do poszczególnych aplikacji dla użytkowników bez uprawnień. W praktyce Bubblewrap jest stosowany przez projekt Flatpak jako warstwa do izolacji aplikacji uruchamianych z pakietów. Do izolacji wykorzystywane są tradycyjne technologie wirtualizacji kontenerów w systemach Linux, oparte na cgroups, przestrzeniach nazw (namespaces), Seccomp i SELinux. Kod projektu napisany jest w języku C i jest udostępniany na licencji LGPLv2+.
Izolacja na poziomie systemu plików odbywa się poprzez stworzenie domyślnej nowej przestrzeni nazw punktów montowania (mount namespace), w której z pomocą tmpfs tworzony jest pusty katalog główny. W razie potrzeby do tego katalogu podpinane są partycje zewnętrznego systemu plików w trybie „mount —bind” (na przykład przy uruchamianiu z opcją „bwrap —ro-bind /usr /usr” partycja /usr jest przekazywana z głównego systemu w trybie tylko do odczytu). Możliwości sieciowe są ograniczone do dostępu do interfejsu loopback z izolacją stosu sieciowego za pomocą flag CLONE_NEWNET i CLONE_NEWUTS.
Aby wykluczyć wszystkie zbędne identyfikatory użytkowników i procesów z tworzonego izolowanego środowiska, mogą być stosowane tryby CLONE_NEWUSER (przestrzeń nazw użytkowników) oraz CLONE_NEWPID (przestrzeń nazw PID), a do zablokowania uzyskiwania nowych uprawnień stosowany jest tryb PR_SET_NO_NEW_PRIVS. Na systemach z przestrzenią nazw użytkowników Bubblewrap może być uruchamiany przez zwykłego użytkownika, natomiast na systemach bez przestrzeni nazw użytkowników można go używać z flagą suid root do przeprowadzenia niezbędnej inicjalizacji izolowanego środowiska.
W nowym wydaniu:
- Dodano możliwość tworzenia punktów montowania, w których stosowana jest jednowarstwowa system plików OverlayFS, łącząca kilka części innych systemów plików. Nowe opcje wiersza poleceń «—overlay», «—tmp-overlay», «—ro-overlay» i «—overlay-src» zostały zaproponowane do zarządzania wykorzystaniem OverlayFS.
- Dodano opcję «—level-prefix» do wstawiania w diagnozach poziomu priorytetu w stylu syslog, co pozwala na używanie takich narzędzi do przetwarzania wyjścia jak «logger» i «systemd-cat».
- Zakończono wsparcie dla systemu budowania Autotools. Teraz wymagana jest infrastruktura budowania Meson.
Źródło: opennet.ru
