freedomofpress / freedomofpress/securedrop-dev-docs

docs encourage usage of Standalone VM

Open
#13 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
6
Forks
4
Avg merge
2h 22m
Merged PRs (30d)
1

Description

Description

TL;DR: Development environment has root partition persistence at the same time it has passwordless sudo

Qubes' architecture (particularly non-persistent root partition) allows for distrusting the kernel's privege escalation mechanisms (giving us the convenient "passwordless sudo"). But when creating a StandaloneVM those mechanism's are no longer effective.

The docs encourage the creation of a StandaloneVM for development. For the understandable reasons of faster development. So far, from what I've seen in the project, after the initial there aren't that many changes one has to do with the packages because it is all with virtual environments.

If anyone is in the position where that is a problem, then I think they would have the knowldege to convert it to a StandaloneVM (which is quite simple. The same cannot be said for the reverse, I think)

Comments

Any solution here will increase the barrier of entry of a what is already quite a high one (In my case it took me a week just to get everything right with the staging and dev environments - with an bug in the path).

So I don't know if this is something that you may want to address, but I just felt the need to bring it up.

If this is to be changed, I'd suggest bellow 3 possible approaches.

Approach 1 | little note in docs

Add note to the docs to encourage future developers opting for a AppVM instead for development while pointing them to the relevant qubes documentation on the implications (this would require minimal changes to the docs)

Approach 2 | AppVMs in docs

Change the docs to configure things as AppVMs.

Approach 3 | Replacing passwordless root access with Dom0 user prompt

Add a step that directs the user to: https://www.qubes-os.org/doc/vm-sudo/#replacing-passwordless-root-access-with-dom0-user-prompt which is what I currently do. But it's tricky and if the user messes up a step they could brick the VM (in the sense that they could get locked out)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Qubes section of docs.securedrop.org/en/release-1.1.0/development/setup_development.html and review how it currently presents StandaloneVM development. Compare the three approaches in the issue, including the linked Qubes sudo guidance, and confirm the chosen documentation change preserves the security caveats and gives developers an unambiguous setup path.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.