Ostatnio Dostępność nowa wersja sandboxingu folia bąbelkowa 0.6, w którym dokonano kilku ważnych zmian, takich jak włączenie obsługi kompilacji z Mesonem, częściowe wsparcie dla specyfikacji REUSE i kilka innych zmian.
Dla tych, którzy nie wiedzą o Bubblewrap, powinniście wiedzieć, że jest to narzędzie zwykle używane do ograniczania poszczególnych aplikacji do nieuprzywilejowanych użytkowników. W praktyce projekt Flatpak wykorzystuje Bubblewrap jako warstwę do izolowania aplikacji uruchamianych z pakietów.
Do izolacji Linux używa technologii wirtualizacji tradycyjnych kontenerów opartych na wykorzystaniu cgroups, namespaces, Seccomp i SELinux. Aby wykonać uprzywilejowane operacje w celu skonfigurowania kontenera, Bubblewrap jest uruchamiany z uprawnieniami roota (plik wykonywalny z flagą suid), po którym następuje reset uprawnień po zainicjowaniu kontenera.
O Bubblewrap
Bubblewrap jest pozycjonowany jako ograniczona implementacja suida z podzbioru funkcji przestrzeni nazw użytkowników, aby wykluczyć wszystkie identyfikatory użytkowników i procesów ze środowiska poza bieżącym, użyj trybów CLONE_NEWUSER i CLONE_NEWPID.
Dla dodatkowej ochrony, programy działające w Bubblewrap uruchamiają się w trybie PR_SET_NO_NEW_PRIVS, który zabrania nowych przywilejów, na przykład z flagą setuid.
Izolacja na poziomie systemu plików jest wykonywana przez utworzenie, domyślnie, nowej przestrzeni nazw montowania, w której pusta partycja główna jest tworzona przy użyciu tmpfs.
Jeśli to konieczne, zewnętrzne sekcje FS są dołączone do tej sekcji w «mocowanie – wiązanie»(Na przykład zaczynając od opcji«bwrap –ro-bind / usr / usr', Sekcja / usr jest przekazywana z hosta w trybie tylko do odczytu).
Możliwości sieć jest ograniczona do dostępu do interfejsu pętli zwrotnej odwrócona z izolacją stosu sieciowego za pomocą wskaźników CLONE_NEWNET i CLONE_NEWUTS.
Kluczowa różnica w porównaniu z podobnym projektem Firejail, który również używa programu uruchamiającego setuid, to że w Bubblewrap, warstwa podstawowa zawiera tylko minimum niezbędnych elementów a wszystkie zaawansowane funkcje wymagane do uruchamiania aplikacji graficznych, interakcji z pulpitem i filtrowania wywołań Pulseaudio są przenoszone na bok Flatpak i uruchamiane po zresetowaniu uprawnień.
Główne nowości Bubblewrap 0.6
W tej nowej wersji Bubblewrap 0.6, która jest prezentowana, podkreślono, że dodano wsparcie dla system budowania Mezon, przy czym obsługa kompilacji z Autotools zostało zachowane przez teraz, ale ma to na celu… zostanie usunięty na korzyść używania Meson w przyszłej wersji.
Kolejną nowością w tej nowej wersji Bubblewrap 0.6 jest implementacja opcji „–add-seccomp”, aby dodać więcej niż jeden program seccomp, dodano również ostrzeżenie, że jeśli opcja „–seccomp” zostanie ponownie określona, zostanie zastosowana tylko ostatnia opcja.
Należy również zauważyć, że częściowe wsparcie dla specyfikacji REUSE, co ujednolica proces określania licencji i informacji o prawach autorskich.
Poza tym dodano również nagłówki SPDX-License-Identifier do wielu plików kodu. Przestrzeganie wytycznych REUSE ułatwia automatyczne określenie, która licencja dotyczy której części kodu aplikacji.
Z drugiej strony dodał sprawdzanie wartości licznika argumentów z wiersza poleceń (argc) i zaimplementowano wyjście awaryjne, jeśli licznik wynosi zero. Zmiana pPozwala blokować problemy z bezpieczeństwem spowodowane nieprawidłową obsługą przekazanych argumentów wiersza poleceń, takich jak CVE-2021-4034 w Polkit
Z innych zmian które wyróżniają się na tle nowej wersji:
- Główna gałąź w repozytorium git została przemianowana na main
- Usuń starą integrację CI
- Używanie bash przez PATH dla lepszej kompatybilności z systemami operacyjnymi innymi niż FHS
w końcu jeśli jesteś chcesz dowiedzieć się czegoś więcej na ten temat o nowej wersji możesz sprawdzić szczegóły W poniższym linku.