După șase luni de dezvoltare lansarea proiectului , în cadrul căruia se dezvoltă un sistem pentru execuția izolată a aplicațiilor grafice, de consolă și server. Utilizarea Firejail permite minimizarea riscului de compromisare a sistemului de bază la lansarea programelor ce nu sunt de încredere sau potențial vulnerabile. Programul este scris în limbajul C, sub licența GPLv2 și poate funcționa pe orice distribuție Linux cu kernel mai recent de 3.0. Pachetele gata pregătite cu Firejail sunt disponibile în formate deb (Debian, Ubuntu) și rpm (CentOS, Fedora).
Pentru izolarea în Firejail spații de nume (namespaces), AppArmor și filtrarea apelurilor de sistem (seccomp-bpf) în Linux. După lansare, programul și toate procesele sale derivate utilizează viziuni separate ale resurselor kernel, cum ar fi stiva de rețea, tabela de procese și punctele de montare. Aplicațiile interdependente pot fi combinate într-un singur sandbox comun. De asemenea, Firejail poate fi folosit pentru lansarea containerelor Docker, LXC și OpenVZ.
Spre deosebire de metodele de izolare a containerelor, firejail este extrem de în configurație și nu necesită pregătirea unei imagini de sistem — compunerea containerului se formează la cerere pe baza conținutului sistemului de fișiere curent și este eliminată după finalizarea lucrului aplicației. Se oferă instrumente flexibile pentru setarea regulilor de acces la sistemul de fișiere, este posibil să se definească la care fișiere și directoare accesul este permis sau interzis, să se conecteze pentru date sisteme de fișiere temporare (tmpfs), să se limiteze accesul la fișiere sau directoare doar la citire, să se combine directoare prin bind-mount și overlayfs.
Pentru un număr mare de aplicații populare, inclusiv Firefox, Chromium, VLC și Transmission, au fost pregătite izolarea apelurilor de sistem. Pentru a obține privilegiile necesare configurării unui mediu izolat, fișierul executabil firejail este instalat cu flag-ul SUID root (după inițializare, privilegiile sunt resetate). Pentru a rula programul în modul de izolare, este suficient să specifici numele aplicației ca argument al utilitarului firejail, de exemplu, „firejail firefox” sau „sudo firejail /etc/init.d/nginx start”.
În noua versiune:
- În fișierul de configurare /etc/firejail/firejail.config setarea file-copy-limit, care permite limitarea dimensiunii fișierelor care vor fi copiate în memorie atunci când se utilizează opțiunile „—private-*” (în mod implicit, limita este setată la 500MB).
- În directorul /usr/share/doc/firejail au fost adăugate șabloane pentru crearea de noi profile de limitare a aplicațiilor.
- În profile este permisă utilizarea debugger-elor.
- Filtrarea apelurilor de sistem a fost îmbunătățită prin mecanismul seccomp.
- A fost asigurată autodetectarea flag-urilor de compilare.
- Apelul chroot este acum efectuat nu pe baza unei căi, ci folosind puncte de montare bazate pe descriptorul de fișier.
- Directorul /usr/share a fost inclus în lista albă a diverselor profile.
- În secțiunea contrib au fost adăugate noi scripturi auxiliare gdb-firejail.sh și sort.py.
- Protecția în faza de execuție a codului privilegiat (SUID) a fost întărită.
- Pentru profile au fost implementate noi caracteristici condiționale HAS_X11 și HAS_NET pentru a verifica prezența unui server X și accesul la rețea.
- Au fost adăugate profile pentru lansarea izolată a aplicațiilor (numărul total de profile a fost crescut la 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.
Sursa: opennet.ro
