Closed rusty-snake closed 8 months ago
Not sure. You can reason that any permission is dangerous.
Some contra arguments:
Mainly 3. 4. and maybe 5. make things more transparent for non-technical users.
Maybe it is possible to say all permissions are dangerous but some are green, some are yellow and some are red.
I had an idea of sandboxing wizard GUI where user will be asked a sequence of questions about what resources they want a new sandbox to have access to. Maybe the each service will have an explanation of security consequences.
Like "Notifications" or "Tray icons" can be used to execute arbitrary commands outside of the sandbox.
Could you share any information on this?
Terminology:
The Problem is that a lot implementations expose all their objects on all their names. So when you say allow org.kde.StatusNotifierWatcher
-name you can call /StatusNotifierWatcher org.kde.StatusNotifierWatcher.RegisterStatusNotifierItem
but also /org/gnome/Shell org.gnome.Shell.Eval
as example.
I've created this table https://github.com/netblue30/firejail/wiki/Restrict-DBus some while ago.
For org.freedesktop.Notifications
the answers are:
--talk=org.freedesktop.Notifications
with --call=org.freedesktop.Notifications=*@/org/freedesktop/Notifications
For Tray Icons this is more difficult because --talk=org.kde.StatusNotifierWatcher
works only for some programs, some require --talk=org.kde.StatusNotifierWatcher --own=org.kde.*
. That's because the spec and api of KStatusNotifierItem are against containered applications as layed down by me at https://github.com/netblue30/firejail/discussions/4053.
I see. Looks like some D-Bus services expose more interfaces on their service name then required.
For Tray Icons this is more difficult because
--talk=org.kde.StatusNotifierWatcher
works only for some programs, some require--talk=org.kde.StatusNotifierWatcher --own=org.kde.*
.
Right now bubblejail only does the --talk=org.kde.StatusNotifierWatcher
which works for Steam. So changing it to --call=org.kde.StatusNotifierWatcher=/StatusNotifierWatcher
should not break anything.
Did you missed a "not" after the "should"?
Rule must be code>--call=org.kde.StatusNotifierWatcher=<b>*@</b/StatusNotifierWatcher I guess?
Testing should be easy, either it works or not.
I tested Steam and it does seem to work with --call=org.kde.StatusNotifierWatcher=*@/StatusNotifierWatcher
I am going to release the version 0.8.1 today. There is a good backlog of bug fixes.
As a user, I would rather not use an interface cluttered with useless warnings.
Some of the "dangerous permissions" are obvious. Allowing network access allows access to the network. Allowing PulseAudio gives access to the microphone. Those are exactly the intended effects of allowing access to those resources.
Other issues require further explanation. "Inherently unsafe", "Sandbox escape". Those are more suited to a blog post or if sufficiently well written and referenced, could be added to docs
.
2. Some permissions like "Direct Rendering" are not dangerous AFAICTY. They only increase possible attack surface of course.
I wonder if disabling the DRM service prevents this attack because it forces the CPU render.
Summary of the attack: It was found a way to steel (read/guess) pixels of an embedded iframe (the attacker controls the embedding site) via GPU site-channels.
¹ When I say dangerous I always mean dangerous by design not by (possible) exploit.
After thinking about it most permissions can either be used in safe or unsafe way so it does not make sense to mark them as either one. For example, you can share some harmless directory or directory with your banking data.
Also we don't want to mislead users with false security unlike what GNOME software does.
Description
The bubblejail-config (and the documentation) could add a warning icon plus tooltip with some details to dangerous permissions.
List without claim to completeness