Wydano Firejail w wersji 0.9.72. Opracowuje on system do izolowanego wykonywania aplikacji graficznych, konsolowych i serwerowych, minimalizując ryzyko naruszenia bezpieczeństwa systemu hosta podczas uruchamiania niezaufanych lub potencjalnie podatnych na ataki programów. Program jest napisany w języku C, rozpowszechniany na licencji GPLv2 i działa na dowolnej dystrybucji. Linux z jądrem starszym niż 3.0. Gotowe pakiety z Firejail są przygotowywane w formatach deb (Debian, Ubuntu) i obr./min (CentOS(Fedora).
Firejail wykorzystuje przestrzenie nazw, AppArmor i filtrowanie wywołań systemowych (seccomp-bpf) w celu izolacji. LinuxPo uruchomieniu program i wszystkie jego procesy potomne korzystają z oddzielnych reprezentacji zasobów jądra, takich jak stos sieciowy, tabela procesów i punkty montowania. Aplikacje współzależne można łączyć w jedną, współdzieloną piaskownicę. Firejail można również używać do uruchamiania kontenerów Docker, LXC i OpenVZ.
W przeciwieństwie do narzędzi do izolacji kontenerów, FireJail jest niezwykle prosty w konfiguracji i nie wymaga przygotowywania obrazu systemu – kompozycja kontenerów jest tworzona „w locie” na podstawie zawartości bieżącego systemu plików (FS) i usuwana po zakończeniu działania aplikacji. Dostępne są elastyczne narzędzia do ustawiania reguł dostępu do systemu plików. Można określić, które pliki i katalogi mają być udostępniane, a które nie, podłączyć tymczasowy system plików (tmpfs) do danych, ograniczyć dostęp do plików lub katalogów do trybu „tylko do odczytu”, a także łączyć katalogi za pomocą funkcji bind-mount i overlayfs.
Gotowe profile izolacji wywołań systemowych zostały przygotowane dla wielu popularnych aplikacji, takich jak Firefox, Chromium, VLC i Transmission. Aby uzyskać uprawnienia wymagane do skonfigurowania środowiska izolowanego, plik wykonywalny FireJail jest instalowany z flagą SUID root (uprawnienia są resetowane po inicjalizacji). 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:
- Dodano filtr wywołań systemowych seccomp, który blokuje tworzenie przestrzeni nazw (dodano opcję „--restrict-namespaces”, aby ją włączyć). Zaktualizowano tabele i grupy wywołań systemowych seccomp.
- Ulepszono tryb wymuszania nowych uprawnień (NO_NEW_PRIVS), aby zapobiec uzyskiwaniu dodatkowych uprawnień przez nowe procesy.
- Dodano możliwość korzystania z własnych profili AppArmor (opcja „—apparmor” jest dostępna przy nawiązywaniu połączenia).
- System monitorowania ruchu sieciowego nettrace, który wyświetla informacje o protokole IP i ilości ruchu z każdego adresu, implementuje obsługę protokołu ICMP i oferuje opcje „--dnstrace”, „--icmptrace” i „--snitrace”.
- Usunięto polecenia --cgroup i --shell (domyślnie --shell=none). Domyślnie zaprzestano budowania FireTunela. Wyłączono ustawienia chroot, private-lib i tracelog w pliku /etc/firejail/firejail.config. Usunięto obsługę grsecurity.
Źródło: opennet.ru
