La version 0.8 de l'outil Bubblewrap pour l'organisation du travail dans des environnements isolés est désormais disponible. Il est généralement utilisé pour limiter l'accÚs à des applications spécifiques pour des utilisateurs non privilégiés. En pratique, Bubblewrap est utilisé par le projet Flatpak comme une 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 :
- Une option « âdisable-userns » a Ă©tĂ© ajoutĂ©e pour dĂ©sactiver la crĂ©ation d'un espace de noms d'identifiants utilisateurs dans l'environnement sandbox.
- Une option « âassert-userns-disabled » a Ă©tĂ© ajoutĂ©e pour vĂ©rifier qu'un espace de noms d'identifiants utilisateurs existant est utilisĂ© avec l'option « âdisable-userns » activĂ©e.
- La clarté des messages d'erreur liés à la désactivation des réglages CONFIG_SECCOMP et CONFIG_SECCOMP_FILTER dans le noyau a été améliorée.
Source : opennet.ru
