Woran kann man erkennen, dass die Browser-eigene Sandbox behindert wird?

Hallo zusammen,

der Kollege @Chief1945 hatte mal gut aufgeklärt, dass bei Flatpak durch den Seccomp-Filter die Browser-eigene Namespace-Layer-Sandbox verhindert wird.

Woran kann ich das erkennen sowohl bei Firefox als auch bei Chromium-basierten Browsern (z. B. Brave)?

Browser haben ein self-reporting tool, das aber nicht 100% zuverlässig ist.

  • Chromium: chrome://sandbox aufrufen
  • Firefox: about:support aufrufen, Abschnitt „Isolierte Umgebungen“

Ich verlasse mich eher auf externe Methoden. Wenn es rein um die Namespaces geht, ist die einfachste Methode für Laien:

  • Den Browser via offzieller Methode nativ installieren, z.B. via Distro-Paketmanager, sowie via Flathub installieren. Ersterer ist die Referenz.
  • In beiden Browsern die gleichen Webseiten aufrufen
  • Mit lsns die Namespacestruktur beider Browser anzeigen lassen, anschaulicher mit lsns -T.

Der Unterschied zwischen beiden sollte sofort ins Auge springen.

2 „Gefällt mir“

Wenn du Firefox nicht als Flatpak ausführst und die Sandbox behindert wird dann zeigt es auch eine Meldung, das einige Sicherheitsmaßnahmen nicht richtig funktionieren.

Nicht bei Flatpak

Danke @Chief1945 !

Ich habe das auch gleich mal ausprobiert, mit lsns sieht man das richtig gut.

Mir sind dabei aber noch paar Dinge aufgefallen:

  1. Vergleiche ich den Linux-Firefox mit dem Windows-Firefox auf about:support, dann sehe ich, dass der Windows-Firefox bei den Ebenen der isolierten Umgebung 7 hat – der Linux nur 4.
    Bedeutet das, dass der Windows-Firefox bessere interne Sandboxen hat?

  2. Scheinbar kann man unter about:config die Zahl für die Ebenen der isolierten Umgebung nach oben setzen – würde das einen sicherheitstechnischen Gewinn bringen, wenn ich beim Linux-Firefox von 4 auf 7 hochsetze?

  3. Jetzt kommt wohl die interessanteste Frage. Ich habe spaßeshalber auch den Snap-Firefox angeguckt. Auf Linux Mint 21 zeigt er sowohl unter about:support als auch mit lsns das gleiche an wie die DEB-Version. Siehe Screenshot:

Mache ich das gleiche auf Ubuntu 24.04.1 LTS, dann ist dort die Snap-Version etwas anders: Unter about:support gibt es nun die Option „User-Namespaces für privilegierte Prozesse“, welche auf true steht. Die Option „User-Namespaces“ steht auf false:

Ich schätze mal, dass die Option „User-Namespaces für privilegierte Prozesse“ besser ist und deshalb auf true steht (und die „normalen“ User-Namespaces deshalb auf false, da somit obsolet) – weißt du dazu etwas?

Die lsns-Ausgabe unterscheidet sich interessanterweise auch – hier wird nur ein Prozess angezeigt und zwar nur vom Typ mnt:

Liegt das ggf. daran, dass Ubuntu seine Snaps anders sandboxed?

Das sagt die Zahl nicht aus. Die Levels sind nicht direkt vergleichbar und die angewendeten Techniken für die Sandboxen ziemlich unterschiedlich zwischen Windows und Linux.

Nein. Du kannst auch 100 rein schreiben, bringt nur nichts.

Äh, nein.

Das letzte Mal als ich Firefox Snap unter Ubuntu angeschaut hatte, war die Namespace-Struktur wie beim nativen FF. Weiß nicht mehr welche Version das war. Hast du es mal mit sudo lsns -T probiert?

Vielen Dank @Chief1945

Ah okay, „privilegiert“ hörte sich für mich irgendwie „höher/besser“ an :sweat_smile:
Kannst Du mir denn bitte erklären was zwischen den beiden der Unterschied ist?

So jetzt bin ich endlich mal dazu gekommen das auszuprobieren. Aber auch hier zeigt er nur einen Firefox-Prozess an:

Da stimmt was nicht an deinem Ubuntu-Setup. Habe es gerade in einer Ubuntu VM getestet und bei mir sieht es völlig anders aus. Self-Reporting so wie es soll, auch lsns sieht gut aus. Hast du zufällig ‚unprivileged user namespaces‘ im Rahmen von irgendwelchen Hardeningmaßnahmen im Kernel ausgeschaltet?

Mensch gut, dass wir drüber sprechen. Das Problem lag ganz woanders, nämlich in den Berechtigungen. Unter Einstellungen => Anwendungen => Firefox Web Browser gibt’s die Option „browser-support“. Wenn das deaktiviert ist, dann erscheint das so wie auf meinen Screenshots. Sobald ich das aktiviere, passt es sowohl unter lsns als auch unter about:support.

Eine Frage zur Windows World.
Im Windows Task-Manager sind mehrere FF-Prozesse aufgelistet. Handelt es sich hier um die jeweiligen Namespaces (analog Linux mit lsns)?

Das was du siehst ist nur die Mult-Prozess-Architektur. Windows hat kein Equivalent zu Linux Namespaces. Es werden andere Methoden zum Sandboxen verwendet. Hier am Beispiel Chromium: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/design/sandbox.md

1 „Gefällt mir“