La version de l'outil pour l'organisation du travail d'environnements isolés Bubblewrap 0.6 est disponible, généralement utilisée pour restreindre certaines applications pour les utilisateurs non privilégiés. En pratique, Bubblewrap est utilisé par le projet Flatpak comme couche d'isolation pour les applications exécutées à partir de paquets. Le code du projet est écrit en C et distribué sous la licence LGPLv2+.
L'isolation utilise des technologies de virtualisation de conteneurs traditionnelles pour Linux, basées sur l'utilisation de cgroups, d'espaces de noms (namespaces), de Seccomp et de SELinux. Pour effectuer des opérations privilégiées de configuration du conteneur, Bubblewrap est lancé avec les droits root (fichier exécutable avec le drapeau suid) et les privilÚges sont ensuite réinitialisés aprÚs l'initialisation du conteneur.
L'activation dans le systĂšme d'espaces de noms d'identifiants d'utilisateur (user namespaces), permettant d'utiliser un ensemble distinct d'identifiants dans les conteneurs, n'est pas requise pour le fonctionnement, car par dĂ©faut, elle ne fonctionne pas sur de nombreuses distributions (Bubblewrap est positionnĂ© comme une implĂ©mentation suid limitĂ©e d'un sous-ensemble des fonctionnalitĂ©s des espaces de noms d'utilisateurs â pour exclure tous les identifiants d'utilisateurs et de processus de l'environnement, sauf pour le courant, les modes CLONE_NEWUSER et CLONE_NEWPID sont utilisĂ©s). Pour une protection supplĂ©mentaire, les programmes exĂ©cutĂ©s sous Bubblewrap sont lancĂ©s en mode PR_SET_NO_NEW_PRIVS, interdisant l'acquisition de nouveaux privilĂšges, par exemple en cas de prĂ©sence du drapeau setuid.
La principale distinction par rapport Ă un projet similaire
La distinction clé par rapport à un projet similaire, Firejail, qui utilise également un modÚle de démarrage avec application de setuid, est que dans Bubblewrap, la couche de création de conteneurs n'inclut que le minimum requis de fonctionnalités, tandis que toutes les fonctions avancées nécessaires au lancement d'applications graphiques, à l'interaction avec le bureau et à la filtration des appels à Pulseaudio, sont transférées à Flatpak et exécutées aprÚs que les privilÚges aient été réinitialisés. Firejail, quant à lui, regroupe toutes les fonctions associées dans un seul fichier exécutable, ce qui complique son audit et sa gestion de la sécurité.
Dans cette nouvelle version :
- Le support du systÚme de build Meson a été ajouté. Le support de la construction via Autotools est toujours maintenu, mais sera supprimé dans l'une des prochaines versions.
- L'option « --add-seccomp » a été implémentée pour ajouter plus d'un programme seccomp. Un avertissement a été ajouté indiquant que si l'option « --seccomp » est spécifiée plusieurs fois, seul le dernier paramÚtre sera appliqué.
- La branche master du dépÎt git a été renommée en main.
- Un support partiel de la spĂ©cification REUSE a Ă©tĂ© ajoutĂ©, unifiant le processus de spĂ©cification des informations sur les licences et les droits d'auteur. Des en-tĂȘtes SPDX-License-Identifier ont Ă©tĂ© ajoutĂ©s Ă de nombreux fichiers de code. Suivre les recommandations REUSE permet de simplifier la dĂ©termination automatique de la licence applicable Ă quelles parties du code de l'application.
- Une vérification de la valeur du compteur d'arguments de la ligne de commande (argc) a été ajoutée et une sortie d'urgence est assurée si le compteur est égal à zéro. Ce changement permet de bloquer les problÚmes de sécurité causés par un traitement incorrect des arguments passer sur la ligne de commande, comme le CVE-2021-4034 dans Polkit.
Source : opennet.ru
