MartinV hat geschrieben:Hallo!
Ich nutze oft docker, um wine in einer Sandbox laufen zulassen.
Hallo
Aus meiner Sicht beginnt hier eigentlich schon der primäre Fehler. Denn die Aufgabe von Docker ist es, Systeme isoliert in Containern zu betreiben, nicht vereinzelte Anwendungen zu isolieren. Sprich der eigentliche Fokus von Docker, liegt auf etwas gänzlich Anderem. Für diese Belange wäre Firejail eine weit bessere Option, die genau für so etwas designt wurde. Letztlich verfügt Firejail auch bereits über ein Sandbox-Profil für Wine. Ein weiterer Vorteil wäre, dass Firejail auch mit Nutzerrechten funktioniert, weil Firejail prinzip-bedingt eine Setuid-Binary ist, die erst eine entsprechende Sandbox mit Rootrechten etabliert, aber letztlich auf Nutzerrechte reduziert mit dem isolierten Prozess gestartet wird. Dagegen läuft Docker mit Rootrechten, und müsste ohnehin anderweitig gesichert werden. Und technisch gesehen greifen sowohl Docker als auch Firejail, auf dieselben Kernel-Funktionen zurück. Normalerweise sollte man sehr vorsichtig mit Setgid/Setuid-Rechten sein, und besser nicht daran herumschrauben, weil diese Rechte zwar einerseits viel Komfort beherbergen, aber auch unmittelbare Einfallstore sein können beim kleinsten Fehler.
Wenn man mal von einer gewöhnlichen Standardinstallation von Debian ausgeht, dann existieren schon mal an die 30 oder mehr Setgid/Setuid-Binarys für etliche Zwecke. Und je nach Desktop kann das durchaus noch wachsen, aufgrund von Komfortfunktionen. Ab Installation entziehe ich all diesen Setgid/Setuid-Binarys ihre Rechte, mit Ausnahme von su und Firejail. Damit wird die mögliche Angriffsfläche schon erheblich reduziert. Für Docker würde ich auch eine Systemd-Unit-File anlegen, um Docker darüber zusätzlich isoliert auszuführen.