Veröffentlichung von Bubblewrap 0.4.0, einem Layer zum Erstellen isolierter Umgebungen

Verfügbar neue Version des Tools Bubblewrap 0.4.0, das für die Organisation von isolierten Umgebungen unter Linux gedacht ist und auf der Anwendungsebene für nicht privilegierte Benutzer funktioniert. In der Praxis wird Bubblewrap vom Flatpak-Projekt als Schicht zur Isolierung von Anwendungen verwendet, die aus Paketen gestartet werden. Der Code des Projekts ist in C geschrieben und wird unter der GPLv3-Lizenz bereitgestellt. unter der LGPLv2+-Lizenz.

Zur Isolierung werden die traditionellen Technologien der Container-Virtualisierung für Linux verwendet, die auf cgroups, Namespaces, Seccomp und SELinux basieren. Um privilegierte Operationen zur Konfiguration des Containers durchzuführen, wird Bubblewrap mit Root-Rechten (eine ausführbare Datei mit SUID-Flag) gestartet, gefolgt von einem Privilegienabbau nach Abschluss der Containerinitialisierung.

Die Aktivierung der Benutzer-Namensraum-Identifikatoren (user namespaces), die es ermöglichen, in Containern einen eigenen, separaten Satz von Identifikatoren zu verwenden, ist für den Betrieb nicht erforderlich, da sie standardmäßig in vielen Distributionen nicht funktioniert (Bubblewrap wird als eingeschränkte SUID-Implementierung einer Teilmenge der Möglichkeiten von User-Namespace positioniert – zur Ausschluss aller Benutzer- und Prozessidentifikatoren aus der Umgebung, außer dem aktuellen, werden die Modi CLONE_NEWUSER und CLONE_NEWPID verwendet). Für zusätzlichen Schutz werden Programme, die unter
Bubblewrap ausgeführt werden, im PR_SET_NO_NEW_PRIVS-Modus gestartet, der das Erlangen neuer Privilegien verbietet, beispielsweise wenn das setuid-Flag gesetzt ist.

Die Isolierung auf Dateisystemebene erfolgt durch die standardmäßige Schaffung eines neuen Mount-Namensraums, in dem mit tmpfs ein leeres Root-Dateisystem erstellt wird. Notwendige Partitionen eines externen Dateisystems werden bei Bedarf im Modus „mount —bind“ an dieses Dateisystem angehängt (zum Beispiel wird bei der Ausführung mit der Option „bwrap —ro-bind /usr /usr“ das Verzeichnis /usr aus dem Hauptsystem im Nur-Lese-Modus bereitgestellt). Die Netzwerkfunktionen beschränken sich auf den Zugang zum Loopback-Interface, während der Netzwerkstack durch die Flags CLONE_NEWNET und CLONE_NEWUTS isoliert wird.

Ein wesentliches Unterscheidungsmerkmal zu einem ähnlichen Projekt Firejail, der ebenfalls ein Startmodell mit setuid verwendet, besteht darin, dass die Bubbleswrap-Schicht zur Erstellung von Containern nur das notwendige Minimum an Funktionen enthält, während alle erweiterten Funktionen, die zum Ausführen von grafischen Anwendungen, zur Interaktion mit dem Desktop und zur Filterung von Anfragen an Pulseaudio erforderlich sind, auf die Seite von Flatpak verschoben werden und nach dem Entziehen der Berechtigungen ausgeführt werden. Firejail hingegen vereint alle zugehörigen Funktionen in einer ausführbaren Datei, was die Überprüfung und die Sicherheitswartung erschwert. auf.

Die neue Version ist bemerkenswert, da sie die Unterstützung für die Anbindung bestehender Benutzer-Namespaces (user namespaces) und Prozess-Namespaces (pid namespaces) implementiert. Um die Verbindung von Namespaces zu steuern, wurden die Flags „—userns“, „—userns2“ und „—pidns“ hinzugefügt.
Diese Funktion funktioniert nicht im setuid-Modus und erfordert die Verwendung eines separaten Modus, der ohne Root-Rechte arbeiten kann, jedoch die Aktivierung von
Benutzernamespace in dem System voraussetzt (standardmäßig in Debian und RHEL/CentOS deaktiviert) und schließt nicht aus, dass Betriebsführung potenziell verbleibend Schwachstellen Für die Begrenzung der "user namespaces" gibt es neue Funktionen. In der neuen Version von Bubblewrap 0.4 wird auch die Möglichkeit hervorgehoben, mit der C-Bibliothek musl anstelle von glibc zu kompilieren, sowie die Unterstützung zur Speicherung von Informationen über Namespaces in einer JSON-Statistikdatei.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster