Bubblewrap
bubblewrap - Dienstprogramm für die Manipulation von nicht privilegierten Chroots und Namensräumen
Beschreibung
bubblewrap verwendet Linux-Namensräume, um nicht privilegierte Container zu starten. Diese Container können verwendet werden, um semi-vertrauenswürdige
Anwendungen wie Flatpak-Apps, Bild-/Video-Miniaturansichten und Webbrowser-Komponenten zu sandboxen oder um Programme in einem anderen
Bibliotheksstapel wie einer Flatpak-Laufzeit oder einer anderen Debian-Version auszuführen.
Standardmäßig basiert dieses Paket auf einem Kernel mit aktivierten Benutzernamensräumen. Offizielle Debian- und Ubuntu-Kernel sind geeignet.
Auf Kerneln ohne Benutzernamensräume können Systemadministratoren bwrap mit Root-Rechten laufen lassen (make the bwrap executable setuid root), sodass nicht privilegierte Container erstellt werden können, obwohl dies bei normalen Benutzerprozessen nicht möglich ist.
Bubblewrap ist ein leichtgewichtiges, unprivilegiertes Tool zur Erstellung von Sandbox-Umgebungen unter Linux. Es nutzt Linux-Namespaces (wie Mount-, PID- oder Netzwerk-Namespaces), um Anwendungen vom restlichen System zu isolieren. Es dient als technisches Fundament für größere Projekte wie Flatpak.
- Wofür wird es verwendet?
- Isolierung: Sandboxen von potenziell unsicheren Anwendungen (z. B. Webbrowser, Bildbetrachter).
- Dateisystem-Anpassung: Ausführen von Programmen in abweichenden Bibliotheks-Umgebungen oder isolierten Verzeichnisbäumen.
- Keine Root-Rechte nötig: Dank Linux-User-Namespaces kann Bubblewrap standardmäßig ohne administrative Rechte (root) ausgeführt werden.
- Funktionsweise
Bubblewrap wird über den Befehl bwrap aufgerufen. Die Stärke und Sicherheit der Sandbox wird komplett durch die übergebenen Argumente bestimmt. [1]
- Typischer Befehlaufbau
- Namespaces definieren: Erstellen von isolierten Räumen (z. B.
--unshare-all). - Dateisystem einhängen: Definieren, welche Verzeichnisse des Host-Systems für die Anwendung sichtbar sein sollen (z. B. Read-only oder beschreibbar).
- Prozess starten: Ausführen der isolierten Anwendung innerhalb der definierten Sandbox.