Après six mois de développement version du projet , dans le cadre duquel un système est développé pour l'exécution isolée d'applications graphiques, console et serveur. L'utilisation de Firejail permet de minimiser le risque de compromission du système principal lors de l'exécution de programmes peu fiables ou potentiellement vulnérables. Le programme est écrit en langage C, sous licence GPLv2 et peut fonctionner sur n'importe quelle distribution Linux avec un noyau supérieur à 3.0. Des paquets prêts à l'emploi avec Firejail sont disponibles au format deb (Debian, Ubuntu) et rpm (CentOS, Fedora).
Pour l'isolation dans Firejail des espaces de noms (namespaces), AppArmor et la filtration des appels système (seccomp-bpf) dans Linux. Après son lancement, le programme et tous ses processus enfants utilisent des vues distinctes des ressources du noyau, telles que la pile réseau, la table des processus et les points de montage. Les applications interdépendantes peuvent être regroupées dans un seul sandbox. Si désiré, Firejail peut également être utilisé pour exécuter des conteneurs Docker, LXC et OpenVZ.
Contrairement aux mécanismes d'isolation par conteneurs, Firejail est extrêmement en configuration et ne nécessite pas de préparation d'image système — la composition du conteneur se forme à la volée en fonction du contenu du FS actuel et est supprimée après la fin de l'application. Des moyens flexibles pour définir des règles d'accès au système de fichiers sont fournis, il est possible de déterminer quels fichiers et répertoires ont un accès autorisé ou interdit, de connecter des systèmes de fichiers temporaires (tmpfs) pour les données, de restreindre l'accès à des fichiers ou répertoires en lecture seule, de combiner des répertoires via un bind-mount et overlayfs.
Des profils d'isolation des appels système ont été préparés pour un grand nombre d'applications populaires, y compris Firefox, Chromium, VLC et Transmission. Dans le fichier de configuration /etc/firejail/firejail.config
Dans cette nouvelle version :
- la configuration file-copy-limit, qui permet de limiter la taille des fichiers qui seront copiés en mémoire lors de l'utilisation des options «—private-*» (par défaut, la limite est fixée à 500 Mo). la configuration file-copy-limit, permettant de limiter la taille des fichiers qui seront copiés en mémoire lors de l'utilisation des options « --private-* » (par défaut, la limite est fixée à 500 Mo).
- Des modèles pour créer de nouveaux profils de restriction d'applications ont été ajoutés au répertoire /usr/share/doc/firejail.
- L'utilisation des débogueurs est autorisée dans les profils.
- Le filtrage des appels système a été amélioré grâce au mécanisme seccomp.
- Détection automatique des drapeaux du compilateur assurée.
- L'appel de chroot s'effectue maintenant non pas sur la base du chemin, mais en utilisant les points de montage basés sur les descripteurs de fichiers.
- Le répertoire /usr/share a été ajouté à la liste blanche de divers profils.
- De nouveaux scripts d'assistance gdb-firejail.sh et sort.py ont été ajoutés à la section contrib.
- Renforcement de la protection lors de l'exécution de code privilégié (SUID).
- De nouveaux indicateurs conditionnels HAS_X11 et HAS_NET ont été implémentés pour vérifier la présence d'un serveur X et l'accès réseau dans les profils.
- Des profils pour le lancement isolé d'applications ont été ajoutés (le nombre total de profils a été porté à 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.
Source : opennet.ru
