Die Veröffentlichung von Bubblewrap 0.9, einer Schicht zur Erstellung isolierter Umgebungen.

Nach einem Jahr der Entwicklung wurde die neue Version des Tools zur Organisation von isolierten Umgebungen Bubblewrap 0.9 veröffentlicht, das zur EinschrÀnkung einzelner Anwendungen von unprivilegierten Benutzern verwendet wird. In der Praxis wird Bubblewrap von dem Projekt Flatpak als Schicht zur Isolierung von aus Paketen startenden Anwendungen eingesetzt. Der Projektcode ist in C geschrieben und steht unter der LGPLv2+-Lizenz.

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:

  • Die im Quellpaket enthaltenen Dateien, die in Autotools generiert wurden, wurden entfernt. FĂŒr den Build wird jetzt empfohlen, das Build-System Meson zu verwenden. Die optionale UnterstĂŒtzung fĂŒr Autotools bleibt vorerst erhalten, soll jedoch in zukĂŒnftigen Versionen entfernt werden.
  • Die Option „—argv0“ wurde hinzugefĂŒgt, um den Null-Argumentwert der Befehlszeile festzulegen (argv[0] — der Name der ausfĂŒhrbaren Datei, z.B. „—argv0 /usr/bin/test“).
  • Die Option „—symlink“ wird jetzt nur aktiviert, wenn die symbolische VerknĂŒpfung bereits existiert und auf die gewĂŒnschte Zieldatei verweist.
  • Die Option „—cap-add“, die zur Festlegung von Capability-Flags wie „CAP_DAC_READ_SEARCH“ verwendet wird, ist dokumentiert.
  • Die Informativen Fehlerausgaben wurden bei einem Mount-Fehler verbessert.
  • Der Prozess zur Erstellung von Unit-Tests wurde vereinfacht.
  • Im Nutzungsszenario wird die UnterstĂŒtzung fĂŒr Ă€ltere Versionen von Python eingestellt.
  • Die Speicheroperationen wurden verbessert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4