mirror of
https://github.com/netblue30/firejail.git
synced 2026-05-15 14:16:14 -06:00
[GH-ISSUE #389] Add feature to control/restrict communications through DBus #280
Labels
No labels
LTS merge
LTS merge
bug
bug
converted-to-discussion
doc-todo
documentation
duplicate
enhancement
file-transfer
firecfg
firejail-in-firejail
firetools
graphics
help wanted
information_old
installation
invalid
modif
moved
needinfo
networking
notabug
notourbug
old-version
overlayfs
packaging
profile-request
pull-request
question
question_old
removal
runtime-permissions
sandbox-ipc
security
stale
wiki
wiki
wontfix
wordpress
workaround
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/firejail#280
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @brunonova on GitHub (Mar 27, 2016).
Original GitHub issue: https://github.com/netblue30/firejail/issues/389
Currently, all programs can access all of the passwords stored in the GNOME Keyring in unlocked keyrings without any control.
This access is done through DBus, which Firejail doesn't restrict, I think.
Creating a new network namespace with
--net=noneseems to block DBus completely, but that can break some other features (like the global menus in Ubuntu).So, if at all possible, some options to control and restrict communications through DBus, and thus block access to GNOME Keyring (and others) would be nice.
Do you think this would be possible?
In AppArmor, it seems that this rule does the job, though I don't know if it's enough:
However, AppArmor doesn't seem to work correctly inside mount namespaces, so I can't use this with Firejail.
@netblue30 commented on GitHub (Mar 28, 2016):
The only way to disable DBus in Firejail is to create a new network namespace: --net=none or --net=eth0, depending if you need network connectivity or not.
AppArmor seems to have support for filtering messages over DBus, probably a simple AppArmor filter will do the job.
In my opinion the real fix is not to use the keyring. The concept is broken, no amount of sandboxing will ever fix it. I would never put a password of any value in a keyring - anybody can read it from there.
@brunonova commented on GitHub (Mar 28, 2016):
AppArmor can indeed do this, as I mentioned, but it doesn't seem to work very well with mount namespaces.
With the current state of the keyring, I also don't store anything valuable there.
Maybe in the future (snappy/xdg-app?) they'll improve the security by allowing programs to access only the passwords they create, and require the user to enter his/her password before revealing them.
If you don't think it's possible or feasible to implement this feature, you may close this Issue.