Not logged in. · Lost password · Register

errnosys
Member since Oct 2010
96 posts
Subject: Zoom in firejail sandbox
+2 Suyooo, nakami
Hallo allerseits,

nachdem ja an der FAU ja um Zoom nicht mehr herumkommt, habe ich mir eine Konfiguration Zoom auf Linux gebastelt:

  • Zoom läuft in einer firejail sandbox
  • Man muss kein Zoom-Paket installieren, es gibt kein Zoom-executable im $PATH.
  • Es besteht also keine Gefahr, dass man es versehentlich außerhalb der sandbox ausführt
  • In der Sandbox gibt es eine eigene Firefox-Konfig, sodass Login per SSO möglich ist.

Vielleicht ist es ja für euch nützlich.

Den code findet ihr hier: https://github.com/t-wissmann/zoom-firejail
Theorem of the month: L regul[äa]r
=> ∃p∈ℕ: ∀x∈L,|x|≥p: ∃u,v,w∈Σ*,uvw = x: |uv|≤p, v≠ε, ∀i∈ℕ: uvⁱw∈L
zge
(〜 ̄▽ ̄)〜
Avatar
Member since Nov 2017
147 posts
Was sind Vorteile/Nachteile davon im Vergleich zum Zoom Flatpak?
;;
errnosys
Member since Oct 2010
96 posts
Flatpak habe ich noch nie ausprobiert, deshalb kann ich es nicht sagen. Irgendwas hatte mich damals davon abgehalten flatpak zu nutzen..
Theorem of the month: L regul[äa]r
=> ∃p∈ℕ: ∀x∈L,|x|≥p: ∃u,v,w∈Σ*,uvw = x: |uv|≤p, v≠ε, ∀i∈ℕ: uvⁱw∈L
noctux
Member since Sep 2011
17 posts
+3 zge, Rachus, errnosys
Kleiner Hinweis: Sowohl flatpak als auch Firejail sind halt relativ dicke Setuidbinaries, und zumindest bei Firejail sind in den letzten Jahren auch immer wieder zuverlässig CVEs rausgefallen, teilweise auch etwas sehr offensichtliche, die man in einer Sandboxinglösung nicht erwarten würde wie "Ja wir konkatenieren uns mal einen String zusammen und werfen system drauf, ohne escaping und mit elevierten Privilegien, klar". Flatpak hat den Sandboxingteil abgespalten in Bubblewrap und damit ein bisschen eine sauberere Trennung, dafür sonst nochmal viel mehr Überbau und Komplexität reingezogen mit Portalgestöpsel, etc.pp..

Insofern würde ich fast eher zu Einsatz von Zoom (wenn es denn der nativeclient sein MUSS) in einer VM raten. Da ist die Angriffsfläche zwar auch hoch, aber doch deutlich aktiver abgeklopft als bei Firejail/Flatpak. Zumindest USB-Webcams lassen sich auch problemlos durchreichen, Audio auch, sogar inklusive Pulseaudiointegration im Host bei Bedarf. Vor/Nachteil: die VM hat keinen Zugriff auf Fenster vom Host, insofern können dann nur Inhalte aus der VM geteilt werden so erforderlich. Alternativ kann man da (vermutlich, ungetestet) was mit virtuellen Kamerageräten via v4l2loopback frickeln, könnte aber widerlich werden.

Ansonsten kommt man aber vielfach auch mit dem Webclient in chromium aus; was mir als dysfunktional aufgefallen wäre: Umfragen funktionieren nicht, auch kann man nicht steuern welchen Videostream man erhält, sondern das scheint Zoom serverseitig anhand der letzten Sprecheraktivität auszuwählen. Selbst am Gespräch teilnehmen inklusive Screensharing funktionierte hingegen bei mir problemlos.
noctux
Member since Sep 2011
17 posts
Kleiner nachklapp noch zu flatpack, weils mich dann grade doch kurz unter den Fingern gejuckt hat, da mal reinzuschauen, und man nicht sagen können soll, ich hätte das (verglichen mit firejail) irgendwem empfohlen :):

