Piero V.

Firejail

Una delle grandissime caratteristiche del software libero è che i rischi per sicurezza e privacy sono esposti agli occhi di tutti.

Quindi personalmente mi fido molto del software proveniente dal repo main di Debian, invece non mi fido di software proprietari di terze parti, per esempio di Spotify.

Avevo già cercato di mettergli una sandbox attraverso i container, però non è una soluzione pratica per questo genere di problema: si perde l’integrazione con l’ambiente desktop (notifiche, tasti multimediali…) e la soluzione è parecchio pesante, infatti serve che ci siano comunque tutte le dipendenze in un piccolo sistema operativo.

Recentemente invece ho sentito parlare di firejail, un programma che permette di isolare dei programmi mediante alcune funzionalità del kernel Linux, come i namespace.

Per ogni applicazione che si vuol far girare ha bisogno di un profilo, in cui si fa una whitelist e una blacklist di file e altre risorse cui essa può o non può accedere. È addirittura capace di bloccare le richieste a programmi come su e sudo.

È veramente rassicurante vedere che di default blocca subito l’accesso completo a file critici per la sicurezza come la cartella .ssh o ai file che permettono l’esecuzione arbitraria di codice, come lo .xinitrc o i profili delle shell.

Lo sviluppatore del progetto comunque ha già scritto molti profili, quindi, per esempio, per Spotify l’uso di firejail si riduce al comando firejail spotify.

Insomma, è molto semplice e nulla vieta di creare una voce di menu per eseguire il programma nella sandbox senza dover scrivere ogni volta a mano il comando.

Anzi, potrebbe essere una buona idea creare un’estensione GNOME che permetta di scegliere che programmi avviare sempre in una sandbox senza dover usare alacarte.

Firejail è molto leggero, il pacchetto installato come dimensione risulta inferiore al megabyte per ogni architettura e come dipendenza ha solo la libreria C. Non richiede Xorg o librerie desktop, infatti vuole essere adatto anche alla protezione di server.

In certe distribuzioni come Debian, Ubuntu e Arch il pacchetto è già presente nei repository, per altre invece bisogna compilarlo, cosa per cui vi rimando all’homepage del progetto.