È stato rilasciato il progetto Firejail 0.9.72, che sviluppa un sistema per l'esecuzione isolata di applicazioni grafiche, a console e server, permettendo di minimizzare il rischio di compromettere il sistema principale durante l'esecuzione di programmi non affidabili o potenzialmente vulnerabili. Il programma è scritto in C, distribuito sotto licenza GPLv2 e può funzionare su qualsiasi distribuzione Linux con un kernel superiore alla versione 3.0. I pacchetti pronti di Firejail sono disponibili nei formati deb (Debian, Ubuntu) e rpm (CentOS, Fedora).
Per l'isolamento in Firejail vengono utilizzati gli spazi dei nomi (namespaces), AppArmor e la filtrazione delle chiamate di sistema (seccomp-bpf) in Linux. Dopo l'avvio, il programma e tutti i suoi processi figli utilizzano visioni 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 comune. Se desiderato, Firejail può essere utilizzato anche per eseguire contenitori Docker, LXC e OpenVZ.
A differenza degli strumenti di isolamento dei container, firejail è estremamente semplice da configurare e non richiede la preparazione di un'immagine di sistema: il contenuto del container si forma al volo sulla base del filesystem attuale e viene rimosso al termine dell'esecuzione dell'applicazione. Sono forniti strumenti flessibili per impostare le regole di accesso al filesystem, potendo definire a quali file e directory è consentito o vietato l'accesso, collegare filesystem temporanei (tmpfs) per i dati, limitare l'accesso a file o directory in sola lettura, e fondere directory tramite bind-mount e overlayfs.
Per un ampio numero di applicazioni popolari, tra cui Firefox, Chromium, VLC e Transmission, sono stati preparati profili di isolamento delle chiamate di sistema. Per ottenere i privilegi necessari per configurare l'ambiente isolato, il file eseguibile di firejail viene installato con l'opzione SUID root (i privilegi vengono azzerati dopo l'inizializzazione). 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:
- Aggiunto il filtro seccomp per le chiamate di sistema, che blocca la creazione di spazi dei nomi (per abilitare, è stata aggiunta l'opzione «—restrict-namespaces»). Aggiornate le tabelle delle chiamate di sistema e i gruppi seccomp.
- Migliorato il modulo force-nonewprivs (NO_NEW_PRIVS), che vieta di acquisire privilegi aggiuntivi nei nuovi processi.
- Aggiunta la possibilità di utilizzare profili AppArmor personalizzati (per collegarli è stata proposta l'opzione «—apparmor»).
- Nella sistema di tracciamento del traffico di rete nettrace, che mostra informazioni sugli IP e sull'intensità del traffico da ciascun indirizzo, è stata implementata la supporto ICMP e sono state proposte le opzioni «—dnstrace», «—icmptrace» e «—snitrace».
- Rimosse le opzioni —cgroup e —shell (per impostazione predefinita viene applicata —shell=none). Per impostazione predefinita, la costruzione di firetunnel è stata interrotta. Disattivate le impostazioni chroot, private-lib e tracelog in /etc/firejail/firejail.config. La supporto per grsecurity è stata interrotta.
Fonte: opennet.ru
