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 przestrzeni nazw (namespaces), AppArmor oraz filtrowanie wywołań systemowych (seccomp-bpf) w systemie Linux. Po uruchomieniu program i wszystkie jego procesy podrzędne korzystają z oddzielnych widoków zasobów jądra, takich jak stos sieciowy, tabela procesów i punkty montowania. Zależne od siebie aplikacje można łączyć w jeden wspólny sandbox. W razie potrzeby Firejail można również stosować 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ład kontenera formuje się w locie na podstawie zawartości aktualnego systemu plików i jest usuwany po zakończeniu pracy aplikacji. Udostępniane są elastyczne narzędzia do definiowania reguł dostępu do systemu plików, można określić, do których plików i katalogów dostęp jest dozwolony lub zabroniony, podłączać dla danych tymczasowe systemy plików (tmpfs), ograniczać dostęp do plików lub katalogów tylko do odczytu, łączyć katalogi przez bind-mount oraz overlayfs.
Dla dużej liczby popularnych aplikacji, w tym dla Firefox, Chromium, VLC i Transmission, przygotowano gotowe izolacji wywołań systemowych. Aby wykonać 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:
- Usunięto lukę, która umożliwiała złośliwemu procesowi obejście mechanizmu ograniczania wywołań systemowych. Istota luki polega na tym, że filtry Seccomp są kopiowane do katalogu /run/firejail/mnt, dostępnego do zapisu wewnątrz izolowanego środowiska. Uruchamiane w trybie izolacji procesy złośliwe mogą zmienić te pliki, co prowadzi do tego, że nowe procesy uruchamiane w tym samym środowisku będą wykonywane bez zastosowania filtra wywołań systemowych;
- W filtrze memory-deny-write-execute zapewniono zablokowanie wywołania «memfd_create»;
- Dodano nową opcję «private-cwd» do zmiany katalogu roboczego dla jail;
- Dodano opcję «—nodbus» do blokowania gniazd D-Bus;
- Przywrócono wsparcie dla CentOS 6;
- wsparcie pakietów w formatach i .
, że dla tych pakietów należy używać ich własnych narzędzi; - Dodano nowe profile do izolacji 87 dodatkowych programów, w tym mypaint, nano, xfce4-mixer, gnome-keyring, redshift, font-manager, gconf-editor, gsettings, freeciv, lincity-ng, openttd, torcs, tremulous, warsow, freemind, kid3, freecol, opencity, utox, freeoffice-planmaker, freeoffice-presentations, freeoffice-textmaker, inkview, meteo-qt, ktouch, yelp i cantata.
Źródło: opennet.ru
