rilascio del progetto , nell'ambito 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 host durante l'esecuzione di programmi poco affidabili o potenzialmente vulnerabili. Il programma è scritto in 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 interdipendenti possono essere unite in un unico sandbox. Se desiderato, Firejail può essere utilizzato anche per avviare 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 sulla base del contenuto dell'attuale FS e viene rimossa al termine dell'esecuzione dell'applicazione. Vengono forniti strumenti flessibili per la definizione delle regole di accesso al file system; è possibile definire a quali file e directory è consentito o vietato l'accesso, collegare per i dati file system temporanei (tmpfs), limitare l'accesso ai file o alle directory solo in lettura, combinare directory tramite bind-mount e overlayfs.
Per un gran numero di applicazioni popolari, tra cui Firefox, Chromium, VLC e Transmission, sono stati preparati profili isolamento delle chiamate di sistema. Per eseguire il programma in modalità di 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:
- Risolta una vulnerabilità che consentiva a un processo dannoso di eludere il meccanismo di restrizione delle chiamate di sistema. La vulnerabilità consiste nel fatto che i filtri Seccomp vengono copiati nella cartella /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 fare in modo che i nuovi processi avviati nello stesso ambiente vengano eseguiti senza applicare il filtro delle chiamate di sistema;
- Nel filtro memory-deny-write-execute è stata garantita la bloccatura della chiamata «memfd_create»;
- Aggiunta una nuova opzione «private-cwd» per modificare la directory di lavoro per jail;
- Aggiunta l'opzione «—nodbus» per bloccare i socket D-Bus;
- Ripristinato il supporto per CentOS 6;
- supporto per pacchetti nei formati e .
, che per questi pacchetti è opportuno utilizzare il proprio strumento; - Aggiunti nuovi profili per l'isolamento di 87 ulteriore programmi, 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
