Dopo sei mesi di sviluppo rilascio del progetto , all'interno del quale si sviluppa un sistema per l'esecuzione isolata di applicazioni grafiche, console e server. L'uso di Firejail consente di ridurre al minimo il rischio di compromissione del sistema principale durante l'esecuzione di programmi non fidati o potenzialmente vulnerabili. Il programma è scritto in linguaggio C, sotto licenza GPLv2 e può funzionare su qualsiasi distribuzione Linux con un kernel superiore a 3.0. Sono disponibili pacchetti precompilati di Firejail in formati deb (Debian, Ubuntu) e rpm (CentOS, Fedora).
Per l'isolamento in Firejail spazi dei nomi (namespaces), AppArmor e filtraggio delle chiamate di sistema (seccomp-bpf) in Linux. Una volta avviato, il programma e tutti i suoi processi figlio utilizzano rappresentazioni separate delle risorse del kernel, come lo stack di rete, la tabella dei processi e i punti di montaggio. Le applicazioni interdipendenti possono essere raggruppate in un singolo sandbox. Se desiderato, Firejail può essere utilizzato anche per l'esecuzione di contenitori Docker, LXC e OpenVZ.
A differenza degli strumenti di isolamento dei contenitori, firejail è estremamente nella configurazione e non richiede la preparazione di un'immagine di sistema: la composizione del contenitore viene formata al volo in base al contenuto dell'attuale filesystem e viene rimossa al termine dell'applicazione. Sono forniti strumenti flessibili per impostare le regole di accesso al filesystem, è possibile definire quali file e directory hanno accesso consentito o vietato, collegare filesystem temporanei (tmpfs) per i dati, limitare l'accesso a file o directory solo in lettura e unire directory tramite bind-mount e overlayfs.
Per un gran numero di applicazioni popolari, inclusi Firefox, Chromium, VLC e Transmission, sono stati preparati profili isolamento delle chiamate di sistema. Per ottenere i privilegi necessari per configurare un ambiente isolato, l'eseguibile firejail viene impostato con il flag SUID root (dopo l'inizializzazione, i privilegi vengono ripristinati). Per eseguire un programma in modalità isolamento, è sufficiente specificare il nome dell'applicazione come argomento dell'utilità firejail, ad esempio, «firejail firefox» o «sudo firejail /etc/init.d/nginx start».
Nel nuovo rilascio:
- Nel file di configurazione /etc/firejail/firejail.config impostazione file-copy-limit, che consente di limitare la dimensione dei file che verranno copiati in memoria quando si utilizzano le opzioni «—private-*» (di default il limite è fissato a 500MB).
- Nella directory /usr/share/doc/firejail sono stati aggiunti modelli per la creazione di nuovi profili di restrizione delle applicazioni.
- Nei profili è consentito l'uso dei debugger.
- Migliorata la filtrazione delle chiamate di sistema mediante il meccanismo seccomp.
- È stata garantita l'autodeterminazione dei flag del compilatore.
- La chiamata a chroot ora viene eseguita non sulla base del percorso, ma utilizzando i punti di montaggio basati sul descrittore di file.
- La directory /usr/share è stata inserita nella lista bianca di vari profili.
- Nella sezione contrib sono stati aggiunti nuovi script di supporto gdb-firejail.sh e sort.py.
- Protezione avanzata nella fase di esecuzione del codice privilegiato (SUID).
- Per i profili sono stati implementati nuovi attributi condizionali HAS_X11 e HAS_NET per verificare la presenza del server X e l'accesso di rete.
- Aggiunti profili per l'esecuzione isolata delle applicazioni (il numero totale di profili è salito a 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.
Fonte: opennet.ru
