Po sześciu miesiącach rozwoju premiera projektu , w ramach którego rozwijany jest system do izolowanego uruchamiania aplikacji graficznych, konsolowych i serwerowych. Użycie Firejail pozwala zminimalizować ryzyko kompromitacji głównego systemu podczas uruchamiania niegodnych zaufania lub potencjalnie podatnych programów. Program napisany jest w języku C, na licencji GPLv2 i może działać w dowolnej dystrybucji Linuxa z jądrem powyżej 3.0. Gotowe pakiety z Firejail w formatach deb (Debian, Ubuntu) i rpm (CentOS, Fedora).
Do izolacji w Firejail przestrzenie nazw (namespaces), AppArmor oraz filtrowanie wywołań systemowych (seccomp-bpf) w Linuxie. Po uruchomieniu program i wszystkie jego procesy podrzędne korzystają z odrębnych widoków zasobów jądra, takich jak stos sieciowy, tabela procesów i punkty montowania. Aplikacje, które są od siebie zależne, można łączyć w jeden wspólny sandbox. Jeśli zajdzie potrzeba, Firejail można stosować również do uruchamiania kontenerów Docker, LXC i OpenVZ.
W przeciwieństwie do narzędzi do izolacji kontenerów, firejail jest skrajnie w konfiguracji i nie wymaga przygotowania obrazu systemu — składnik kontenera formuje się na bieżąco na podstawie zawartości aktualnego systemu plików i jest usuwany po zakończeniu pracy aplikacji. Dostarczane są elastyczne narzędzia do określania zasad dostępu do systemu plików, można określić, do jakich plików i katalogów zezwala się lub zakazuje się dostępu, podłączać tymczasowe systemy plików (tmpfs) dla danych, ograniczać dostęp do plików lub katalogów tylko do odczytu, łączyć katalogi za pomocą bind-mount i overlayfs.
Dla dużej liczby popularnych aplikacji, w tym dla Firefox, Chromium, VLC i Transmission, przygotowano gotowe izolacja wywołań systemowych. Aby uzyskać uprawnienia niezbędne do skonfigurowania izolowanego środowiska, plik wykonywalny firejail jest instalowany z flagą SUID root (po inicjalizacji uprawnienia są resetowane). Aby uruchomić program w trybie izolacji, wystarczy podać nazwę aplikacji jako argument narzędzia firejail, na przykład, „firejail firefox” lub „sudo firejail /etc/init.d/nginx start”.
W nowym wydaniu:
- Do pliku konfiguracyjnego /etc/firejail/firejail.config ustawienie file-copy-limit, które pozwala ograniczyć rozmiar plików, które będą kopiowane do pamięci podczas korzystania z opcji „—private-*” (domyślnie limit wynosi 500 MB).
- Do katalogu /usr/share/doc/firejail dodano szablony do tworzenia nowych profili ograniczeń aplikacji.
- W profilach dozwolone jest używanie debuggerów.
- Poprawiono filtrowanie wywołań systemowych za pomocą mechanizmu seccomp.
- Zapewniono automatyczne rozpoznawanie flag kompilatora.
- Wywołanie chroot teraz odbywa się nie na podstawie ścieżki, ale przy użyciu punktów montowania na podstawie deskryptora pliku.
- Katalog /usr/share został dodany do białej listy różnych profili.
- Do sekcji conrib dodano nowe pomocnicze skrypty gdb-firejail.sh i sort.py.
- Wzmocniono ochronę na etapie wykonywania kodu z uprawnieniami (SUID).
- Dla profili wprowadzono nowe warunkowe cechy HAS_X11 i HAS_NET do sprawdzenia obecności serwera X i dostępu do sieci.
- Dodano profile do izolowanego uruchamiania aplikacji (łączna liczba profili zwiększyła się do 884):
- i2p,
- tor-browser (AUR),
- Zulip,
- rsync,
- signal-cli,
- tcpdump,
- tshark,
- qgis,
- OpenArena,
- godot,
- klatexformula,
- klatexformula_cmdl,
- links,
- xlinks,
- pandoc,
- teams-for-linux,
- gnome-sound-recorder,
- newsbeuter,
- keepassxc-cli,
- keepassxc-proxy,
- rhythmbox-client,
- jerry,
- zeal,
- mpg123,
- conplay,
- mpg123.bin,
- mpg123-alsa,
- mpg123-id3dump,
- out123,
- mpg123-jack,
- mpg123-nas,
- mpg123-openal,
- mpg123-oss,
- mpg123-portaudio,
- mpg123-pulse,
- mpg123-strip,
- pavucontrol-qt,
- gnome-characters,
- gnome-character-map,
- Whalebird,
- tb-starter-wrapper,
- bzcat,
- kiwix-desktop,
- bzcat,
- zstd,
- pzstd,
- zstdcat,
- zstdgrep,
- zstdless,
- zstdmt,
- unzstd,
- ar,
- gnome-latex,
- pngquant,
- kalgebra,
- kalgebramobile,
- amuled,
- kfind,
- profanity,
- audio-recorder,
- cameramonitor,
- ddgtk,
- drawio,
- unf,
- gmpc,
- electron-mail,
- gist,
- gist-paste.
Źródło: opennet.ru