Aus der zoom-config unter https://github.com/flathub/us.zoom.Zoom/blob/25e14f8141cdc…

        "--share=ipc",
        "--socket=x11",
        "--socket=pulseaudio",
        "--share=network",
        "--device=all",
        "--filesystem=xdg-documents/Zoom:create",
        "--env=QT_QPA_PLATFORM=",
        "--own-name=org.kde.*",
        "--talk-name=org.freedesktop.ScreenSaver",
        "--persist=.zoom",
        "--persist=.config"

Pro: Dateisystem, vor allem das home wird gesandboxed
Contra: Ansonsten halt eher wenig; spätestens mit dem X11-Socket ist Sicherheit doch stark komprommitiert: das Programm kann ohne weitere Meldungen beliebige X11-Fenster außerhalb lesen (gut, das ist vielleicht sogar gewünscht(?)), aber eben auch in mein sudo-passwort abgreifen, ins root-terminal tippen...

Davon abgesehen bleibt halt auch sonst die Angriffsfläche, sowohl der Namespace-API im Kern als auch der flatpack-mechanismen wie Portale.
Ford Prefect
Pangalaktischer- Donnergurgler-Trinker
(Administrator)
Avatar
Member since Oct 2002
3282 posts
Was spricht eigentlich dagegen, einen extra Nutzer anzulegen, mit dessen Account einen zweiten X-Server zu starten (oder die Multisessionfähigkeit der gebräuchlichen DMs zu nutzen) und Zoom zu benutzen?

Das ist zwar nicht so bequem wie ein Fenster auf dem selben Desktop aber erscheint mir die Abkapselung deutlich einfacher zu realisieren als Flatpack, Firejail, VM mit RDP. Keep it simple, stupid.
Quote: <mute> mit Miranda macht irc kein spass :P <Loki|muh> dann geh doch wieder :)
<mute> ich benutze kein miranda <Loki|muh> na und? :)
errnosys
Member since Oct 2010
96 posts
Manchmal braucht man Screen-sharing schon. Zwischen zwei X-Sessions zu wechseln finde ich richtig unpraktisch, gerade wenn man z.B. an irgendwas arbeitet (unabhängig davon ob es in der Sitzung darum oder um etwas anderes geht). Evtl. reicht es ja zur abkapselung, die Zoom-Fenster in ein Xephyr zu verbannen.
Theorem of the month: L regul[äa]r
=> ∃p∈ℕ: ∀x∈L,|x|≥p: ∃u,v,w∈Σ*,uvw = x: |uv|≤p, v≠ε, ∀i∈ℕ: uvⁱw∈L
Ford Prefect
Pangalaktischer- Donnergurgler-Trinker
(Administrator)
Avatar
Member since Oct 2002
3282 posts
Benutzt du Xephyr in deinem Firejail oder Xpra?

Sagen wir ein anderer Nutzer, Zoom in dessen Home installiert, was dann von dem Account aus im Xephyr läuft. Was sind hier die Nachteile ggü. Firejail? Fände ich interessant.
Quote: <mute> mit Miranda macht irc kein spass :P <Loki|muh> dann geh doch wieder :)
<mute> ich benutze kein miranda <Loki|muh> na und? :)
errnosys
Member since Oct 2010
96 posts
Bei einem anderen Nutzer müsste man erstmal die Verbindung zu Pulseaudio hinbekommen; da weiß ich nicht was man machen muss.
Bisher hab ich das mit Xephyr nicht probiert, aber wenn dann würde ich das versuchen mit firejail zu kombinieren.
Theorem of the month: L regul[äa]r
=> ∃p∈ℕ: ∀x∈L,|x|≥p: ∃u,v,w∈Σ*,uvw = x: |uv|≤p, v≠ε, ∀i∈ℕ: uvⁱw∈L
DerRoteBaron
Avatar
Member since Dec 2009
397 posts
Quote by errnosys:
Bei einem anderen Nutzer müsste man erstmal die Verbindung zu Pulseaudio hinbekommen; da weiß ich nicht was man machen muss.
Bisher hab ich das mit Xephyr nicht probiert, aber wenn dann würde ich das versuchen mit firejail zu kombinieren.

Das Modulsystem von Pulseaudio erlaubt relativ einfach ueber einen Unix-Socket Zugriff zu ermoeglichen (mittels module-native-protocol-unix mit dem socket-Parameter). Auf der Gegenseite muss dann der PULSE_SERVER per Environment oder per X Property gesetzt werden.
https://gitlab.cs.fau.de/DerRoteBaron/
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen