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. Dopo l'avvio, il programma e tutti i suoi processi figli utilizzano rappresentazioni separate delle risorse del kernel, come lo stack di rete, la tabella dei processi e i punti di montaggio. Le applicazioni dipendenti possono essere unite in un unico sandbox comune. Se desiderato, Firejail può essere utilizzato anche per eseguire 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: il contenitore viene creato al volo in base al contenuto del filesystem attuale e viene rimosso al termine dell'esecuzione dell'applicazione. Sono forniti strumenti flessibili per definire le regole di accesso al filesystem, consentendo di specificare a quali file e directory è permesso o vietato l'accesso, collegare filesystem temporanei (tmpfs) per i dati, limitare l'accesso a file o directory in sola lettura e utilizzare bind-mount e overlayfs per le directory.
Per un gran numero di applicazioni popolari, inclusi Firefox, Chromium, VLC e Transmission, sono stati preparati profili изоляции системных вызовов. Для выполнения программы в режиме изоляции достаточно указать имя приложения в качестве аргумента утилиты firejail, например, «firejail firefox» или «sudo firejail /etc/init.d/nginx start».
Nel nuovo rilascio:
- È stata rimossa una vulnerabilità che consentiva a processi dannosi di eludere il meccanismo di limitazione delle chiamate di sistema. La vulnerabilità risiede nel fatto che i filtri Seccomp vengono copiati nella directory /run/firejail/mnt, accessibile in scrittura all'interno dell'ambiente isolato. I processi dannosi eseguiti in modalità di isolamento possono modificare questi file, il che porterà a far sì che nuovi processi avviati in questo stesso ambiente vengano eseguiti senza applicare il filtro delle chiamate di sistema;
- Nel filtro memory-deny-write-execute è stata garantita la blocco della chiamata «memfd_create»;
- È stata aggiunta una nuova opzione «private-cwd» per cambiare la directory di lavoro per il jail;
- È stata aggiunta l'opzione «—nodbus» per bloccare i socket D-Bus;
- Ripristinato il supporto per CentOS 6;
- il supporto per pacchetti in formato e .
, che per questi pacchetti si deve utilizzare il proprio strumento; - Aggiunti nuovi profili per l'isolamento di 87 programmi aggiuntivi, tra cui 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 e cantata.
Fonte: opennet.ru
