zobaczyłem światło wydanie projektu FireJail 0.9.60, w ramach którego rozwijany jest system do izolowanej realizacji aplikacji graficznych, konsolowych i serwerowych. Korzystanie z Firejail pozwala zminimalizować ryzyko naruszenia bezpieczeństwa głównego systemu podczas uruchamiania niezaufanych lub potencjalnie podatnych na ataki programów. Program napisany jest w języku C, dystrybuowane przez licencjonowany na licencji GPLv2 i może działać na dowolnej dystrybucji Linuksa z jądrem starszym niż 3.0. Gotowe pakiety z Firejail przygotowany w formatach deb (Debian, Ubuntu) i obr./min (CentOS, Fedora).
Do izolacji w Firejail są używane przestrzenie nazw, AppArmor i filtrowanie wywołań systemowych (seccomp-bpf) w systemie Linux. Po uruchomieniu program i wszystkie jego procesy potomne korzystają z oddzielnych widoków zasobów jądra, takich jak stos sieciowy, tabela procesów i punkty podłączenia. Aplikacje zależne od siebie można połączyć w jedną wspólną piaskownicę. W razie potrzeby Firejail może być również używany do uruchamiania kontenerów Docker, LXC i OpenVZ.
W przeciwieństwie do narzędzi do izolacji kontenerów, Firejail jest niezwykle proste w konfiguracji i nie wymaga przygotowania obrazu systemu - kompozycja kontenera tworzona jest na bieżąco na podstawie zawartości bieżącego systemu plików i jest usuwana po zakończeniu działania aplikacji. Zapewnione są elastyczne sposoby ustawiania reguł dostępu do systemu plików; możesz określić, które pliki i katalogi mają dostęp, a które nie, podłączyć tymczasowe systemy plików (tmpfs) do danych, ograniczyć dostęp do plików lub katalogów do tylko do odczytu, połączyć katalogi za pomocą mocowanie wiązania i nakładki.
Gotowe dla dużej liczby popularnych aplikacji, w tym Firefox, Chromium, VLC i Transmission profile izolacja wywołań systemowych. 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:
Naprawiono lukę umożliwiającą złośliwemu procesowi ominięcie mechanizmu ograniczania wywołań systemowych. Istota luki polega na tym, że filtry Seccomp są kopiowane do katalogu /run/firejail/mnt, w którym można zapisywać dane w izolowanym środowisku. Złośliwe procesy działające w trybie izolacji mogą modyfikować te pliki, co spowoduje wykonanie nowych procesów działających w tym samym środowisku bez stosowania filtru wywołań systemowych;
Filtr memory-deny-write-execute zapewnia, że wywołanie „memfd_create” jest blokowane;
Dodano nową opcję „private-cwd”, aby zmienić katalog roboczy więzienia;