-
-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider an option to ask for RPC target VM in dom0 #910
Comments
Comment by marmarek on 28 Oct 2014 13:52 UTC Discussion: |
Comment by joanna on 31 Oct 2014 12:07 UTC |
Moving discussion from #2436: I think the target VM argument should be preserved. There are multiple cases when you want to simply allow action for specific target VM without bothering user with confirmation. For example in 'devel' VM you may want to copy the outcome to some 'testing' VM where you run various tests. You don't want to select 'testing' VM hundreds times a day (you have a script to call qvm-copy-to-vm, or simply call it from shell history), but on the other hand you still may want to occasionally copy some files to a different VM. This means I wouldn't touch the cases when policy explicitly says 'allow'. If you have policy The case of 'deny' action for existing vs non-existing target VM is easy - error message (if any) should not be blocking. I should note that policy right now allow also to override target VM choice. You may specify something like:
Currently it means "whatever existing target VM name (if any) was provided, redirect service to The thing to reconsider is what about 'ask' action. There are few cases:
Currently each of those cases are handled differently:
I think non-existing target VM should be treated as no target VM provided at all (still - if the default action is 'ask'). So, we have two things to design:
And some UX issue: what should be the default target in that dialog (if any). If called provided one - I think it should be used), but otherwise - anything at all? |
A first thought is to have the list of VMs always displayed, and the source-specified intended-target be the initial selection of that dropdown (or in case of text box: have it pre-populated with name of intended target). I don't know how I feel about that though, since I feel like it leads to building a user habit of simply pressing enter whenever source-suggested target exists, and what happens when one day the source is malicious and suggests a different target? User habit is still to press enter! Would they even notice the difference? Likely not... Therefore, I think handling both "ask" cases (with and without suggested target) as if there were never a suggested target would be a good thing. Another case we need to consider is an |
The point is to have only subset of VMs there - so it should be impossible to execute "dangerous" operation. Of course for that, someone would need to select which VMs should be there (set policy to 'deny' for others - or even 'deny' by default and 'ask' for a few). And the case you've described is exactly what we currently have - only a confirmation of what calling VM requested. I'm not saying it's the best possible, but not bad either. I think much bigger problem with it is focus stealing (#1166) - it's simple enough to guess when user will press enter and execute some qrexec operation just before...
That's a good question. I'd say in that case, |
I agree, but my point was that even with perfect focus stealing prevention, pre-populating target in UI according to suggestion from (un-trusted!) rpc source seems to me a bad idea. It conditions users to accept the default, where the default is attacker-controlled.
Sounds reasonable to me.
Yes. This sounds to me like the best option. |
Hi, I'd like to start on this. Also, should I follow any particular Qt guidelines at all? |
Actually, GTK would be better, as new Qubes Manager would be in GTK, and also it will be more consistent with now default Xfce environment. I think it's better to create separate python file this GUI dialog. |
Noted. Question: how's the test strategy here? Are they all integration tests, or are there unit tests as well? How can I add testcases, and run them in a local environment? Are they all in tests, or somewhere else? |
Thanks for taking this on, @boring-stuff! I've added this to the community-developed feature tracker. |
…bject This way it will work independently from where qrexec-policy tool will be called (in most cases - from a system service, as root). This is also very similar architecture to what we'll need when moving to GUI domain - there GUI part will also be separated from policy evaluation logic. QubesOS/qubes-issues#910
This include refactoring out one-function-class GtkIconGetter. QubesOS/qubes-issues#910
The environment there is way too old. QubesOS/qubes-issues#910
Chosen this option right now - it was just few lines of code. |
Include actual target to which service was allowed (either overriden by policy, or chosen by user). QubesOS/qubes-issues#910
This means "default" in Qubes 4.0. QubesOS/qubes-issues#910
This way: - VM prompt do know VM list, the list may be filtered based on policy - source VM don't learn name of target VM Fixes QubesOS/qubes-issues#910
Automated announcement from builder-github The package
|
Automated announcement from builder-github The package
|
Automated announcement from builder-github The package
|
Automated announcement from builder-github The package
|
Reported by marmarek on 28 Oct 2014 13:49 UTC
This would allow for example copy some files out of VM, without telling the VM name of target VM.
In case of filecopy, it would not change user experience - user will still get a single prompt for VM name. In fact it will even simplify some things:
Technically, when source VM sends empty target VM field in service request, qrexec-policy would handle this case and show the prompt, instead of failing the request.
Migrated-From: https://wiki.qubes-os.org/ticket/910
The text was updated successfully, but these errors were encountered: