Bubblewrap 0.5.0 Veröffentlichung, Schichten zur Erstellung isolierter Umgebungen

Die Veröffentlichung des Tools zur Organisation von isolierten Umgebungen Bubblewrap 0.5.0 steht zur VerfĂŒgung, das in der Regel zur EinschrĂ€nkung bestimmter Anwendungen von nicht privilegierten Benutzern verwendet wird. In der Praxis wird Bubblewrap von dem Projekt Flatpak als Schicht zur Isolation von Anwendungen, die aus Paketen gestartet werden, verwendet. Der Projektcode ist in der Programmiersprache C geschrieben und unter der Lizenz LGPLv2+ verfĂŒgbar.

Zur Isolation werden traditionelle Linux-Technologien der Container-Virtualisierung verwendet, die auf cgroups, NamensrĂ€umen (namespaces), Seccomp und SELinux basieren. Um privilegierte Operationen zur Konfiguration des Containers durchzufĂŒhren, wird Bubblewrap mit Root-Rechten (ausfĂŒhrbare Datei mit suid-Flag) gestartet, gefolgt von einem RĂŒcksetzen der Privilegien nach Abschluss der Initialisierung des Containers.

Die Aktivierung von Benutzer-NamensrĂ€umen (user namespaces) im System, die es ermöglichen, einen eigenen separaten Satz von Identifikatoren in Containern zu verwenden, ist fĂŒr den Betrieb nicht erforderlich, da dies standardmĂ€ĂŸig in vielen Distributionen nicht funktioniert (Bubblewrap wird als eingeschrĂ€nkte suid-Implementierung einer Teilmenge der Benutzer-Namensraum-Funktionen positioniert — um alle Identifikatoren von Benutzern und Prozessen aus der Umgebung auszuschließen, abgesehen vom aktuellen, werden die Modi CLONE_NEWUSER und CLONE_NEWPID verwendet). Zum zusĂ€tzlichen Schutz werden die von Bubblewrap gesteuerten Programme im PR_SET_NO_NEW_PRIVS-Modus gestartet, der den Erhalt neuer Privilegien, z.B. bei Vorhandensein des setuid-Flags, verbietet.

Die Isolation auf Dateisystemebene erfolgt durch die standardmĂ€ĂŸige Erstellung eines neuen Namensraums fĂŒr EinhĂ€ngepunkte (mount namespace), in dem durch tmpfs ein leeres Wurzelverzeichnis erstellt wird. Bei Bedarf werden externe Dateisysteme unter dem Modus „mount —bind“ an dieses Verzeichnis angehĂ€ngt (z.B. wird beim Start mit der Option „bwrap —ro-bind /usr /usr“ das Verzeichnis /usr aus dem Hauptsystem im Nur-Lese-Modus weitergeleitet). Die Netzwerkfunktionen werden durch den Zugriff auf das Loopback-Interface mit Isolation des Netzwerkstapels ĂŒber die Flags CLONE_NEWNET und CLONE_NEWUTS eingeschrĂ€nkt.

Ein wesentliches Unterscheidungsmerkmal zu dem Ă€hnlichen Projekt Firejail, das ebenfalls ein Setuid-Startmodell verwendet, besteht darin, dass Bubblewrap in seiner Containererstellungsschicht nur das notwendige Minimum an Funktionen einbezieht, wĂ€hrend alle erweiterten Funktionen, die fĂŒr die AusfĂŒhrung grafischer Anwendungen, die Interaktion mit dem Desktop und die Filterung von Anfragen an Pulseaudio erforderlich sind, auf die Seite von Flatpak verschoben werden und bereits nach der PrivilegienrĂŒcksetzung ausgefĂŒhrt werden. Firejail hingegen vereint alle zugehörigen Funktionen in einer ausfĂŒhrbaren Datei, was die SicherheitsĂŒberprĂŒfung und den Erhalt eines angemessenen Sicherheitsniveaus erschwert.

In der neuen Version werden Optionen angeboten: „—chmod“ zur Änderung von Zugriffsrechten, „—clearenv“ zum Löschen von Umgebungsvariablen (außer PWD) und „—perms“ zur Bestimmung der Zugriffsrechte, die bei der AusfĂŒhrung der Befehle „—bind-data“, „—dir“, „—file“, „—ro-bind-data“ und „—tmpfs“ angewendet werden. Die Diagnosen von Problemen, die beim Binden des Mounts auftreten, wurden verbessert. FĂŒr zsh wurde die UnterstĂŒtzung der BefehlsvervollstĂ€ndigung durch DrĂŒcken der Tabulatortaste hinzugefĂŒgt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4